2017-10-06 5 views
0

私はWSO2 Identity Server 5.3を使用していますWSO2 Identity Server 5.3を使用して複数値の属性SAML2アサーションを生成する方法は?

ユーザープロファイルからいくつかの複数値属性を持つSAML2アサーションを生成する必要があります。

のは、私は特定の請求項の値のカンマ区切りのリストを持っていると私は私のSAMLアサーション応答に次の構造を使用してこれらの属性を整理しなければならないとしましょう:

<saml2:Attribute Name="attribute1"> 
    <saml2:AttributeValue>value1</saml2:AttributeValue> 
    <saml2:AttributeValue>value2</saml2:AttributeValue> 
    <saml2:AttributeValue>value3</saml2:AttributeValue> 
    <saml2:AttributeValue>value4</saml2:AttributeValue> 
</saml2:Attribute> 

私はSAML2アサーションを取得するためにSTSクライアントを構成し複数の主張を設定した特定のユーザーからの申し立てが含まれます。

私の問題は、私は次のような構造としてSAMLアサーション応答を取得することです:

<saml2:Attribute Name="attribute1"> 
    <saml2:AttributeValue>value1,value2,value3,value4</saml2:AttributeValue> 
</saml2:Attribute> 

IセットアップTomcatで旅行アプリケーションのインスタンス、再びテストしにログイン後、予想通り、私はSAMLアサーションを得ましたアプリケーションとSAMLフローの選択アイデンティティ・サーバーのログ・ファイルを調べて確認できます。

SAMLアサーションを取得するためにSTSクライアント[1]も使用しましたが、マルチ値属性になるときに得られるのは、その特定の属性のカンマ区切り値です。

クライアントとしてSOAP UIを使用して、管理サービスhttps://localhost:9443/services/wso2carbon-sts?wsdlに直接行ったが、前述のSAML応答はまったく同じです。複数値の属性は、その特定の属性のカンマ区切りの値になります。ここで

は、私は属性ステートメントのセクションで何を得るのサンプルです:

<saml2:AttributeStatement> 
    <saml2:Attribute Name="http://wso2.org/claims/im" NameFormat="http://wso2.org/claims/im"> 
     <saml2:AttributeValue 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">jairo_fernandezr,jb_fernandez 
     </saml2:AttributeValue> 
    </saml2:Attribute> 
    <saml2:Attribute Name="http://wso2.org/claims/emailaddress" NameFormat="http://wso2.org/claims/emailaddress"> 
     <saml2:AttributeValue 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">[email protected] 
     </saml2:AttributeValue> 
    </saml2:Attribute> 
    <saml2:Attribute Name="http://wso2.org/claims/givenname" NameFormat="http://wso2.org/claims/givenname"> 
     <saml2:AttributeValue 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="xs:string">Jairo 
     </saml2:AttributeValue> 
    </saml2:Attribute> 
</saml2:AttributeStatement> 

単一の値として構成多値属性でSAMLアサーションを取得する別の方法がある場合は今、私がお聞きしたいと思います管理サービスhttps://localhost:9443/services/wso2carbon-sts?wsdlを使用するか、travelocityアプリケーションを設定しないで別の方法でコンマ区切りの値を区切ります。

[1] https://github.com/wso2/product-is/tree/5.x.x/modules/samples/sts

任意のコメントを大幅に理解されるであろう。それはウェブSAML SSOの流れに来るとき

おかげ

+0

ため

おかげで確かに区切られた値を使用すると、wso2isは、複数の値を持つ属性をどのように処理するか、デフォルトの方法です。私はあなたがsamlレスポンスを作成する独自のクラスを実装できると信じています(リクエストから属性を作成するメソッドを上書きする)、api-manager.xmlで設定します(私はインターフェイスを正確に覚えていません。月曜日のオフィス)。あなたが上書きする必要があるのは、自分のクレームハンドラです(それはクレームのキー/値マップを作成するクラスです)。しかし、私は署名があなた自身の実装でどのように動作するかを確認します。 – gusto2

+0

あなたのユーザストアは何ですか?デフォルトのLDAPですか? – farasath

+0

私はプライマリユーザストアとして外部LDAPを持っており、セカンダリユーザストアとしてADも持っています。 –

答えて

0

WSO2アイデンティティサーバー5.3.0は正常に動作します。

しかし、デフォルトでhttps://localhost:9443/services/wso2carbon-stsで見つかるサービスwso2carbon-stsは、私の元の投稿に記載されているように動作が異なります。

私はこれをWSO2チームに報告し、Identity Serverのプロジェクトにバグを登録しました。詳細はhereを参照してください。ご支援

関連する問題