使用 Keycloak 和 Azure Active Directory 的 SSO

Posted

技术标签:

【中文标题】使用 Keycloak 和 Azure Active Directory 的 SSO【英文标题】:SSO with Keycloak and Azure Active Directory 【发布时间】:2021-10-15 11:33:08 【问题描述】:

我们已将 keycloak 与 Azure Active Directory 集成,并将其与一些应用程序集成。

我们有一些直接与 Azure Active Directory 集成的应用程序。有没有一种方法可以让登录到一个应用程序的人登录到所有其他应用程序,而不管使用的身份验证提供程序(keycloak 还是 Azure AD)?

通常,如果我登录一个与 keycloak 集成的应用程序,我将登录到所有与 keycloak 集成的应用程序,反之亦然。

【问题讨论】:

【参考方案1】:

您的需求可以通过应用程序服务功能来满足,方法是利用已配置应用程序的令牌存储和已配置身份验证提供程序的授权行为。但只有从 keycloak 收到的令牌才能转发到 Azure AD 以进行身份​​验证,并进一步分别登录到向 Azure AD 注册的所有应用程序。反过来是不可能的,因为 keycloak 无法将收到的为应用程序配置的登录令牌请求转发回 Azure AD 进行授权。

您必须输入 REST API 代码以相应地登录和退出会话,方法是将以下类似代码合并到您的环境中。

<a href="/.auth/login/aad">Log in with the Microsoft Identity Platform</a>
<a href="/.auth/login/facebook">Log in with Facebook</a>
<a href="/.auth/login/google">Log in with Google</a>
<a href="/.auth/login/twitter">Log in with Twitter</a>
<a href="/.auth/login/apple">Log in with Apple</a>

有关将身份验证令牌从 Keycloak 转发到 Azure AD 以进行访问授权的方法,请查找以下文档:-

https://docs.microsoft.com/en-us/azure/app-service/overview-authentication-authorization

https://docs.microsoft.com/en-us/azure/app-service/configure-authentication-customize-sign-in-out

谢谢你,

【讨论】:

以上是关于使用 Keycloak 和 Azure Active Directory 的 SSO的主要内容,如果未能解决你的问题,请参考以下文章

使用 Keycloak 作为 Azure AD 的身份代理授予客户端凭据

KeyCloak 与 Azure ADB2C 集成 - 缺少状态参数

KeyCloak 与 Azure B2C 用户名映射问题的集成

在 keycloak id_token 中获取 Azure 组信息

触发从“Keycloak”到“Azure ADB2C”的基本 http 调用以进行令牌响应时出错

如何使用反向代理修复 Keycloak 中的“我们很抱歉需要 HTTPS”?