我需要在应用程序中同时支持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 集成,以确保您的应用程序的安全。
用户通过其凭据登录并通过 azure AD 进行验证。
您必须通过 azure graph API 访问 token 和成员(member)信息。
基于角色的授权的成员资格。
LDAP 身份验证:
唯一的 LDAP 或 DN,您可以在目录中执行搜索,除非您事先知道 DNS 的用户名。
您可以通过绑定(bind)用户来验证该用户。
加载用户的权限数。
自定义身份验证提供程序:
借助您可以使用的身份验证提供程序接口(interface)创建自己的身份验证(自定义)
验证方法并实现它,并使用用户的用户名和密码创建验证对象
然后就可以在Spring Security配置中配置这些身份验证了。
这是引用Link关于 Spring Security
关于azure - Spring Security支持多种身份验证类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71954359/