与 Keycloak 关联的帐户

Account linking with Keycloak

我正在尝试根据 Keycloak (Open Source Identity and Access Management solution). At the moment I have a problem with “Account linking 配置我们自己的授权服务器”。我想将 Keycloak 与外部身份提供者(自定义,非社交)集成,但不想提供通过这些身份提供者登录的选项。因此,现有的用户帐户可以链接到不同的外部 IDP。因此,单个帐户(在我们这边,由 Keycloak 管理)可以与许多不同的外部身份提供者相关联。

我们提供了一个 REST API(基于 .Net Core),它在服务器端而不是客户端生成代理 URI。因此,客户端只需调用 REST API,它 returns 返回格式正确的 URI。在客户端,我做了这样的事情 window.location.replace(accountLinkUri)。这将调用 Keycloak 代理,它将我们重定向到身份提供者。 我认为,在我们这边,我们满足了所有必要的先决条件: - 必须在管理控制台中为用户领域配置和启用所需的身份提供者。 - 用户帐户必须已经通过 OIDC 协议作为现有用户登录。 - 用户必须具有 account.manage-account 或 account.manage-account-links 角色映射。 - 应用程序必须在其访问令牌中被授予这些角色的范围。 - 应用程序必须有权访问其访问令牌,因为它需要其中的信息来生成重定向 URL.

但是我们没有被重定向到身份提供者的登录页面,而是收到了这个错误: 我试图只在客户端构建最终 URI,没有后端参与,但得到了同样的错误。

Snapshots from web-based (javascript) client

Snapshots from logs

我正在使用 Keycloak 8.0.1 版。我认为我面临的问题主要与配置或用户会话管理有关。 Keycloak 对如何创建“哈希”非常讲究。

如果有任何有用的信息或帮助,我将不胜感激。

提前致谢!

我成功解决了这个问题。错过了明显的步骤。我一切换到 SSL,就解决了我的问题。