メインコンテンツにスキップ

Keycloak SAML

Keycloak is an open-source IdP that supports SAML and OpenID Connect and can broker LDAP or other SAML IdPs. This guide configures a Keycloak SAML client and Casdoor so Keycloak users can sign in to Casdoor.

Keycloakの設定

Example assumptions:

  • Casdoor: UI at http://localhost:7001, API at http://localhost:8000. Adjust for your deployment.
  • Keycloak: UI at http://localhost:8080/auth.
  • SP ACS URL and Entity ID: http://localhost:8000/api/acs.

The /api/acs endpoint only accepts POST requests. Ensure Keycloak is configured to use HTTP POST binding for SAML responses.

Use the default realm or create a new one.

Keycloakレルムを追加

Keycloakレルム

Keycloakにクライアントエントリを追加

メニューのクライアントをクリックし、次に作成をクリックしてクライアント追加ページに進みます。 以下のようにフィールドを入力します:

  • クライアントIDhttp://localhost:8000/api/acs - これは後でCasdoor設定で使用されるSPエンティティIDになります。
  • クライアントプロトコルsaml
  • クライアントSAMLエンドポイントhttp://localhost:8000/api/acs - このURLは、KeycloakサーバーがSAMLリクエストとレスポンスを送信する場所です。 一般的に、アプリケーションはSAMLリクエストを処理するための1つのURLを持っています。 複数のURLはクライアントの設定タブで設定できます。

Keycloakクライアントを追加

保存をクリック。 このアクションはクライアントを作成し、設定タブに移動します。

設定の一部は以下の通りです:

  1. Name — e.g. Casdoor; any friendly name for the Keycloak UI.
  2. 有効 - onを選択。
  3. Authnステートメントを含む - onを選択。
  4. ドキュメントに署名 - onを選択。
  5. アサーションに署名 - offを選択。
  6. アサーションを暗号化 - offを選択。
  7. クライアント署名必須 - offを選択。
  8. Name IDフォーマットを強制 - onを選択。
  9. Name IDフォーマット - usernameを選択。
  10. 有効なリダイレクトURI - http://localhost:8000/api/acsを追加。
  11. マスターSAML処理URL - http://localhost:8000/api/acs
  12. 細かいSAMLエンドポイント設定
    1. アサーションコンシューマーサービスPOSTバインディングURL - http://localhost:8000/api/acs
    2. アサーションコンシューマーサービスリダイレクトバインディングURL - http://localhost:8000/api/acs

設定を保存する。

Keycloakクライアントを設定

ヒント

To sign the authn request: enable Client Signature Required and upload your certificate. Casdoor’s private key and certificate (token_jwt_key.key, token_jwt_key.pem) are in the object directory. In Keycloak open KeysImportArchive FormatCertificate PEM and upload the certificate.

インストールタブをクリック。

For Keycloak <= 5.0.0, select Format Option - SAML Metadata IDPSSODescriptor and copy the metadata.

Keycloak 6.0.0+の場合、フォーマットオプション - Mod Auth Mellon filesを選択し、ダウンロードをクリック。 ダウンロードした.zipを解凍し、idp-metadata.xmlを探してメタデータをコピーします。

メタデータをダウンロード

メタデータをコピー

Casdoorでの設定

Casdoorに新しいプロバイダーを作成。

カテゴリをSAML、タイプをKeycloakとして選択。 メタデータの内容をコピーして、メタデータフィールドに貼り付けます。 エンドポイントIdP発行者URLの値は、解析ボタンをクリックした後に自動的に生成されます。 最後に、保存ボタンをクリックします。

ヒント

If Client Signature Required is enabled in Keycloak and you uploaded a certificate, enable Sign request in Casdoor.

Casdoorプロバイダー

Casdoorで設定したいアプリケーションを編集。 追加したばかりのプロバイダーを選択し、保存ボタンをクリックします。

アプリにプロバイダーを追加

Test

Open the application’s login page; a Keycloak option appears. Click it to sign in via Keycloak; after success you are logged into Casdoor.

Casdoorログイン