2013-03-11 4 views
6

OAuth2 SAML bearer specには、アプリケーションがトークンエンドポイントにアサーションをどのように認可許可として提示できるかが記述されています。たとえば、Salesforce's APIは、このアプローチでは、ユーザーが(ユーザーが既にアウトオブバンドの許可を与えている限り)ユーザーアカウントのアクセストークンを自律的に要求できるようにします。OAuth2 SAML認可付与のSubjectConfirmationの意味は何ですか?

私はアサーションが意味することを理解するのに問題があります。そのほとんどは十分に明確です。

  • Issuerは、生成された(と署名した)当事者の主張
  • Subjectは、そのアカウントのアクセストークンは
  • AudienceRestrictionを要求されているトークンエンドポイントに聴衆を制限するためのユーザーです。

しかし、私はトラブルの意味を理解することを抱えている:

  • AuthnStatement - SAML仕様から私の理解では、このアサーションの発行者が声明を作っていることであること(発行者)件名を認証しました。これは正しいですか?

  • SubjectConfirmation - ここで何を確認していますか? SAML仕様には、この要素「主語を確認できる情報」が有益に記載されています。しかし、確認は何ですか?そして、それを誰が実行し、どのように、いつ、そして、どのような目的のために?

答えて

3

AuthnStatement要素は、アイデンティティプロバイダでの認証行為を表します。 アサーション発行者がサブジェクトを認証した場合、アサーションにはその認証イベントを表す単一の文字を含めるべきです(SHOULD)。

例:

<AuthnStatement AuthnInstant="2010-10-01T20:07:34.371Z"> 
      <AuthnContext> 
       <AuthnContextClassRef> 
    <!--Authentication method, was the client authenticated with digital cert, password, kerberos token?--> 
       urn:oasis:names:tc:SAML:2.0:ac:classes:X509 

<!--For example, the Password class is applicable when a principal authenticates to an authentication authority through the presentation of a password over an unprotected HTTP session. --> 
       urn:oasis:names:tc:SAML:2.0:ac:classes:Password 

       urn:oasis:names:tc:SAML:2.0:ac:classes:Kerberos 

       </AuthnContextClassRef> 
      </AuthnContext> 
      </AuthnStatement> 

SubjectConfirmation要素は、認証サーバがベアラーアサーションとしてそれを確認することができます。そのような要素は、 "urn:oasis:names:tc:SAML:2.0:cm:bearer"の値を持つMethod属性を持たなければなりません。 SubjectConfirmation要素には、認可サーバーのトークンエンドポイントURLを示すSubjectConfirmationData要素(例外あり)が含まれていなければなりません。認可サーバーは、受信者属性の値が、アサーションが配信されたトークンエンドポイントURLと一致していることを確認する必要があります。

例:

 <saml:SubjectConfirmation> 
<!-- Mandatory --> 
     Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"> 
     <saml:SubjectConfirmationData> 
<!-- The AuthRequest sent this ID --> 
     InResponseTo="aaf23196-1773-2113-474a-fe114412ab72" 
<!-- It was through HTTP POTS token endpoint URL --> 
     Recipient="https://sp.example.com/SAML2/SSO/POST" 
<!-- Not valid ON or After this Date--> 
     NotOnOrAfter="2004-12-05T09:27:05"/> 
    </saml:SubjectConfirmation> 
0

はい、AuthnStatementは、それが主題を認証したというこの主張の発行者からです。

SubjectConfirmationは、アサーションに依存したいエンティティが、このアサーションで参照されているサブジェクトであることを確認する方法を示します。おそらくアサーションは有効ですが、リクエストを行ったユーザーのためのものでしょうか?メソッドがベアラである場合、NotOnOrAfterの日付の前にRecipientで参照されるエンドポイントにこのアサーションを表示できるすべてのサブジェクトが確認されます。このメソッドがキーの保持者である場合、ネストされたKeyInfo要素によって参照されるキーの所持を証明することができる被験者のみが確認される。

関連する問題