10

OAuth2 SAMLベアラー仕様では、アプリケーションが承認付与としてトークンエンドポイントにアサーションを提示する方法について説明しています。たとえば、SalesforceのAPIを使用すると、このアプローチにより、アプリケーションがユーザーアカウントのアクセストークンを自律的に要求できるようになります(ユーザーがこの帯域外のアクセス許可をすでに付与している場合)。

しかし、アサーションの意味を理解するのに苦労しています。そのほとんどは十分に明確です、例えば

  • Issuerアサーションを生成(および署名)した当事者です
  • Subjectアカウントにアクセストークンが要求されているユーザーです
  • AudienceRestrictionオーディエンスをトークンエンドポイントに制限します。

しかし、私は次の意味を理解するのに苦労しています:

  • AuthnStatement--SAML仕様からの私の理解は、このアサーションの発行者は、それ(発行者)がサブジェクトを認証したというステートメントを作成しているということです。これは正しいですか?

  • SubjectConfirmation-誰がここで何を確認していますか?SAML仕様には、この要素「サブジェクトの確認を可能にする情報」が記載されています。しかし、確認とは何ですか?そして、誰が、どのように、いつ、どのような目的でそれを実行しますか?

4

2 に答える 2

8

AuthnStatement要素は、ID プロバイダーでの認証の動作を記述します。アサーション発行者がサブジェクトを認証した場合、アサーションはその認証イベントを表す単一の要素を含む必要があります。

例:

    <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要素により、認可サーバーはそれを Bearer Assertion として確認できます。そのような要素には、値が「urn:oasis:names:tc:SAML:2.0:cm:bearer」の Method 属性が必要です。SubjectConfirmation 要素には、認可サーバーのトークン エンドポイント URL を示す SubjectConfirmationData 要素 (例外あり) が含まれている必要があります。承認サーバーは、Recipient 属性の値が、アサーションが配信されたトークン エンドポイント 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 POST token endpoint URL -->
         Recipient="https://sp.example.com/SAML2/SSO/POST"
<!-- Not valid ON or After this Date and Time -->
         NotOnOrAfter="2004-12-05T09:27:05"/>
     </saml:SubjectConfirmation>
于 2013-12-13T13:49:49.463 に答える
3

はい、AuthnStatementこのアサーションの発行者からのもので、サブジェクトを認証したと述べています。

SubjectConfirmationアサーションに依存したいエンティティが、問題のサブジェクトがこのアサーションで参照されているサブジェクトであることを確認する方法を示します。アサーションは有効かもしれませんが、それはリクエストを行っているユーザーのためのものですか? Recipientメソッドがベアラーの場合、日付の前に参照されたエンドポイントにこのアサーションを提示できるサブジェクトNotOnOrAfterが確認されます。メソッドが holder-of-key の場合、ネストされた要素によって参照されるキーの所有を証明できるサブジェクトのみKeyInfoが確認されます。

于 2017-01-03T21:34:30.827 に答える