18.12. 身份提供程序操作
列出可用的身份提供程序
使用 serverinfo
端点列出可用的身份提供程序。
例如:
kcadm.sh get serverinfo -r demorealm --fields 'identityProviders(*)'
$ kcadm.sh get serverinfo -r demorealm --fields 'identityProviders(*)'
Red Hat build of Keycloak 处理 serverinfo
端点,类似于 realm
端点。红帽构建的 Keycloak 不会解析相对于目标域的端点,因为它存在于任何特定域之外。
列出配置的身份提供程序
使用 identity-provider/instances
端点。
例如:
kcadm.sh get identity-provider/instances -r demorealm --fields alias,providerId,enabled
$ kcadm.sh get identity-provider/instances -r demorealm --fields alias,providerId,enabled
获取特定的配置的身份提供程序
使用身份提供程序的 alias
属性来构建端点 URI,如 identity-provider/instances/ALIAS
,以获取特定的身份提供程序。
例如:
kcadm.sh get identity-provider/instances/facebook -r demorealm
$ kcadm.sh get identity-provider/instances/facebook -r demorealm
删除特定的配置的身份提供程序
使用 delete
命令以及您用来获取特定配置的身份提供程序的同一端点 URI,以移除特定的配置的身份提供程序。
例如:
kcadm.sh delete identity-provider/instances/facebook -r demorealm
$ kcadm.sh delete identity-provider/instances/facebook -r demorealm
配置 Keycloak OpenID Connect 身份提供程序
-
在创建新身份提供程序实例时,请使用
keycloak-oidc
作为providerId
。 提供配置属性:
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/realms/demorealm/protocol/openid-connect/auth -s config.tokenUrl=http://localhost:8180/realms/demorealm/protocol/openid-connect/token -s config.clientId=demo-oidc-provider -s config.clientSecret=secret
$ 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/realms/demorealm/protocol/openid-connect/auth -s config.tokenUrl=http://localhost:8180/realms/demorealm/protocol/openid-connect/token -s config.clientId=demo-oidc-provider -s config.clientSecret=secret
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
配置 OpenID Connect 身份提供程序
配置通用 OpenID Connect 供应商的方式与配置 Keycloak OpenID Connect 供应商的方式相同,但您将 providerId
属性值设置为 oidc
。
配置 SAML 2 身份提供程序
-
使用
saml
作为providerId
。 -
提供配置属性:
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/realms/saml-broker-realm/protocol/saml -s config.nameIDPolicyFormat=urn:oasis:names:tc:SAML:2.0:nameid-format:persistent -s config.signatureAlgorithm=RSA_SHA256
$ 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/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
。 提供
配置属性
: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
$ 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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
配置 Google 身份提供程序
-
使用
google
作为providerId
。 提供
配置属性
: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
$ 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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
配置 OBC 身份提供程序
-
使用
twitter
作为providerId
。 提供
配置属性
clientId
和clientSecret
。您可以在应用程序的 Artistic Application Management 应用程序配置页面中找到这些属性。如需更多信息 ,请参阅 author 身份代理 页面。例如:
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
$ 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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
配置 GitHub 身份提供程序
-
使用
github
作为providerId
。 提供
配置属性
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
$ 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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
配置 LinkedIn 身份提供程序
-
使用
linkedin
作为providerId
。 提供
配置属性
clientId
和clientSecret
。您可以在应用程序的 LinkedIn Developer Console 应用程序页面中找到这些属性。如需更多信息,请参阅 LinkedIn identity 代理 页面。例如:
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
$ 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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
配置 Microsoft Live 身份提供程序
-
使用
microsoft
作为providerId
。 提供
配置属性
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
$ 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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
配置 Stack Overflow 身份提供程序
-
使用
stackoverflow
命令作为providerId
。 提供
配置属性
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
$ 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
Copy to Clipboard Copied! Toggle word wrap Toggle overflow