2016-05-31 6 views
0

の一部として存在している必要があり、私は私のサービスプロバイダとIDPを設定しようとしていますが、SAML応答は、IDPから来るとき、私は私のサービスプロバイダに名前ID要素は、件名

org.opensaml.common.SAMLExceptionをこのエラーを得ましたねえ: - メタデータのXMLを名前ID要素は、応答メッセージに件名の一部として存在している必要があり、org.springframework.security.saml.websso.WebSSOProfileConsumerImpl.processAuthenticationResponse

でIDP構成 でそれを有効にしてください私は、IDPで名前IDを設定し

<NameID>urn:oasis:names:tc:SAML:1.1:nameid-format:X509SubjectName</NameID> 
      <NameIDFormat>urn:mace:shibboleth:1.0:nameIdentifier</NameIDFormat> 
       <NameIDFormat>urn:oasis:names:tc:SAML:2.0:nameid-format:transient</NameIDFormat> 

here is the whole response 


<?xml version="1.0" encoding="UTF-8"?><saml2p:Response xmlns:saml2p="urn:oasis:names:tc:SAML:2.0:protocol" Destination="http://localhost:8082/saml/SSO" ID="_9129c7121ce71d24e32d5dfe527bd760" InResponseTo="a1eei99dgc9442d72a98h62i9d179j9" IssueInstant="2016-05-31T15:52:04.736Z" Version="2.0"> 
    <saml2:Issuer xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion" Format="urn:oasis:names:tc:SAML:2.0:nameid-format:entity">idp.test.com/idp/shibboleth</saml2:Issuer> 
    <saml2p:Status> 
     <saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/> 
    </saml2p:Status> 
    <saml2:EncryptedAssertion xmlns:saml2="urn:oasis:names:tc:SAML:2.0:assertion"> 
     <xenc:EncryptedData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#" Id="_4fcade81e4aae59bfa099e692158a687" Type="http://www.w3.org/2001/04/xmlenc#Element"> 
     <xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#aes128-cbc" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"/> 
     <ds:KeyInfo xmlns:ds="http://www.w3.org/2000/09/xmldsig#"> 
      <xenc:EncryptedKey Id="_bd99cfd23b6342cf0b4adf7fa03d203f" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"> 
       <xenc:EncryptionMethod Algorithm="http://www.w3.org/2001/04/xmlenc#rsa-oaep-mgf1p" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"> 
        <ds:DigestMethod Algorithm="http://www.w3.org/2000/09/xmldsig#sha1" xmlns:ds="http://www.w3.org/2000/09/xmldsig#"/> 
       </xenc:EncryptionMethod> 
       <ds:KeyInfo> 
        <ds:X509Data> 
        <ds:X509Certificate></ds:X509Certificate> 
        </ds:X509Data> 
       </ds:KeyInfo> 
       <xenc:CipherData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"> 
        <xenc:CipherValue>ssss</xenc:CipherValue> 
       </xenc:CipherData> 
      </xenc:EncryptedKey> 
     </ds:KeyInfo> 
     <xenc:CipherData xmlns:xenc="http://www.w3.org/2001/04/xmlenc#"> 
      <xenc:CipherValue>!!!</xenc:CipherValue> 
     </xenc:CipherData> 
     </xenc:EncryptedData> 
    </saml2:EncryptedAssertion> 
</saml2p:Response> 

私が名前IDであるかを理解「ドンとどのようにそれを を設定する私はSAMLの世界では、あなたの助け TNX

+0

クレームルールでNameIdフィールドを正しく設定したかどうか、あなたのIDP設定をチェックしましたか? – ManojP

+0

クレームルールはアクティブディレクトリの一部だと私は理解しているので、私はADを使用しません。私はSPとアイデンティティプロバイダのように動作するWebアプリケーション(spring saml)を持っています。あなたはそのnameIDとはどこに設定する必要があるのか​​分かりますか?私はそれについての良い文書を見つけることができません。属性リゾルバとに助けIユーザtransientIdのためにあなたに –

答えて

1

を理解するだろうSPにユーザーのIDを返すの2つの方法があります。サブジェクトエリアまたは属性ステートメントエリア。多くの新しいSP設定では、属性ステートメントの属性が使用されますが、サブジェクトエリアにはまだ値が設定されています。 SPが属性を使用してユーザーの身元を取得している場合は、ShibbolethをtransientIdを問題のSPに戻すように構成します。それ以外の場合は、SP Docs/configまたはメタデータを参照して、SPでサポートされているNameID形式を判断し、適切な値を適切な形式で返すようにShibbolethを構成する必要があります。

良いフォローアップの読書は、shib-userのスレッドです:http://shibboleth.1660669.n2.nabble.com/No-NameID-released-td7605312.htmlです。

+0

TNXに感謝 in atributeフィルタ –

関連する問題