允许cas中的特定角色

时间:2015-07-10 10:04:26

标签: authentication cas

我有一个cas服务器,可以进行身份​​验证并直接发回一些属性。现在我想添加一个服务来检查主体属性中的用户角色,并且仅当登录用户具有特定角色(如管理员角色!)时才允许访问服务。

我读到了'requiredHandlers'并认为它可以提供帮助,但我无法让它发挥作用!

对于服务,我有这样的事情:

    <bean class="org.jasig.cas.services.RegexRegisteredService">
        <property name="id" value="1"/>
        <property name="name" value="Admin panel service"/>
        <property name="serviceId" value="http://localhost:8080/admin"/>
        <property name="evaluationOrder" value="0"/>
        <property name="ignoreAttributes" value="true"/>
        <property name="requiredHandlers" value="supporterAuthenticationHandler"> <!-- this is what i found so far -->
        </property>
    </bean>

supporterAuthenticationHandler

中定义了authenticationManager
<bean id="authenticationManager" class="org.jasig.cas.authentication.PolicyBasedAuthenticationManager">
    <constructor-arg>
        <map>
            <entry key-ref="proxyAuthenticationHandler" value-ref="proxyPrincipalResolver"/>
            <entry key-ref="primaryAuthenticationHandler"><null /></entry>
            <entry key-ref="supporterAuthenticationHandler"><null /></entry>
        </map>
    </constructor-arg>

    <property name="authenticationPolicy">
        <bean class="org.jasig.cas.authentication.AnyAuthenticationPolicy"/>
    </property>
</bean>

supporterAuthenticationHandler是AuthenticationHandler的一个简单实现(尚未实现。

问题是我无法让cas检查supporterAuthenticationHandler以便我可以更进一步(并且可能会进入另一个我需要具有属性的新Principal的洞)。

我走错了路吗?我应该在我的管理应用程序中检查用户角色吗?是否可以使用不同服务的cas检查角色?

1 个答案:

答案 0 :(得分:0)

这就是CAS是身份验证服务而不是授权服务。 CAS仅确保用户认为他们不是他们在应用程序(服务)中可以做的事情。

请看这个答案

https://security.stackexchange.com/questions/7623/can-central-authentication-service-cas-do-authorization

相关问题