18.11. アイデンティティープロバイダー操作

利用可能なアイデンティティープロバイダーの一覧表示

serverinfo エンドポイントを使用して利用可能な ID プロバイダーを一覧表示します。

以下に例を示します。

$ kcadm.sh get serverinfo -r demorealm --fields 'identityProviders(*)'
注記

Red Hat Single Sign-On は、Realms エンドポイントと同様に serverinfo エンドポイントを処理します。Red Hat Single Sign-On は特定のレルム外に存在するため、ターゲットレルムとの関連でエンドポイントを解決しません。

設定済みのアイデンティティープロバイダーの一覧表示

identity-provider/instances エンドポイントを使用します。

以下に例を示します。

$ kcadm.sh get identity-provider/instances -r demorealm --fields alias,providerId,enabled

特定の設定されたアイデンティティープロバイダーの取得

アイデンティティープロバイダーの alias 属性を使用して、identity-provider/instances/ALIAS などのエンドポイント URI を作成して特定のアイデンティティープロバイダーを取得します。

以下に例を示します。

$ kcadm.sh get identity-provider/instances/facebook -r demorealm

特定の設定されたアイデンティティープロバイダーの削除

delete コマンドを、特定の設定済みのアイデンティティープロバイダーを取得するために使用した同じエンドポイント URI で使用して、特定の設定済みのアイデンティティープロバイダーを削除します。

以下に例を示します。

$ kcadm.sh delete identity-provider/instances/facebook -r demorealm

Keycloak OpenID Connect アイデンティティープロバイダーの設定

  1. 新規 ID プロバイダーインスタンスの作成時に、keycloak-oidcproviderId として使用します。
  2. config 属性を指定します (authorizationUrltokenUrlclientId、および clientSecret)。

    以下に例を示します。

    $ kcadm.sh create identity-provider/instances -r demorealm -s alias=keycloak-oidc -s providerId=keycloak-oidc -s enabled=true -s 'config.useJwksUrl="true"' -s config.authorizationUrl=http://localhost:8180/auth/realms/demorealm/protocol/openid-connect/auth -s config.tokenUrl=http://localhost:8180/auth/realms/demorealm/protocol/openid-connect/token -s config.clientId=demo-oidc-provider -s config.clientSecret=secret

OpenID Connect ID プロバイダーの設定

providerId 属性値を oidc に設定した場合を除き、Keycloak OpenID Connect プロバイダーを設定する方法で汎用 OpenID Connect プロバイダーを設定します。

SAML 2 アイデンティティープロバイダーの設定

  1. samlproviderId として使用します。
  2. config 属性 (singleSignOnServiceUrlnameIDPolicyFormatsignatureAlgorithm) を指定します。

以下に例を示します。

$ kcadm.sh create identity-provider/instances -r demorealm -s alias=saml -s providerId=saml -s enabled=true -s 'config.useJwksUrl="true"' -s config.singleSignOnServiceUrl=http://localhost:8180/auth/realms/saml-broker-realm/protocol/saml -s config.nameIDPolicyFormat=urn:oasis:names:tc:SAML:2.0:nameid-format:persistent -s config.signatureAlgorithm=RSA_SHA256

Facebook アイデンティティープロバイダーの設定

  1. facebookproviderId として使用します。
  2. config 属性 clientId および clientSecret を指定します。これらの属性は、アプリケーションの Facebook Developers アプリケーション設定ページにあります。詳細は、facebook の アイデンティティーブローカー ページを参照してください。

    以下に例を示します。

    $ kcadm.sh create identity-provider/instances -r demorealm -s alias=facebook -s providerId=facebook -s enabled=true  -s 'config.useJwksUrl="true"' -s config.clientId=FACEBOOK_CLIENT_ID -s config.clientSecret=FACEBOOK_CLIENT_SECRET

Google ID プロバイダーの設定

  1. providerId として google を使用します。
  2. config 属性 clientId および clientSecret を指定します。これらの属性は、アプリケーションの Google Developers アプリケーション設定ページで確認できます。詳細は、Google のアイデンティティーブローカー ページを参照してください。

    以下に例を示します。

    $ kcadm.sh create identity-provider/instances -r demorealm -s alias=google -s providerId=google -s enabled=true  -s 'config.useJwksUrl="true"' -s config.clientId=GOOGLE_CLIENT_ID -s config.clientSecret=GOOGLE_CLIENT_SECRET

Twitter アイデンティティープロバイダーの設定

  1. twitterproviderId として使用します。
  2. config 属性 clientId および clientSecret を指定します。これらの属性は、アプリケーションの Twitter Application Management アプリケーション設定ページにあります。詳細は、Twitter のアイデンティティーブローカー ページを参照してください。

    以下に例を示します。

    $ kcadm.sh create identity-provider/instances -r demorealm -s alias=google -s providerId=google -s enabled=true  -s 'config.useJwksUrl="true"' -s config.clientId=TWITTER_API_KEY -s config.clientSecret=TWITTER_API_SECRET

GitHub ID プロバイダーの設定

  1. githubproviderId として使用します。
  2. config 属性 clientId および clientSecret を指定します。これらの属性は、アプリケーションの GitHub Developer Application Settings ページにあります。詳細は、Github identity broker ページを参照してください。

    以下に例を示します。

    $ kcadm.sh create identity-provider/instances -r demorealm -s alias=github -s providerId=github -s enabled=true  -s 'config.useJwksUrl="true"' -s config.clientId=GITHUB_CLIENT_ID -s config.clientSecret=GITHUB_CLIENT_SECRET

LinkedIn アイデンティティープロバイダーの設定

  1. linkedinproviderId として使用します。
  2. config 属性 clientId および clientSecret を指定します。これらの属性は、アプリケーションの LinkedIn Developer Console アプリケーションページにあります。詳細は、LinkedIn アイデンティティーブローカー ページを参照してください。

    以下に例を示します。

    $ kcadm.sh create identity-provider/instances -r demorealm -s alias=linkedin -s providerId=linkedin -s enabled=true  -s 'config.useJwksUrl="true"' -s config.clientId=LINKEDIN_CLIENT_ID -s config.clientSecret=LINKEDIN_CLIENT_SECRET

Microsoft Live アイデンティティープロバイダーの設定

  1. microsoftproviderId として使用します。
  2. config 属性 clientId および clientSecret を指定します。これらの属性は、アプリケーションの Microsoft Application Registration Portal ページにあります。詳細は、Microsoft identity broker ページを参照してください。

    以下に例を示します。

    $ kcadm.sh create identity-provider/instances -r demorealm -s alias=microsoft -s providerId=microsoft -s enabled=true  -s 'config.useJwksUrl="true"' -s config.clientId=MICROSOFT_APP_ID -s config.clientSecret=MICROSOFT_PASSWORD

Stack Overflow アイデンティティープロバイダーの設定

  1. stackoverflow コマンドを providerId として使用します。
  2. config 属性 (clientIdclientSecret、および key) を指定します。これらの属性は、アプリケーションの Stack Apps OAuth ページにあります。詳細は、Stack Overflow ID ブローカー ページを参照してください。

    以下に例を示します。

    $ kcadm.sh create identity-provider/instances -r demorealm -s alias=stackoverflow -s providerId=stackoverflow -s enabled=true  -s 'config.useJwksUrl="true"' -s config.clientId=STACKAPPS_CLIENT_ID -s config.clientSecret=STACKAPPS_CLIENT_SECRET -s config.key=STACKAPPS_KEY