带有 Spring Boot 和 Azure AD 的 KeyCloak

Posted

技术标签:

【中文标题】带有 Spring Boot 和 Azure AD 的 KeyCloak【英文标题】:KeyCloak with Spring Boot and Azure AD 【发布时间】:2022-01-08 02:39:51 【问题描述】:

我正在开发一个 Spring Boot 应用程序,我们将使用 Azure AD (Active Directory) 实现符合 oAuth 2.0 的方法,这既用于用户身份验证,也用于与我们的内部服务进行通信。

我还需要定义和管理用户角色。

我知道我可以为 Azure Active Directory 使用普通的 Spring Boot Starter,但是,我想知道在这种情况下使用 KeyCloak 是否有意义?还是 KeyCloak 是为其他类型的情况量身定制的?

我有这个问题的原因是因为如果 Azure AD 已经处理用户,为什么还需要 KeyCloak?

【问题讨论】:

您好@Carlos,如果我的回答对您有帮助,您可以接受它作为答案(单击答案旁边的复选标记,将其从灰色切换为已填充。)。这对其他社区成员可能是有益的。谢谢 【参考方案1】:

我有这个问题的原因是因为如果 Azure AD 已经处理 用户,为什么需要 KeyCloak?

    全局 Rest API 与 oAuth2 绑定。

    Keycloak 在 Spring Boot 中用于对我们 API 的用户进行身份验证和授权。

    无法针对此 API 进行未经身份验证的请求。

    为确保身份验证/授权组件绝对可靠且经过测试,我们在 Keyclock 中设置了一些关键属性。

    KeyCloak 基于 JWT,身份验证、授权和 sso 集成在一个包中。

    KeyCloak 可以为您节省大量时间。

以下是 KeyCloak 提供的与其他身份提供者不同的一些功能。

• 单点登录:在这种情况下,您的应用程序在登录 KeyCloak 后无需处理登录表单。用户无需再次登录即可访问不同的应用程序,也无需再次登录即可注销。

• 社交登录:如果您在 KeyCloak 中有用户帐户,您可以使用相同帐户登录任何社交网络,前提是联邦在 KeyCloak 中配置了平台。

• 用户联合:Keycloak 内置支持连接到现有的 LDAP 或 Active Directory 服务器。如果您在其他商店(例如关系数据库)中有用户,您也可以实现自己的提供程序。

• 支持 SAML 2.0、SAML2.2、Open ID connect 和 Oauth2.0 等多种身份验证协议,用于与添加到该平台的各种身份提供程序集成。

• 通过为我们的 KeyCloak 安全应用程序集成来自身份提供商的用户,这可以显着减少用户管理工作。 Example

请参考document 了解 KeyCloack 提供的功能列表

【讨论】:

以上是关于带有 Spring Boot 和 Azure AD 的 KeyCloak的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 Azure AD 为应用服务上的 Spring Boot 应用设置重定向 URI

哪个数据存储(数据库)应该用于带有 AZURE 的 Spring-boot REST API 应用程序

Azure 中 Spring Boot 应用程序的重定向/会话问题

Spring Security 和 Azure AD PreAuthorize hasRole 不起作用

带有 JWT Bearer 令牌和 ASP.NET Core 2 WebApi 的 Azure AD 用户信息

Windows 10 上带有 Azure AD 示例的 Flask 应用程序