与Keycloak关联的帐户

时间:2019-12-18 17:08:20

标签: .net oauth-2.0 single-sign-on openid keycloak

我正在尝试基于Keycloak(开放源代码身份和访问管理解决方案)配置我们自己的授权服务器。目前,我对“ Account linking”有疑问。我想将Keycloak与外部身份提供程序(自定义,而非社交)集成在一起,但不希望提供通过这些身份提供程序登录的选项。结果,现有的用户帐户可以链接到不同的外部IDP。因此,一个帐户(在我们这边,由Keycloak管理)可以与许多不同的外部身份提供者链接。

我们提供了REST API(基于.Net Core),该API在服务器端而不是客户端上生成代理URI。因此,客户端只需要调用REST API,它就会返回格式正确的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对于创建“哈希”的方式非常讲究。

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

提前谢谢!

1 个答案:

答案 0 :(得分:0)

我成功解决了该问题。明显的步骤已经错过了。我一改用SSL,就解决了我的问题。