gpt4 book ai didi

Spring 云微服务的 Azure AD 登录/注销实现

转载 作者:行者123 更新时间:2023-12-03 00:12:57 24 4
gpt4 key购买 nike

我想实现登录和注销功能,并使用 Azure Active Directory 检索用户详细信息,例如用户名和用户角色。

我们正在使用 Docker 来部署 Spring cloud microservices project在 Azure 云上。您能否建议我获取用户详细信息的步骤?

我们是否需要使用 Spring Cloud OAuth2 安全性(使用 JWT)来保护所有微服务边缘点,或者只是我们可以保护一个 Web 微服务?我是否需要任何权限、特定用户角色来实现此操作?

最佳答案

您可以在此处找到有关 AAD 的 OAuth 2.0 支持的 Azure 文档

https://learn.microsoft.com/en-us/azure/active-directory/active-directory-protocols-oauth-code

我有一个使用 OAuth 2.0 和不同身份验证服务器的应用程序,我想看看是否可以使用 AAD 作为身份验证服务器。但是,无论最终成为您的身份验证服务器,应用程序的其余部分都应该是相同的......

  • 身份验证服务器处理登录(通常作为单点登录模式)
  • 身份验证服务器将返回 Json Web token (在某些时候,具体取决于用于检索它的授权类型)
  • JWT 应包含在每个后续请求中,以确保调用者拥有授权

从 Spring 的角度来看,您至少需要一个 SSO 客户端(由 @EnableOAuthSSO 注释表示)。如果所有内容都由该进程托管,您将需要该 JWT 来调用后续方法。如果您的进程托管在其他进程中,您可能也希望它们受到保护。使用 @EnableResourceServer 注释将配置 Spring Security 来查找 JWT,只是如果请求没有 JWT,则不会尝试检索 JWT。

除非端点可公开访问,否则您将需要保护它。当然,我真的不知道你的应用程序的上下文,所以这个声明纯粹是基于对你试图用你的应用程序做什么的零知识的不知情的意见。物有所值。

编辑

这比我最初想象的要复杂一些。我已经能够编写一些代码来动态地从 Microsoft 检索公钥,以验证返回的 JWT。

但是,主要问题是 Azure AD 在充当身份/身份验证服务器时支持 Open Id Connect。而且,目前 spring-security-oauth2 不支持 Open Id Connect。

我能够对 spring 代码进行一些小的更改,但是 I did ask the question to the Spring group他们正在积极致力于增加对 Open Id Connect 的支持。他们希望两个月后发布(大概?)。

短期内,oauth2 支持不支持 Open Id Connect。鉴于这是 AAD 使用的协议(protocol),当前版本的 oauth2 不适用于 AAD。也就是说,我很乐意等待官方支持,这不会太久。

关于Spring 云微服务的 Azure AD 登录/注销实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40055187/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com