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

Keycloak

JBoss Keycloakシステムは、SAMLおよびOpenID Connectを介してアプリケーションとの統合をサポートする広く使用されているオープンソースのアイデンティティ管理システムです。 LDAPや他のSAMLプロバイダーとの間でアイデンティティブローカーとしても機能し、SAMLまたはOpenID Connectをサポートするアプリケーションと統合できます。

Keycloakで新しいクライアントエントリを設定し、Keycloakの設定を通じてアクセスを許可されたKeycloakユーザーがUIログインできるようにCasdoorを設定する方法の例を以下に示します。

Keycloakの設定

この例では、以下の設定選択と仮定を行います:

  • Casdoorをローカルで開発モードで実行していると仮定します。 Casdoor UIはhttp://localhost:7001で利用可能で、サーバーはhttp://localhost:8000で利用可能です。 必要に応じて適切なURLに置き換えてください。
  • Keycloakをローカルで実行していると仮定します。 Keycloak UIはhttp://localhost:8080/authで利用可能です。
  • それに基づいて、このデプロイメントのSP ACS URLは次のようになります:http://localhost:8000/api/acs
  • SPエンティティIDは同じURLを使用します:http://localhost:8000/api/acs

デフォルトのレルムを使用するか、新しいレルムを作成することができます。

Keycloakレルムを追加

Keycloakレルム

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. 名前 - Casdoor。 これはKeycloak UIでKeycloakユーザーにフレンドリーな名前を表示するためにのみ使用されます。 好きな名前を使用できます。
  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クライアントを設定

ヒント

authnリクエストに署名する場合は、クライアント署名必須オプションを有効にし、自分で生成した証明書をアップロードする必要があります。 Casdoorで使用される秘密鍵と証明書、token_jwt_key.keytoken_jwt_key.pemは、objectディレクトリにあります。 Keycloakでは、タブをクリックし、インポートボタンをクリックし、アーカイブフォーマットとして証明書PEMを選択し、証明書をアップロードする必要があります。

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

Keycloak <= 5.0.0の場合、フォーマットオプション - SAML Metadata IDPSSODescriptorを選択し、メタデータをコピーします。

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

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

メタデータをコピー

Casdoorでの設定

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

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

ヒント

Keycloakでクライアント署名必須オプションを有効にし、証明書をアップロードした場合、Casdoorでリクエストに署名オプションを有効にしてください。

Casdoorプロバイダー

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

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

効果を検証する

設定したばかりのアプリケーションに移動すると、ログインページにKeycloakアイコンが表示されます。

アイコンをクリックすると、Keycloakのログインページにリダイレクトされます。 認証に成功すると、Casdoorにログインされます。

Casdoorログイン