将 microsoft 登录添加到 keycloak

问题描述 投票:0回答:1

我一直在实现 keycloak 作为我的授权服务器,并且大部分都按预期工作,但是我有点被 Microsoft 身份提供商难住了。

我可能误解了关于添加“使用 MS 登录”和“使用 Google 登录”以及所有其他添加的社交登录的核心概念。

当我添加 MS 作为身份提供商时,我会在 azure 中创建一个企业应用程序,并填写 ind 客户端 ID 和客户端密钥,并将租户 ID 留空,以允许多租户。 但是,我仍然绑定到该特定租户中的用户,这是有道理的,因为身份提供程序绑定到我的租户中的应用程序。

但这并不能让我实现让我系统中存在的用户使用他们的 MS 登录名登录的目标,这是我无法控制的。 例如。当我用谷歌登录我的 stackoverflow 帐户时,我事先没有安装任何东西。 这样我就必须为每个不同的客户、他们各自的 MS 租户添加一个身份提供商,这是不可行的。

我将如何在 Stackoverflow 上支持类似的功能,用户可以使用 MS 登录,并且 MS 登录/oid/标识符将映射到我系统中的现有用户?

如果不支持开箱即用,是否意味着创建我自己的身份验证流程,或者可能使用自定义提供程序扩展 keycloak ?

oauth-2.0 keycloak microsoft-identity-platform identity-provider
1个回答
0
投票

您正在寻找的概念是每个用户的身份验证选择。我将解释这种方法是如何工作的,但它需要在 Keycloak 中进行工作,这可能不是微不足道的。

在Keycloak中,您需要为每个客户组织配置单独的OIDC身份验证方法。还要确保每个用户的帐户数据中都有一个租户 ID。

对于每个用户,您必须在触发身份验证之前识别他们的属性(例如他们的租户 ID 或首选身份验证方法)。

例如,使用 Office 365 等系统所使用的方法类型:

  • 运行一个操作,提示用户输入电子邮件等标识符

  • 运行一个操作来查找用户的帐户及其属性并计算用户的身份验证方法

  • 运行一个操作,向用户呈现其身份验证方法的个性化列表(如果有多个)

  • 或者运行操作或将用户直接路由到他们的单一身份验证方法。

要实现这样的流程,您需要在授权服务器中进行一些自定义。对于 Keycloak,您需要查看 Authentication SPA 我相信。

© www.soinside.com 2019 - 2024. All rights reserved.