基于 SAML 的 SSO 用于身份验证和 LDAP 用于授权 - Spring Boot Security

Posted

技术标签:

【中文标题】基于 SAML 的 SSO 用于身份验证和 LDAP 用于授权 - Spring Boot Security【英文标题】:SAML based SSO for Authentication and LDAP for authorization - Spring Boot Security 【发布时间】:2020-09-27 21:06:21 【问题描述】:

将 Gsuite 与 Cloud Identity 专业版结合使用

a) 将 GSuite 初始化为 iDP,作为 SSO 的 SAML 应用程序 b) 用于读取用户信息和组信息以进行授权的安全 LDAP 客户端。

真的很困惑如何将 LDAP 客户端(作为授权提供者)与 SAML SSO(身份验证提供者)一起注册。

【问题讨论】:

请注意LDAP需要连接证书而不是用户名和密码 到目前为止你尝试了什么? SAML SSO 工作正常...不知道如何注册 LDAP...所有示例都基于身份验证...没有什么比通过 SAML 的 Authn 和通过 LDAP 的 Authz显而易见的选择) 所以,到目前为止,您显然没有尝试过任何事情。 我确实将证书添加到 /resource/cert 文件夹并注册了它们,但后来无法弄清楚如何测试连接性的无数复杂性 【参考方案1】:

使用 application.properties/application.yml 设置属性

spring:
    ldap:
        urls: ldap://<address>:<port>
        base: <baseDN>
        username: <userDN>
        password: <password>
        pooled: true

使用配置类来定义具有上述属性的 bean

@Bean
public LdapContextSource contextSource() 
    LdapContextSource ctx = new LdapContextSource();
    ctx.setUrl(urls);
    ctx.setUserDn(username);
    ctx.setPassword(password);
    ctx.setPooled(pooled);
    ctx.afterPropertiesSet();
    return ctx;

现在构建一个 LdapQuery 并使用 LdapTemplate 进行搜索

【讨论】:

这篇文章看起来不像是试图回答这个问题。这里的每一篇文章都应该明确地尝试回答这个问题;如果您有批评或需要澄清问题或其他答案,您可以在其下方直接post a comment(如这个)。请删除此答案并创建评论或新问题。见:Ask questions, get answers, no distractions

以上是关于基于 SAML 的 SSO 用于身份验证和 LDAP 用于授权 - Spring Boot Security的主要内容,如果未能解决你的问题,请参考以下文章

CVE-2022-23131——绕过 SAML SSO 身份验证

sso通信超时啥意思?

SAML和OAuth2这两种SSO协议的区别

SAML - SSO(转)

SAML简介

如何在 Zeppelin 中基于 HadoopGroupProvider 中的组配置角色,使用 Knox 提供基于 SAML 的 SSO?