2014-03-06 53 views
0

我試圖創建一個策略xml來保護我的代理服務。我採取了像這樣的策略xml示例,但我無法將用戶添加到用戶組。當我給我的政策的網址它標記爲安全,但如果你看的屬性安全類型是usernameToken但用戶組是空的。與用戶組的wso2 esb策略

<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> 

回答

0

根據用戶名稱令牌規範,它只談論認證。在用戶名稱令牌中發送的用戶/密碼經過驗證。它沒有談論訪問控制(RBAC)。因此,您無法在策略中定義角色。您只能使用此策略來驗證身份驗證...

正如您所談論的WSO2 ESB一樣,在ESB中他們提供了一些修改來支持訪問控制到用戶名令牌策略中。 extended是密碼回調處理程序。在WSO2自定義密碼處理程序中,它會檢查身份驗證和訪問控制。您可以從here找到WSO2密碼處理程序的來源。我猜,您可以使用ESB提供的管理控制檯來確保代理服務的安全。在此管理控制檯中,您可以配置用戶名令牌安全策略並定義允許的角色。這些角色不會保存在策略中,而不是WSO2 ESB中的一些數據庫具有。