azure - Spring Security支持多种身份验证类型

标签 azure authentication spring-security ldap

我需要在应用程序中同时支持3种身份验证方式:LDAP、Azure AD、Basic。

经过几个小时的谷歌搜索,我发现最好的方法是实现 3 个身份验证提供程序,然后将它们注册到 AuthenticationManagerBuilder。但我偶然发现的问题是,我不知道如何创建 Azure 广告提供商。对于 LDAP,我找到了一个可以使用的在线示例,并且基于 LDAP,我可能还可以制作基本用户名和密码提供程序,但在 Azure AD 上还没有找到类似的内容。我发现的是,我需要向 Azure AD 项目添加 2-3 个依赖项,然后它就会自动工作。

我不太了解 Spring Security,所以我难住了 atm。我是否可以相信 automagic 能够正确完成所有操作,或者是否有一些关于如何创建我可以与 AuthenticationManagerBuilder 一起使用的 AzureADAuthenticationProvider 的资源?

最佳答案

身份验证提供程序是一个抽象,用于从 LDAP、自定义第三方源、数据库等访问用户信息。它验证用户凭据。

Spring security 与 azure 广告:

  • 首先,azure ad 与 Spring security 集成,以确保您的应用程序的安全。
  1. 用户通过其凭据登录并通过 azure AD 进行验证。

  2. 您必须通过 azure graph API 访问 token 和成员(member)信息。

  3. 基于角色的授权的成员资格。

LDAP 身份验证:

  1. 唯一的 LDAP 或 DN,您可以在目录中执行搜索,除非您事先知道 DNS 的用户名。

  2. 您可以通过绑定(bind)用户来验证该用户。

  3. 加载用户的权限数。

自定义身份验证提供程序:

  • 借助您可以使用的身份验证提供程序接口(interface)创建自己的身份验证(自定义)

  • 验证方法并实现它,并使用用户的用户名和密码创建验证对象

  • 然后就可以在Spring Security配置中配置这些身份验证了。

这是引用Link关于 Spring Security

关于azure - Spring Security支持多种身份验证类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71954359/

相关文章:

Azure应用服务: Deployment Source missing options [radio vs dropdown]

Java HttpConnection 被拒绝,但 curl 等效工作

mysql - MySQL如何在bash中取变量?

java - 如何使用 Spring Security 自动注销

json - ARM 模板 - 如何删除参数字符串中的空格?

c# - 从 Instrumentation Key 切换到连接字符串后,Application Insights Azure 中的 StackTrace 中不再显示异常

c# - 使用 C# 以编程方式启用/禁用 Azure 中的函数

ios - 使用框架 API token 验证来自 iPhone 的请求

forms - Spring Security 重命名登录表单标签名称

java - 使用 Spring Security 当用户不存在时如何显示错误消息?