Skip to content

Authentication

Authentication concerns the confirmation of user identity. The Noumena platform delegates user authentication to an OpenID Connect-compliant Identity and Access Management (IAM) service (e.g. Keycloak). Further details on IAM configuration can be found here. JSON Web Tokens (JWTs) should be obtained from the IAM and attached to all platform requests.

JWT specification

JWTs must be issued by an Identity and Access Management (IAM) provider that is compliant with the OpenID Connect Core 1.0 specification.

Since the authentication is provided by an external provider and the JWT is a standardized specification, its fields and structure are not managed by the engine.

Example of a valid JWT

    {
        "iss": "http://www.noumenadigital.com/",
        "sub": "12345",
        "exp": 1630497600,
        "iat": 1630490400,
        "org": "Noumena Digital AG",
        "department": [
            "it"
        ],
        "roles": [
            "engineer"
        ]
    }

Reserved claims

Some claims defined by the JWT standard do not make sense for controlling party assignments. For example, claims like iat (issued at) will have a different value whenever the JWT is refreshed. The required fields will be enforced by the OpenID Connect-compliant IAM. To prevent accidental use of such claims, the following claims are actively ignored:

  • acr
  • allowed-origins
  • auth_time
  • azp
  • exp
  • iat
  • nbf
  • jti
  • realm_access
  • resource_access
  • session_state
  • sid
  • typ

Warning

Creating a protocol instance with a claim contained in the aforementioned ignore list will result in a InvalidEntityClaimsRuntimeErrorException being thrown.