1. ID ブローカリング — コンセプト
IDブローカリングによりKeycloakが役割を果たすことが可能になります認証仲介者アプリケーションと外部 ID プロバイダー (IdP) の間。各アプリケーションが独自の Google、Facebook、SAML IdP と統合されるのではなく、すべて Keycloak 経由で接続されます。
┌──────────┐ ┌──────────────┐ ┌──────────────────┐
│ My App │ ──→ │ Keycloak │ ──→ │ External IdP │
│ │ ←── │ (Broker) │ ←── │ (Google, SAML) │
└──────────┘ └──────────────┘ └──────────────────┘
Flow:
1. User truy cập My App → redirect đến Keycloak
2. User chọn "Login with Google" trên Keycloak login page
3. Keycloak redirect đến Google OAuth2
4. User xác thực tại Google → redirect về Keycloak
5. Keycloak nhận identity, tạo/link user, issue token
6. User redirect về My App với Keycloak token
利点:
- 集中化: KeycloakでIdPを一度設定すると、すべてのアプリで使用できるようになります
- プロトコルブリッジング: アプリは OIDC を使用し、外部 IdP は SAML → Keycloak ブリッジを使用します
- ユーザー管理: Keycloakは外部IdPのユーザーも含めて一元管理します
- アカウントリンク: 複数の外部アイデンティティを 1 つの Keycloak アカウントにリンクします
2. ソーシャルログインを設定する
2.1 一般的なアイデンティティプロバイダーの設定
IdP を追加する場合、一般設定には次のものが含まれます。
| 設定 | 説明する | 価値 |
|---|---|---|
| エイリアス | KeycloakのIdPの一意の識別子 | google.google.com, フェイスブック |
| 表示名 | ログインページに表示される名前 | グーグル, Facebookでログイン |
| 有効 | IdPの有効化/無効化 | の上 |
| ログインページで非表示にする | ログイン ページから非表示にする (kc_idp_hint 経由でのみ使用) | オフ |
| ストアトークン | 外部 IdP からのアクセス トークンを保存する | オフ(外部 API 呼び出しが必要な場合にオンにします) |
| 保存されたトークンの読み取り可能 | ユーザーは保存されたトークンを読み取ることができます | オフ |
| 電子メールを信頼する | IdP からの電子メールを信頼します (再度確認する必要はありません) | の上Google/マイクロソフト用 |
| アカウントリンクのみ | アカウントをリンクするためにのみ使用され、新しいアカウントを作成することはできません | オフ |
| 初回ログインの流れ | フローが最初のログインを処理します | ブローカーへの最初のログイン |
| ログイン後のフロー | IdP 経由でログインするたびにフローが実行されます | なし |
| 同期モード | ユーザー属性を同期する | 輸入, 力。力、 または遺産 |
2.2 Google OAuth2
ステップ 1: Google で OAuth2 認証情報を作成する
- アクセスGoogle Cloud コンソール → API とサービス → 認証情報
- クリック「認証情報の作成 → OAuth クライアント ID」
- アプリケーションの種類:ウェブアプリケーション
- 名前:
キークロークログイン - 承認されたリダイレクト URI:
https://keycloak.example.com/realms/myrealm/broker/google/endpoint - コピークライアントIDそしてクライアントシークレット
ステップ2: Keycloakで設定する
- 入力ID プロバイダー → プロバイダーの追加 → Google
- 入力:
- クライアントID:
123456789.apps.googleusercontent.com - クライアントシークレット:
GOCSPX-xxxxxxxxxxxx - デフォルトのスコープ:
openid プロフィールメール - 電子メールを信頼する:
の上— Google がメールを確認しました - 同期モード:
輸入
- クライアントID:
- 保存
リダイレクト URI 形式:
https://{keycloak-host}/realms/{realm}/broker/{alias}/endpoint
2.3 フェイスブック
ステップ 1: Facebook アプリを作成する
- アクセス開発者向けメタ → マイアプリ → アプリの作成
- アプリの種類:消費者または仕事
- 製品を追加「フェイスブックログイン」
- 設定:
- 有効な OAuth リダイレクト URI:
https://keycloak.example.com/realms/myrealm/broker/facebook/endpoint
- 有効な OAuth リダイレクト URI:
- コピーアプリIDそしてアプリの秘密
ステップ2: Keycloakで設定する
- 入力ID プロバイダー → プロバイダーの追加 → Facebook
- 入力:
- クライアントID:アプリID
- クライアントシークレット: アプリの秘密
- デフォルトのスコープ:
public_profile にメールを送信する - 電子メールを信頼する:
オフ— Facebookは未確認の電子メールを許可します
2.4 GitHub
ステップ 1: GitHub OAuth アプリを作成する
- アクセスGitHub → 設定 → 開発者設定 → OAuth アプリ → 新規
- アプリケーション名:
キークロークログイン - ホームページURL:
https://myapp.example.com - 認可コールバック URL:
https://keycloak.example.com/realms/myrealm/broker/github/endpoint - コピークライアントIDそして生成するクライアントシークレット
ステップ2: Keycloakで設定する
- 入力ID プロバイダー → プロバイダーの追加 → GitHub
- 入力:
- クライアントID: GitHub クライアント ID
- クライアントシークレット: GitHub クライアント シークレット
- デフォルトのスコープ:
ユーザー:電子メール読み取り:組織(もっと読む:組織組織情報が必要な場合)
2.5 Apple サインイン
ステップ 1: Apple Developer で設定する
- アクセスApple 開発者 → 証明書、識別子、プロファイル
- 作成するアプリIDApple でサインイン機能を使用
- 作成するサービスID:
- 識別子:
com.example.keycloak.login - 戻り値の URL:
https://keycloak.example.com/realms/myrealm/broker/apple/endpoint
- 識別子:
- 作成する鍵Apple でサインインの場合 → ダウンロード
.p8ファイル
ステップ2: Keycloakで設定する
- 入力ID プロバイダー → プロバイダーの追加 → Apple
- 入力:
- クライアントID: サービス ID (com.example.keycloak.login)
- クライアントシークレット: .p8 キーから生成された JWT
- デフォルトのスコープ:
名前 メールアドレス - 電子メールを信頼する:
の上
⚠️ ノートアップル: Apple では、クライアント シークレットが .p8 キーで署名された JWT であることを要求しており、この JWT は 6 か月後に期限切れになります。クライアント シークレットを定期的に更新するか、自動スクリプトを使用する必要があります。
2.6 Microsoft (Azure AD / Entra ID)
ステップ 1: Azure にアプリを登録する
- アクセスAzure ポータル → Microsoft Entra ID → アプリ登録 → 新規
- 名前:
Keycloak SSO - サポートされているアカウントの種類: 応じて選択してください
この組織ディレクトリ内のアカウントのみ— シングルテナント任意の組織ディレクトリ内のアカウント— マルチテナント組織ディレクトリ内のアカウントと個人のアカウント— @outlook.com を含む
- リダイレクト URI:
ウェブ→https://keycloak.example.com/realms/myrealm/broker/microsoft/endpoint - 入力証明書とシークレット → 新しいクライアント シークレット→ 値をコピー
ステップ2: Keycloakで設定する
- 入力ID プロバイダー → プロバイダーの追加 → Microsoft
- 入力:
- クライアントID:アプリケーション(クライアント)ID
- クライアントシークレット: クライアントシークレット値
- デフォルトのスコープ:
openid プロフィールメール - 電子メールを信頼する:
の上 - テナント: シングルテナントの場合はテナント ID を入力するか、
一般。一般マルチテナント向け
3. OpenID Connect ID プロバイダー
利用可能なソーシャルプロバイダーに加えて、Keycloakはへの接続をサポートします任意の OIDC プロバイダーどれでも。
3.1 OpenID Connect v1.0 プロバイダーの追加
- 入力ID プロバイダー → プロバイダーの追加 → OpenID Connect v1.0
- 構成:
- エイリアス:
企業SSO - 表示名:
企業SSO - ディスカバリーエンドポイント:
https://sso.corp.example.com/.well-known/openid-configuration - または、マニュアルを入力します:
- 認可URL:
https://sso.corp.example.com/authorize - トークンURL:
https://sso.corp.example.com/token - ユーザー情報のURL:
https://sso.corp.example.com/userinfo - JWKSのURL:
https://sso.corp.example.com/jwks
- 認可URL:
- クライアントID:外部IdPに登録されているID
- クライアントシークレット:対応するシークレット
- クライアント認証:
クライアント シークレットがポストとして送信されるまたは基本認証として送信されるクライアント シークレット
- エイリアス:
ディスカバリーエンドポイントKeycloakが外部IdPのすべてのURLと機能を自動的に取得できるようにします。
3.2 Keycloak 間の ID ブローカリング
2 つの Keycloak インスタンスを接続します。
# Keycloak A (IdP) — Realm: company-a
Discovery: https://keycloak-a.example.com/realms/company-a/.well-known/openid-configuration
# Keycloak B (Broker) — Realm: main
# Thêm OIDC IdP với:
# - Discovery Endpoint: https://keycloak-a.example.com/realms/company-a/.well-known/openid-configuration
# - Client ID: registered in company-a realm
# - Client Secret: from company-a client
# Tại Keycloak A, tạo client cho Keycloak B:
# - Client ID: keycloak-b-broker
# - Valid Redirect URIs: https://keycloak-b.example.com/realms/main/broker/company-a/endpoint
# - Client Authentication: On
# - Standard Flow: Enabled
4. SAML 2.0 ID プロバイダー
4.1 SAML IdP の追加
- 入力ID プロバイダー → プロバイダーの追加 → SAML v2.0
- 構成:
- エイリアス:
企業-saml - URLからインポート: 外部 SAML IdP のメタデータ URL を入力します。
https://saml-idp.example.com/metadata - またはファイルからインポート: XMLメタデータファイルをアップロードします
- または、マニュアルを入力します:
- シングルサインオンサービスURL:
https://saml-idp.example.com/sso - シングルログアウトサービスのURL:
https://saml-idp.example.com/slo - NameID ポリシーの形式:
電子メールまたは持続的 - AuthnRequest の署名が必要です:
の上 - アサーションの署名を求める:
の上 - アサーションを暗号化したい:
オフ - 署名の検証:
の上 - X509 証明書の検証: IdP 署名証明書を貼り付けます
- シングルサインオンサービスURL:
- エイリアス:
4.2 Keycloak SAML SP メタデータ
外部 SAML IdP には Keycloak メタデータが必要です (サービスプロバイダーとして機能):
# Keycloak SP Descriptor URL
https://keycloak.example.com/realms/myrealm/broker/corporate-saml/endpoint/descriptor
# Đây là XML metadata chứa:
# - EntityID
# - AssertionConsumerService URL
# - SingleLogoutService URL
# - Keycloak signing certificate
5. OAuth v2 ID プロバイダー
OAuth 2.0 のみをサポートする (OIDC なし) プロバイダーの場合:
- 入力ID プロバイダー → プロバイダーの追加 → OAuth v2.0
- 構成:
- 認可URL: OAuth2 承認エンドポイント
- トークンURL: OAuth2 トークンエンドポイント
- ユーザー情報のURL: エンドポイントはユーザー情報 (存在する場合) を返します。
- クライアントID/クライアントシークレット
- ユーザー情報の JSON パス: ユーザー属性を抽出するための JSONPath
# Ví dụ: nếu user info response là { "data": { "id": 123, "username": "john" } } # Username JSONPath: $.data.username # Email JSONPath: $.data.email
6. Kubernetes ID プロバイダー
Keycloak は Kubernetes の IdP として機能でき、逆に Kubernetes から ID を受け取ることもできます。
6.1 Kubernetes OpenID Connect プロバイダー
# Kubernetes API server config — sử dụng Keycloak làm IdP
apiVersion: v1
kind: Config
clusters:
- cluster:
server: https://k8s-api.example.com
certificate-authority: /etc/kubernetes/pki/ca.crt
name: my-cluster
users:
- name: oidc-user
user:
exec:
apiVersion: client.authentication.k8s.io/v1beta1
command: kubectl
args:
- oidc-login
- get-token
- --oidc-issuer-url=https://keycloak.example.com/realms/myrealm
- --oidc-client-id=kubernetes
- --oidc-extra-scope=groups
# kube-apiserver flags cho OIDC authentication
--oidc-issuer-url=https://keycloak.example.com/realms/myrealm
--oidc-client-id=kubernetes
--oidc-username-claim=preferred_username
--oidc-groups-claim=groups
--oidc-ca-file=/etc/kubernetes/pki/keycloak-ca.crt
7. 初回ログインの流れ
最初のログインフローの処理初めてユーザーは外部 IdP 経由でログインします。このフローでは次のことが決定されます。
- Keycloakで新しいユーザーを作成できますか?
- 現在のユーザーへのリンクはありますか?
- プロフィールの確認/更新のリクエストはありますか?
7.1 デフォルトの最初のブローカーのログインフロー
First Broker Login Flow (mặc định)
├── Review Profile (Required) → Hiển thị profile để user review
│ └── Config: Update Profile on First Login = missing
└── User Creation or Linking (Required) → Sub-flow
├── Create User If Unique (Alternative) → Tạo user nếu email/username chưa tồn tại
└── Handle Existing Account (Alternative) → Sub-flow xử lý account đã tồn tại
├── Confirm Link Existing Account (Required) → Hỏi user có muốn link?
└── Verification (Alternative) → Sub-flow verify ownership
├── Verify Existing Account by Email (Alternative) → Gửi email verify
└── Verify Existing Account by Re-authentication (Alternative) → Nhập password
7.2 詳しい仕組み
シナリオ 1: まったくの新規ユーザー
- ユーザーが初めて Google 経由でログインする
- プロフィールを確認する: ユーザーが確認できるように Google からのプロフィール (メールアドレス、名前) を表示します。
- 一意の場合はユーザーを作成: 電子メールが存在しません → 新しい Keycloak ユーザーを作成します
- Google ID を Keycloak ユーザーにリンクする
- ログインに成功しました
シナリオ 2: 電子メールがすでに Keycloak に存在する
- ユーザーは GitHub、電子メール経由でログインします
[email protected] - 一意の場合はユーザーを作成: 電子メールはすでに存在します → 失敗 → 代替に切り替えます
- 既存のアカウントのリンクを確認: 「アカウント [email protected] はすでに存在します。リンクを希望しますか?」と尋ねます。
- 所有権の確認: ユーザーは電子メールで確認するか、Keycloak パスワードを入力します
- GitHub ID を既存の Keycloak ユーザーにリンクする
7.3 カスタム初回ログインフロー
例: 電子メールによるアカウントの自動リンク確認する必要はありません(外部 IdP を信頼する場合にのみ使用されます):
Auto-link First Login Flow
├── Create User If Unique (Alternative)
└── Automatically Set Existing User (Alternative) ← Tự link, không hỏi user
⚠️ セキュリティ警告:
既存ユーザーを自動設定次の場合にのみ使用してください。完全に信頼する外部IdP。 IdP でフリーメールの設定が許可されている場合、攻撃者は他人のメールを登録することでアカウントを乗っ取ることができます。
8. アカウントのリンク
アカウントリンクを使用すると、ユーザーは複数の外部アイデンティティを 1 つの Keycloak アカウントにリンクできます。
8.1 アカウントコンソール経由のリンク
ユーザーはアカウント コンソールで自分自身をリンク/リンク解除できます。
https://keycloak.example.com/realms/myrealm/account/#/security/linked-accounts
8.2 Application Initiated Action (AIA) によるリンク
# Trigger account linking từ application
GET /realms/myrealm/protocol/openid-connect/auth?
client_id=my-app&
redirect_uri=https://myapp.example.com/callback&
response_type=code&
scope=openid&
kc_action=oidc-link&
kc_action_parameter=google
8.3 管理REST API経由のリンク
# Xem federated identities của user
curl -s -X GET \
"https://keycloak.example.com/admin/realms/myrealm/users/$USER_ID/federated-identity" \
-H "Authorization: Bearer $ADMIN_TOKEN" | jq
# Response
[
{
"identityProvider": "google",
"userId": "google-user-id-123",
"userName": "[email protected]"
}
]
# Thêm federated identity cho user
curl -X POST \
"https://keycloak.example.com/admin/realms/myrealm/users/$USER_ID/federated-identity/github" \
-H "Authorization: Bearer $ADMIN_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"identityProvider": "github",
"userId": "github-user-id-456",
"userName": "johndoe"
}'
# Xóa federated identity
curl -X DELETE \
"https://keycloak.example.com/admin/realms/myrealm/users/$USER_ID/federated-identity/github" \
-H "Authorization: Bearer $ADMIN_TOKEN"
9. ID プロバイダー マッパー
許可される IdP マッパー変換してマップする外部 IdP から Keycloak ユーザー属性、ロール、またはグループへの属性。
9.1 マッパーのタイプ
| マッパー | 説明する | 例えば |
|---|---|---|
| 属性インポーター | IdP クレームから Keycloak ユーザー属性に属性をインポートします | IdP写真→ キークロークアバター_url |
| ハードコーディングされた役割 | IdP からすべてのユーザーに固定ロールを割り当てる | すべての Google ユーザー → 役割外部ユーザー |
| ハードコードされたグループ | 固定グループを割り当てる | すべての GitHub ユーザー → グループ/外部/github |
| ユーザー名テンプレート インポーター | テンプレートからユーザー名を作成する | ${エイリアス}.${CLAIM.preferred_username} |
| 外部ロールからロールへ | 外部 IdP ロールを Keycloak ロールにマッピングする | SAML の役割管理者。管理者→ キークロークの役割レルム管理者 |
| ハードコードされた属性 | IdPからユーザーの固定属性を設定する | 出典=グーグルすべての Google ユーザー向け |
| ロールに対する SAML 属性 | SAML アサーション属性を Keycloak ロールにマップする | SAML部門=IT→役割ITチーム |
| 役割に対する高度な要求 | 複雑なクレーム (JSON パス、正規表現) をロールにマッピングする | 請求グループ。グループが含まれています。含まれています「管理者」→役割管理者。管理者 |
9.2 マッパーの構成
例 1: 属性インポーター — Google からアバターをインポート
- 入力ID プロバイダー → Google → マッパー → マッパーの追加
- 構成:
- 名前:
アバター URL をインポート - マッパータイプ:
属性インポーター - 請求:
写真(Google から名前を要求) - ユーザー属性名:
アバター_url(Keycloakユーザー属性) - 同期モードのオーバーライド:
継承する
- 名前:
例 2: ハードコードされたロール - 外部ユーザーにロールを割り当てる
- 入力ID プロバイダー → GitHub → マッパー → マッパーの追加
- 構成:
- 名前:
外部ユーザー役割の割り当て - マッパータイプ:
ハードコーディングされた役割 - 役割:
外部ユーザー
- 名前:
例 3: ユーザー名テンプレート — ユーザー名の前に IdP エイリアスを付ける
- 構成:
- マッパータイプ:
ユーザー名テンプレート インポーター - テンプレート:
${エイリアス}.${CLAIM.preferred_username} - ターゲット:
地元
- マッパータイプ:
- 結果: Google のユーザーのユーザー名は = になります。
グーグル・ジョン・ドー
例 4: 外部ロールからロールへ - SAML ロールをマッピングする
- 構成:
- マッパータイプ:
外部ロールからロールへ - 外部の役割:
管理者。管理者(外部 SAML IdP からのロール名) - 役割:
レルム管理者(キークロークの役割)
- マッパータイプ:
10. 同期モード
同期モード制御Keycloakが情報を同期する方法ユーザーがログインするたびに外部 IdP から送信されます。
| モード | 初回ログイン | 以降のログイン | ユースケース |
|---|---|---|---|
| 輸入 | IdP から属性をインポートする | 更新なし - Keycloak データをそのまま維持します | ユーザーはKeycloakでプロファイルを編集できます |
| 力。力 | IdP から属性をインポートする | IdP からの新しいデータで常に上書きします | IdP は絶対的な真実の源です |
| 遺産 | IdP から属性をインポートする | 属性が空の場合は更新し、存在する場合はそのまま保持します | 下位互換性、データのマージ |
同期モードの設定:
- IdPレベルで: その IdP のすべてのマッパーに適用されます
- マッパーレベルで(同期モードオーバーライド): 特定のマッパーの同期モードをオーバーライドします。
# Ví dụ: Google IdP với sync mode = import
# Mapper "Import Avatar" với Sync Mode Override = force
# Kết quả:
# - Email, name: import 1 lần, user có thể sửa trong Keycloak
# - Avatar URL: luôn cập nhật từ Google (force)
11. クライアントが提案する IdP (kc_idp_hint)
kc_idp_hintアプリの権限自動的にリダイレクトユーザーを特定の外部 IdP に接続し、Keycloak ログインページをバイパスします。
11.1 kc_idp_hint の使用
# Redirect trực tiếp đến Google login
GET /realms/myrealm/protocol/openid-connect/auth?
client_id=my-app&
redirect_uri=https://myapp.example.com/callback&
response_type=code&
scope=openid&
kc_idp_hint=google
# Redirect trực tiếp đến SAML IdP
GET /realms/myrealm/protocol/openid-connect/auth?
client_id=my-app&
redirect_uri=https://myapp.example.com/callback&
response_type=code&
scope=openid&
kc_idp_hint=corporate-saml
JavaScript の統合:
// keycloak-js adapter
const keycloak = new Keycloak({
url: 'https://keycloak.example.com',
realm: 'myrealm',
clientId: 'my-app'
});
// Đăng nhập qua Google
function loginWithGoogle() {
keycloak.login({
idpHint: 'google'
});
}
// Đăng nhập qua corporate SAML
function loginWithCorporate() {
keycloak.login({
idpHint: 'corporate-saml'
});
}
11.2 ブラウザフローにおけるアイデンティティプロバイダリダイレクタ
アイデンティティプロバイダリダイレクタdalam ブラウザ フローが自動的に処理しますkc_idp_hint:
- リクエストがあった場合
kc_idp_hint=google→ すぐに Google にリダイレクトされます - ヒントがない場合 → 通常の流れを継続(ログインページを表示)
デフォルトの IdP: ID プロバイダー リダイレクターのデフォルト IdP を設定できます。ヒントがない場合は、デフォルト IdP に自動的にリダイレクトされます。
- 横にある⚙️をクリックしてください
アイデンティティプロバイダリダイレクタ - 入力デフォルトのアイデンティティプロバイダー:
google.google.com
12. ID ブローカーのログアウト
ユーザーがKeycloakからログアウトすると、それを構成できますログアウトを伝播する外部 IdP に送信します。
12.1 バックチャネルのログアウト
キークロークのサポートバックチャネルログアウト外部 OIDC IdP を使用する場合:
- OIDC IdP 構成で、有効にします。バックチャネルログアウト
- 外部 IdP はバックチャネル ログアウト エンドポイントをサポートする必要があります
- ユーザーがKeycloakからログアウトすると → Keycloakが外部IdPにログアウトリクエストを送信します
SAML IdP の場合、ログアウト伝播が処理されますSAML シングル ログアウト (SLO)プロトコルを自動的に実行します。
13. 同じソーシャル ブローカーの複数のインスタンス
Keycloak ではさらに多くのことが可能になります多くの例同じソーシャルプロバイダーであり、それぞれに異なるエイリアスが付いています。
# Ví dụ: 2 Google IdPs cho 2 Google Workspace domains
Identity Providers:
- Alias: google-corp → Google Workspace domain corp.example.com
- Alias: google-partner → Google Workspace domain partner.example.com
# Mỗi instance có Client ID / Client Secret riêng
# registered tại Google Cloud Console khác nhau
追加方法:
- OIDC v1.0 プロバイダーを追加します (2 番目のインスタンスには組み込みの Google プロバイダーを使用しないでください)
- エイリアス:
グーグルパートナー - 検出エンドポイント:
https://accounts.google.com/.well-known/openid-configuration - クライアント ID / シークレット: 2 番目のインスタンスの別の認証情報
14. アカウントコンソールでの IdP の表示/非表示
アカウント コンソールでどのユーザーが IdP を表示およびリンク/リンク解除できるかを制御します。
- ログインページに表示されます:ダニなし
ログインページで非表示にする - ログインページから非表示にする:チェックマーク
ログインページで非表示にする— まだ使用できますkc_idp_hint - アカウントコンソールに表示される: デフォルトの IdP がリンクされたアカウントに表示されます
- アカウントリンクのみ: IdP はアカウント コンソールにのみ表示され、ログイン ページには表示されません。
15. まとめ
| コンセプト | 説明する |
|---|---|
| ID ブローカーリング | Keycloakはアプリと外部IdPの間を仲介します |
| ソーシャルログイン | グーグル、フェイスブック、ギットハブ、アップル、マイクロソフト |
| OIDC/SAML/OAuth2 IdP | プロトコル標準に従って任意の IdP に接続します |
| 初回ログインの流れ | 最初の処理: 新しいユーザーまたは既存のリンクを作成します |
| アカウントリンク | 複数の外部アイデンティティを 1 つの Keycloak アカウントにリンクする |
| IdP マッパー | 変換属性: 属性インポーター、ハードコードされたロール/グループ、ユーザー名テンプレート |
| 同期モード | インポート (1 回)、強制 (常に上書き)、レガシー (マージ) |
| kc_idp_hint | ログイン ページをスキップし、特定の IdP に直接リダイレクトします |
| ブローカーのログアウト | ログアウトを外部 IdP に伝播する (バックチャネル/SLO) |