2016-10-05 24 views
0

以下はSAMLレスポンスとして得られるサンプルレスポンスです。下のXMLレスポンスから "NameID"属性を使用するにはどうすればよいですか、その属性を設定するにはどのようなコードを含める必要がありますか?また、ASP.NET(C#)アプリケーションにはどのようなコードを含める必要がありますか?あなたはSAMLに対処することを好む何らかの理由コードから直接トークン場合中継先としてADFSを使用したSAML 2.0レスポンスを使用する

<Subject> 
     <NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress">email</NameID> 
     <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"> 
      <SubjectConfirmationData InResponseTo="_b221ce73-ae7e-4119-bacd-6e5d3fb457a1" 
       NotOnOrAfter="2015-10-16T14:15:04.877Z" Recipient="/ACS/Post.aspx"/> 
     </SubjectConfirmation> 
    </Subject> 
    <Conditions NotBefore="2015-10-16T14:10:04.873Z" NotOnOrAfter="2015-10-16T15:10:04.873Z"> 
     <AudienceRestriction> 
      <Audience>yourAudience</Audience> 
     </AudienceRestriction> 
    </Conditions> 
    <AttributeStatement> 
     <Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"> 
      <AttributeValue>[email protected]</AttributeValue> 
     </Attribute> 
     <Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname"> 
      <AttributeValue>John</AttributeValue> 
     </Attribute> 
     <Attribute Name="http://schemas.xmlsoap.org/ws/2005/05/identity/claims/surname"> 
      <AttributeValue>Doe</AttributeValue> 
     </Attribute> 
    </AttributeStatement> 
    <AuthnStatement AuthnInstant="2015-10-16T14:10:04.556Z" 
     SessionIndex="_0660f911-7f04-4616-8dd6-dea65ec0032b"> 
     <AuthnContext> 
      <AuthnContextClassRef>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</AuthnContextClassRef> 
     </AuthnContext> 
    </AuthnStatement> 
</Assertion> 
+0

ADFSを使用して手動で認証を実装していますか?もしそうなら、なぜWIF(Windows Identity Foundation)を使用しないのですか? –

+0

ありがとう.. :)はい。 WIFもチェックしています。私はそれを実装するためのステップを見つけることができる正確なリンクを私に提案することができますか? –

+0

https://msdn.microsoft.com/en-us/library/hh545401(v=vs.110).aspxを確認してください。このページの最後には、WebフォームとMVCの手順に関するリンクがあります。 –

答えて

0

、あなたはSamlSecurityTokenHandler.ReadTokenを呼び出し、解析されたトークン内SamlSubjectStatementを探すことができます。

var token = 
    new SamlSecurityTokenHandler 
    { 
     Configuration = new SecurityTokenHandlerConfiguration() 
    }.ReadToken(new XmlTextReader(...)); 
subjectStatements = token.Assertion.Statements.OfType<SamlSubjectStatement>(); 

はまったく同じようにXMLを渡すようにしてくださいトークンは通常署名されているので、追加の書式設定は必要ありません。

+0

ありがとう。私はこれを試してみる。 :) –

関連する問題