Keycloak は、JBoss が開発したオープンソースのアイデンティティおよびアクセス管理ソリューションです。
Keycloak(SAML)をアイデンティティプロバイダーとして設定するには:
-
Keycloak で、Cloudflare Access に使う realm を選びます。
-
Clients > Create client を開きます。
-
Client type で SAML を選びます。
-
Client ID に、Cloudflare Access のコールバック URL を入力します。
https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/callbackチーム名は、Cloudflare ダッシュボード ↗ の Settings > Team name and domain > Team name で確認できます。
-
Next を選びます。
-
Name ID format を email に変更します。
-
Valid redirect URIs に、Cloudflare Access のコールバック URL を入力します。
https://<your-team-name>.cloudflareaccess.com/cdn-cgi/access/callback -
Master SAML Processing URL に、Keycloak realm の SAML エンドポイントを入力します。
https://<keycloak_domain>/realms/<realm_name>/protocol/samlKeycloak v17 以降は、デフォルトで
/realms/<realm_name>/protocol/samlを使います。Keycloak v16 以前は/auth/realms/<realm_name>/protocol/samlを使うことがあります。 -
クライアント署名を有効にする場合は、Client Signature Required をオンにして Save を選びます。
-
ダウンロードした Access の証明書を Keys タブにインポートします。形式は Certificate PEM を使います。
-
ユーザーのメールアドレス用のプロトコルマッパーを設定します。
- Clients > Cloudflare Access の SAML クライアント > Client scopes を開きます。
- そのクライアント専用の client scope を選びます。
- Mappers > Add mapper > By configuration を開きます。
- User Property を選びます。
- Property を
email、SAML Attribute Name をemailに設定します。
次に、Cloudflare Access と連携します。
-
Cloudflare ダッシュボード ↗ で Zero Trust > Integrations > Identity providers を開きます。
-
Your identity providers で Add new identity provider を選びます。
-
次のページで SAML を選びます。
Keycloak の値は手動で入力します。次の例は、Keycloak と Cloudflare Access で使っているドメインに置き換えてください。
フィールド 例 Single Sign-On URL https://<keycloak_domain>/realms/<realm_name>/protocol/samlIdP Entity ID or Issuer URL https://<unique_id>.cloudflareaccess.com/cdn-cgi/access/callbackSigning certificate Keycloak realm のキーにある X509 証明書を使います -
Save を選びます。
接続を確認するには、Integrations > Identity providers を開き、テストするログイン方法の横の Test を選びます。