Kum*_*mar 5 openid-connect keycloak identityserver3
我有一个openidconnect注册的外部身份提供商Keycloak。当客户端应用程序尝试访问受保护的资源时,它会被重定向到KeyCloak登录页面。在登录页面上,我openidconnect启用了外部提供商按钮。一旦用户单击按钮,他就会被带到外部身份提供者(即identityserver3实例)。外部提供商对用户进行身份验证并发回代码。
现在,外部身份提供商中注册客户端的重定向 URL 是 keycloak 的重定向 URL。因此,在外部 IDP 身份验证成功后,它会将代码(因为它是身份验证代码流)发送回重定向 url 处的 keycloak:
在 URL 中,如果您看到它以endpoint. 我认为这是不正确的,但我无法在 KeyCloak 中更改它(它已被禁用),并且因此在外部 IDP 客户端配置中。
KeyCloak 无法理解上述 url,并出现错误并显示消息“使用身份提供程序进行身份验证时出现意外错误”
不应该KeyCloak理解代码流程并在收到代码后再次请求令牌。然后外部 IDP 将使用令牌进行响应,并将Keycloak该令牌发送回客户端(还将存储它以供将来使用)。
有人可以分享一些关于如何Keycloak通过代码流与外部 openidconnect ID 提供程序配合使用的知识吗?
通常,外部身份提供商的重定向 URI 采用 的形式{keycloak-host}/auth/realms/{realm}/broker/{provider}/endpoint。当您在外部身份提供商中注册客户端时,必须将其指定为重定向 URI。一旦用户通过外部 IdP 进行身份验证,授权代码将被发送到此 url,该 url 又将其重定向到客户端应用程序的重定向 url(在 Keycloak 中注册客户端时指定)。
Unexpected error when authenticating with Identity Provider是 Keycloak 针对 OAuth 流程中发生的多个错误发送的一般错误消息。如果不查看堆栈跟踪或提示中的日志,您将无法确定实际原因。
| 归档时间: |
|
| 查看次数: |
7787 次 |
| 最近记录: |