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 アイデンティティープロバイダーの設定
-
新規 ID プロバイダーインスタンスの作成時に、
keycloak-oidc
をproviderId
として使用します。 config
属性を指定します (authorizationUrl
、tokenUrl
、clientId
、および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 アイデンティティープロバイダーの設定
-
saml
をproviderId
として使用します。 -
config
属性 (singleSignOnServiceUrl
、nameIDPolicyFormat
、signatureAlgorithm
) を指定します。
以下に例を示します。
$ 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 アイデンティティープロバイダーの設定
-
facebook
をproviderId
として使用します。 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 プロバイダーの設定
-
providerId
としてgoogle
を使用します。 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 アイデンティティープロバイダーの設定
-
twitter
をproviderId
として使用します。 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 プロバイダーの設定
-
github
をproviderId
として使用します。 config
属性clientId
およびclientSecret
を指定します。これらの属性は、アプリケーションの GitHub Developer Application Settings ページにあります。詳細については、Github アイデンティティーブローカー ページを参照してください。以下に例を示します。
$ 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 アイデンティティープロバイダーの設定
-
linkedin
をproviderId
として使用します。 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 アイデンティティープロバイダーの設定
-
microsoft
をproviderId
として使用します。 config
属性clientId
およびclientSecret
を指定します。これらの属性は、アプリケーションの Microsoft Application Registration Portal ページにあります。詳細については、Microsoft アイデンティティーブローカー ページを参照してください。以下に例を示します。
$ 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 アイデンティティープロバイダーの設定
-
stackoverflow
コマンドをproviderId
として使用します。 config
属性 (clientId
、clientSecret
、およびkey
) を指定します。これらの属性は、アプリケーションの Stack Apps OAuth ページにあります。詳細については、Stack Overflow アイデンティティーブローカー ページを参照してください。以下に例を示します。
$ 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