Spring Security 3.1 和 Active Directory - 如何为用户和组设置配置

Spring Security 3.1 和 Active Directory - 如何为用户和组设置配置

我找不到任何与我想要实现的目标相关的东西

我有一个使用 Spring Secuirty 3.1 的 Web 系统,需要从 Active Directory 链接用户。对于我的开发,我只是将它们存储在 spring-security.xml 文件中。这很好,但对于生产,我需要从 Active Directory 链接用户。我现在可以正常工作,因此我可以登录等,所以这不是问题。我遇到的问题是,在我的本地开发工作中,我有用户和“组”,即 ROLE_USER 和 ROLE_ADMIN。

在 Active Directory 中,有两个组映射到这些名称。我需要根据这些角色类型执行 URL 拦截 URL,但我不知道如何针对 Active Directory 执行此操作。

这是我的本地开发版本,它对身份验证提供程序中的用户进行了硬编码。这需要用于活动目录:

<http auto-config="true" disable-url-rewriting="true">
    <intercept-url pattern="/test/*" access="ROLE_USER, ROLE_ADMIN"  />
    <intercept-url pattern="/admin" access="ROLE_ADMIN"  />
    <intercept-url pattern="/list*" access="ROLE_USER, ROLE_ADMIN" />
    <form-login login-page="/login" 
            default-target-url="/home" 
            authentication-failure-url="/loginfailed" />
    <logout invalidate-session="true" logout-success-url="/logout" />
    <session-management invalid-session-url="/login">
        <concurrency-control max-sessions="1" error-if-maximum-exceeded="true"/>
    </session-management>       
</http> 

<authentication-manager>
    <authentication-provider>
        <user-service>
            <user name="test" password="test" authorities="ROLE_USER" />
            <user name="admin" password="admin" authorities="ROLE_ADMIN" />
        </user-service>
    </authentication-provider>
</authentication-manager>

但是,我需要做的是用基于活动目录的身份验证管理器替换它。

<authentication-manager>
    <authentication-provider ref="ldapActiveDirectoryAuthProvider"/>
</authentication-manager>   

我知道用户位于 AD 的这个目录中:

OU=用户,OU=Z3,DC=i1,DC=z12,DC=r1,DC=net

并且各组位于:

OU=群组,OU=Z3,DC=i1,DC=z12,DC=r1,DC=net

Active Directory 中用于登录的关键属性是“SAM-Account-Name”

请帮忙。

答案1

看看 Spring Security 参考!

第 19.5 章 Active Directory 身份验证

相关内容