認証の仕組み
- ユーザーがアプリケーションでログインを開始します。
- アプリケーションが Keycloak に認証リクエストを送信します。
- Keycloak がそのユーザーをエンタープライズユーザーとして識別し、リクエストを Auth0 B2B Connect にルーティングします。
- Auth0 B2B Connect が、SAML または OpenID Connect (OIDC) を使用して、ユーザーのエンタープライズIDプロバイダー (Okta、Microsoft Entra ID など) に認証リクエストを送信します。
- ユーザーはエンタープライズIDプロバイダーで、企業の credentials を使って認証を行います。
- エンタープライズIDプロバイダーが、SAML アサーションまたは OIDC トークンを Auth0 B2B Connect に返します。
- Auth0 B2B Connect がドメインディスカバリーを実行し、フェデレーションの結果を Keycloak に返します。
- Keycloak がアプリケーションにトークンを発行します。
- アプリケーションがトークンを検証し、セッションを初期化して、ユーザーにアクセスを許可します。
前提条件
- B2B Connect - Enterpriseが有効になっているAuth0テナント
- エンタープライズ接続 (Oktaなど) に対するドメインディスカバリーが有効になっているAuth0 Organization。詳細については、Create Organization Domainsをお読みください。
- 管理者アクセス権のあるKeycloakサーバー
- アプリケーション向けにKeycloakで構成したレルム
- アプリケーションの要件に応じて構成したIDプロバイダーマッパー
Auth0 B2B Connectを構成する
新しいB2B Connect統合を作成するには、以下の手順に従います。- Auth0 Dashboard > Applications > B2B Connectに移動し、+Create Integrationを選択してB2B Connectウィザードを開始します。
- Integration Name (たとえば「Keycloak Production」) を入力します。
- Integration TypeでThird-party Managed Authorization Serverを選択します。
- Save And Continueを選択します。

認証プロトコルを選択して設定する
ウィザードでは、OIDCまたはSAMLのいずれかを選択できます。認証プロトコルを選択し、設定手順に従ってください。- OIDC
- SAML
-
Application Callback URLを入力します。これは次の形式のKeycloakブローカーエンドポイントです。
YOUR_ALIASは、Keycloakで使用するIDプロバイダーのエイリアス (例:「oidc」) に置き換えてください。 - Save And Continueを選択します。
- 確認画面で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
- OIDC
- SAML
- Aliasには、Auth0のApplication Callback URLで使用した値 (例: 「oidc」) を設定します。フォーム上部のRedirect URIは、このエイリアスから自動生成されます。
- Display nameを設定します (例: 「Sign in with SSO」) 。
- Discovery endpointフィールドに、B2B Connect Settingsタブに表示されているIssuer URLの末尾に
.well-known/openid-configurationを付けた値を入力します (例:https://YOUR_TENANT.auth0.com/.well-known/openid-configuration) 。 - B2B Connect Settingsタブに表示されているClient IDを入力します。
- B2B Connect Settingsタブに表示されているClient Secretを入力します。
- Client authenticationはデフォルトのままにします。Client Secretはリクエストボディで送信されます。
- Addを選択します。
- providerの設定ページで、OpenID Connect settingsまでスクロールし、Advancedセクションを展開します。
- Pass login_hintを有効にします。
Home Realm Discovery のセットアップ
Auth0 では、Keycloak Organizations を使って Home Realm Discovery (HRD) をセットアップし、メールのドメインに基づいてエンタープライズユーザーを自動的に Auth0 へルーティングすることを推奨しています。HRDによるユーザーのルーティング例
@acme.com のメールアドレスを持つすべてのユーザーをAuth0 B2B Connectにルーティングするには、次の手順に従います。
- Configure > Realm settings に移動し、Organizations トグルを有効にします。
- Save を選択します。
- 左サイドバーで Organizations に移動し、Create organization を選択します。
- Name (例:「AcmeCorp」) を入力し、Domain に
acme.comを設定して、Save を選択します。 - Identity providers タブに移動し、Link identity provider を選択します。
- ドロップダウンからAuth0のIDプロバイダーを選択します。
- Domain で、追加したドメイン (例:
acme.com) を選択します。 - Redirect when email domain matches を有効にします。
- Save を選択します。
@acme.com のメールアドレスを持つユーザーがログインすると、Keycloakはそのユーザーを認証のためにAuth0 B2B Connectへ自動的にリダイレクトします。
IDプロバイダーを確認する
- アプリケーションのログインページを開きます。
- 設定した表示名でIDプロバイダーのボタンが表示されていることを確認します。
- そのボタンを選択し、IDプロバイダーのサインインページにリダイレクトされることを確認します。