Skip to main content
Keycloakは、アプリケーションに認証、認可、ユーザーフェデレーションを提供するオープンソースのIDおよびアクセス管理プラットフォームです。KeycloakをまたはのとしてAuth0 B2B Connectにフェデレーションするように構成すれば、既存のKeycloak認証スタックにを追加できます。

認証の仕組み

  1. ユーザーがアプリケーションでログインを開始します。
  2. アプリケーションが Keycloak に認証リクエストを送信します。
  3. Keycloak がそのユーザーをエンタープライズユーザーとして識別し、リクエストを Auth0 B2B Connect にルーティングします。
  4. Auth0 B2B Connect が、SAML または OpenID Connect (OIDC) を使用して、ユーザーのエンタープライズIDプロバイダー (Okta、Microsoft Entra ID など) に認証リクエストを送信します。
  5. ユーザーはエンタープライズIDプロバイダーで、企業の credentials を使って認証を行います。
  6. エンタープライズIDプロバイダーが、SAML アサーションまたは OIDC トークンを Auth0 B2B Connect に返します。
  7. Auth0 B2B Connect がドメインディスカバリーを実行し、フェデレーションの結果を Keycloak に返します。
  8. Keycloak がアプリケーションにトークンを発行します。
  9. アプリケーションがトークンを検証し、セッションを初期化して、ユーザーにアクセスを許可します。

前提条件

Auth0 B2B Connectを構成する

新しいB2B Connect統合を作成するには、以下の手順に従います。
  1. Auth0 Dashboard > Applications > B2B Connectに移動し、+Create Integrationを選択してB2B Connectウィザードを開始します。
  2. Integration Name (たとえば「Keycloak Production」) を入力します。
  3. Integration TypeでThird-party Managed Authorization Serverを選択します。
  4. Save And Continueを選択します。
Auth0 DashboardのB2B Connectエンタープライズウィザード、統合名

認証プロトコルを選択して設定する

ウィザードでは、OIDCまたはSAMLのいずれかを選択できます。認証プロトコルを選択し、設定手順に従ってください。
  1. Application Callback URLを入力します。これは次の形式のKeycloakブローカーエンドポイントです。
    YOUR_ALIASは、Keycloakで使用するIDプロバイダーのエイリアス (例:「oidc」) に置き換えてください。
  2. Save And Continueを選択します。
  3. 確認画面でDoneを選択し、ウィザードを完了します。

Settingsタブから認証情報をコピーする

セットアップウィザードが完了したら、統合ページのSettingsタブに移動します。Keycloakのセットアップで使用する以下の値をコピーしてください。
  • Client ID
  • Client Secret
  • Issuer URL

Keycloak の設定

IDプロバイダーを追加する

Keycloak Admin Consoleでレルムを選択し、左サイドバーのIdentity providersに移動します。 User-definedの下から、次のいずれかを選択します:
  • OpenID Connect v1.0
  • SAML v2.0
  1. Aliasには、Auth0のApplication Callback URLで使用した値 (例: 「oidc」) を設定します。フォーム上部のRedirect URIは、このエイリアスから自動生成されます。
  2. Display nameを設定します (例: 「Sign in with SSO」) 。
  3. Discovery endpointフィールドに、B2B Connect Settingsタブに表示されているIssuer URLの末尾に.well-known/openid-configurationを付けた値を入力します (例: https://YOUR_TENANT.auth0.com/.well-known/openid-configuration) 。
  4. B2B Connect Settingsタブに表示されているClient IDを入力します。
  5. B2B Connect Settingsタブに表示されているClient Secretを入力します。
  6. Client authenticationはデフォルトのままにします。Client Secretはリクエストボディで送信されます。
  7. Addを選択します。
  8. providerの設定ページで、OpenID Connect settingsまでスクロールし、Advancedセクションを展開します。
  9. Pass login_hintを有効にします。

Home Realm Discovery のセットアップ

Auth0 では、Keycloak Organizations を使って Home Realm Discovery (HRD) をセットアップし、メールのドメインに基づいてエンタープライズユーザーを自動的に Auth0 へルーティングすることを推奨しています。

HRDによるユーザーのルーティング例

@acme.com のメールアドレスを持つすべてのユーザーをAuth0 B2B Connectにルーティングするには、次の手順に従います。
  1. Configure > Realm settings に移動し、Organizations トグルを有効にします。
  2. Save を選択します。
  3. 左サイドバーで Organizations に移動し、Create organization を選択します。
  4. Name (例:「AcmeCorp」) を入力し、Domain に acme.com を設定して、Save を選択します。
  5. Identity providers タブに移動し、Link identity provider を選択します。
  6. ドロップダウンからAuth0のIDプロバイダーを選択します。
  7. Domain で、追加したドメイン (例:acme.com) を選択します。
  8. Redirect when email domain matches を有効にします。
  9. Save を選択します。
@acme.com のメールアドレスを持つユーザーがログインすると、Keycloakはそのユーザーを認証のためにAuth0 B2B Connectへ自動的にリダイレクトします。

IDプロバイダーを確認する

  1. アプリケーションのログインページを開きます。
  2. 設定した表示名でIDプロバイダーのボタンが表示されていることを確認します。
  3. そのボタンを選択し、IDプロバイダーのサインインページにリダイレクトされることを確認します。