Janssen Documentation

repository·main·Indexed 20 days ago

https://github.com/janssenproject/jans

Janssen is an open-source digital identity and access management (IAM) infrastructure project under the Linux Foundation, providing tools for OAuth, OpenID Connect, FIDO/Passkeys, and policy-based authorization. Documentation covers the Agama authentication server component and the janssen-all-in-one Helm chart for deploying microservices on Kubernetes (>=v1.23.0-0), including configurations for SQL databases, Redis cache, HashiCorp Vault, Google Secret Manager, and Kubernetes Gateway API.

Tokens
811.8K
Snippets
1.7K
Records
2.9K
Agent score
70%

What's inside Janssen

  1. Overview of Jans Config API

    main
    Jans Config API is a centralized REST application used to manage and configure various Janssen modules, including auth-server, users, fido2, and scim. It is built using Weld 4.x (JSR-365) and JAX-RS. The API is primarily used to manage the configuration and properties of the Jans Auth Server, which functions as an OpenID Connect Provider (OP) and UMA Authorization Server (AS).
  2. Overview of the Janssen Project Setup Application (SetupApp)

    main
    The SetupApp is a Python3-based application (targeting compatibility with version 3.5 and above) designed to manage installers for the Janssen Project. Developers use this application to edit existing installers or create new ones for the Janssen Project ecosystem.
  3. Overview of Janssen Project Core Components

    main

    The Janssen Project is an enterprise-grade identity and access management platform. It consists of four primary components:

    • Janssen Server: The core authentication and authorization server. It implements OAuth 2.0, OpenID Connect, and supports multi-factor authentication, advanced session management, and enterprise directory integration.
    • Casa: A self-service portal for users to manage credentials, enroll 2FA devices, handle password resets, and manage consent.
    • Agama: A visual orchestration platform with a drag-and-drop designer for building complex authentication workflows and integrating third-party services.
    • Cedarling: A Cedar-based policy engine used for fine-grained, real-time authorization decisions via a policy-as-code approach.
  4. Overview of Janssen Auth Server

    main

    The Auth Server provides the federated identity functionality for the Janssen Platform. It is a high-performance, scalable, and flexible implementation designed for large-scale enterprise deployments.

    Key technical details:

    • Origin: It is a fork of oxAuth, the engine used in Gluu Server 4.
    • Framework: Built on the Java Weld framework (CDI implementation).
    • Primary Function: Acts as a comprehensive OpenID Connect (OIDC) and OAuth 2.0 provider.
  5. Overview of The Cedarling

    main

    The Cedarling is a fast, embeddable, and self-contained policy-based authorization solution powered by the Rust Cedar engine. It is designed for both client-side and server-side enforcement in latency-sensitive environments such as databases, browsers, mobile apps, API gateways, and embedded devices.

    Key characteristics:

    • Small Footprint: Less than 2MB in size, suitable for browsers and mobile apps.
    • High Performance: Enables sub-millisecond decisions by avoiding slow cloud policy fetches. It does not fetch external data during decision-making; instead, it relies on data contained within tokens (like JWTs) or data explicitly pushed into it.
    • Deployment Options:
      • Embedded via WASM (npm), iOS/Android SDKs, or backend SDKs (Java, Go, Rust, Python, C).
      • Deployed as a sidecar.
      • Deployed as a centralized cloud PDP (Policy Decision Point) service.
    • Capabilities: Supports JWT validation (signature, exp, nbf, and OAuth Status List revocation checks) and claims mapping to Cedar entities.
  6. Overview of Janssen Access and Identity Management Microservices Chart

    main
    The janssen Helm chart is used to deploy Janssen Access and Identity Management Microservices. This chart is designed to deploy each Janssen microservice as an independent, separate deployment within a Kubernetes cluster.
  7. Overview of Jans-SCIM

    main

    Jans-SCIM is a component of the Janssen Project that provides a standards-compliant SCIM (System for Cross-domain Identity Management) service. It exposes a REST API with CRUD (Create, Read, Update, Delete) functionality for managing identity resources, including:

    • Users
    • Groups
    • FIDO devices
    • FIDO2 devices

    The service adheres to RFC 7642, RFC 7643, and RFC 7644.