具有用户组的wso2 esb策略

时间:2014-03-06 08:13:24

标签: security wso2 esb policy usergroups

我正在尝试创建策略xml来保护我的代理服务。我采用像这样的策略xml示例,但我无法在用户组上添加用户。当我提供我的策略的URL时,它标记为安全性,但是如果查看属性,则安全性类型为usernameToken,但用户组为空。

    <wsp:Policy wsu:Id="UTOverTransport" xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
<wsp:ExactlyOne>
    <wsp:All>
        <sp:TransportBinding xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
            <wsp:Policy>
                <sp:TransportToken>
                    <wsp:Policy>
                        <sp:HttpsToken RequireClientCertificate="false"></sp:HttpsToken>
                    </wsp:Policy>
                </sp:TransportToken>
                <sp:AlgorithmSuite xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
                    <wsp:Policy>
                        <sp:Basic256></sp:Basic256>
                    </wsp:Policy>
                </sp:AlgorithmSuite>
                <sp:Layout>
                    <wsp:Policy>
                        <sp:Lax></sp:Lax>
                    </wsp:Policy>
                </sp:Layout>
                <sp:IncludeTimestamp></sp:IncludeTimestamp>
            </wsp:Policy>
        </sp:TransportBinding>
        <sp:SignedSupportingTokens xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy">
            <wsp:Policy>
                <sp:UsernameToken xmlns:sp="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy" sp:IncludeToken="http://schemas.xmlsoap.org/ws/2005/07/securitypolicy/IncludeToken/AlwaysToRecipient">
                </sp:UsernameToken>
            </wsp:Policy>
        </sp:SignedSupportingTokens>
    </wsp:All>
</wsp:ExactlyOne>
<rampart:RampartConfig xmlns:rampart="http://ws.apache.org/rampart/policy">
    <rampart:encryptionUser>useReqSigCert</rampart:encryptionUser>
    <rampart:timestampPrecisionInMilliseconds>true</rampart:timestampPrecisionInMilliseconds>
    <rampart:timestampTTL>300</rampart:timestampTTL>
    <rampart:timestampMaxSkew>300</rampart:timestampMaxSkew>
    <rampart:timestampStrict>false</rampart:timestampStrict>
    <rampart:tokenStoreClass>org.wso2.carbon.security.util.SecurityTokenStore</rampart:tokenStoreClass>
    <rampart:nonceLifeTime>300</rampart:nonceLifeTime>
    <rampart:user>admin</rampart:user>
    <rampart:passwordcallbackclass>org.wso2.carbon.digestpwd.PWCBHandler</rampart:passwordcallbackclass>
</rampart:RampartConfig>
</wsp:Policy>

1 个答案:

答案 0 :(得分:0)

根据用户名令牌规范,它只讨论身份验证。验证用户名令牌中发送的用户/密码。它没有谈论访问控制(RBAC)。因此,您无法在策略中定义角色。您只能使用此策略来验证身份验证...

正如您所讨论的WSO2 ESB,在ESB中,他们提供了一些修改以支持对用户名令牌策略的访问控制。他们扩展的地方是密码回调处理程序。在WSO2自定义密码处理程序中,它检查身份验证和访问控制。您可以从here找到WSO2密码处理程序的来源。我想,您可以使用ESB提供的管理控制台来保护代理服务。在此管理控制台中,您可以配置用户名令牌安全策略并可以定义允许的角色。这些角色不会保存在策略中,而不是WSO2 ESB中的一些数据库有。