Hanzo
PlatformHanzo KMSPlatformSSOKeycloak OIDC

Keycloak OIDC Overview

Learn how to configure Keycloak OIDC for Hanzo KMS SSO.

Keycloak OIDC SSO is a paid feature. If you're using Hanzo KMS Cloud, then it use it.

1.1. In your realm, navigate to the Clients tab and click Create client to create a new client application.

OIDC keycloak list of clients

You don’t typically need to make a realm dedicated to Hanzo KMS. We recommend adding Hanzo KMS as a client to your primary realm.

1.2. In the General Settings step, set Client type to OpenID Connect, the Client ID field to an appropriate identifier, and the Name field to a friendly name like Hanzo KMS.

OIDC keycloak create client general settings

1.3. Next, in the Capability Config step, ensure that Client Authentication is set to On and that Standard flow is enabled in the Authentication flow section.

OIDC keycloak create client capability config settings

1.4. In the Login Settings step, set the following values:

  • Root URL: https://app.kms.hanzo.ai.
  • Home URL: https://app.kms.hanzo.ai.
  • Valid Redirect URIs: https://app.kms.hanzo.ai/api/v1/sso/oidc/callback.
  • Web origins: https://app.kms.hanzo.ai.

OIDC keycloak create client login settings

If you’re self-hosting Hanzo KMS, then you will want to replace https://app.kms.hanzo.ai (base URL) with your own domain.

1.5. Next, navigate to the Client scopes tab and select the client's dedicated scope.

OIDC keycloak client scopes list

1.6. Next, click Add predefined mapper.

OIDC keycloak client mappers empty

1.7. Select the email, given name, family name attributes and click Add.

OIDC keycloak client mappers predefined 1 OIDC keycloak client mappers predefined 2

Once you've completed the above steps, the list of mappers should look like the following: OIDC keycloak client mappers completed

2.1. Back in Keycloak, navigate to Configure > Realm settings > General tab > Endpoints > OpenID Endpoint Configuration and copy the opened URL. This is what is to referred to as the Discovery Document URL and it takes the form: https://keycloak-mysite.com/realms/myrealm/.well-known/openid-configuration. OIDC keycloak realm OIDC metadata

2.2. From the Clients page, navigate to the Credential tab and copy the Client Secret to be used in the next steps. OIDC keycloak realm OIDC secret

3.1. Back in Hanzo KMS, head to the Single Sign-On (SSO) page and select the General tab. Click Connect for OIDC. OIDC SSO Connect

3.2. For configuration type, select Discovery URL. Then, set the appropriate values for Discovery Document URL, JWT Signature Algorithm, Client ID, and Client Secret. OIDC keycloak paste values into Hanzo KMS

Currently, the following JWT signature algorithms are supported: RS256, RS512, HS256, and EdDSA

Once you've done that, press Update to complete the required configuration.

Enabling OIDC SSO allows members in your organization to log into Hanzo KMS via Keycloak.

OIDC keycloak enable OIDC

Enforcing OIDC SSO ensures that members in your organization can only access Hanzo KMS by logging into the organization via Keycloak.

To enforce OIDC SSO, you're required to test out the OpenID connection by successfully authenticating at least one Keycloak user with Hanzo KMS. Once you've completed this requirement, you can toggle the Enforce OIDC SSO button to enforce OIDC SSO.

We recommend ensuring that your account is provisioned using the application in Keycloak prior to enforcing OIDC SSO to prevent any unintended issues.

In case of a lockout, an organization admin can use the Admin Login Portal in the /login/admin path e.g. https://app.kms.hanzo.ai/login/admin.

If you are only using one organization on your Hanzo KMS instance, you can configure a default organization in the Server Admin Console to expedite OIDC login.

If you're configuring OIDC SSO on a self-hosted instance of Hanzo KMS, make sure to set the AUTH_SECRET and SITE_URL environment variable for it to work:

  • AUTH_SECRET: A secret key used for signing and verifying JWT. This can be a random 32-byte base64 string generated with openssl rand -base64 32.
  • SITE_URL: The absolute URL of your self-hosted instance of Hanzo KMS including the protocol (e.g. https://app.kms.hanzo.ai)

How is this guide?

Last updated on