「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。

-[[戻る>SAMLの仕様を読む。]]

* 目次 [#nc474129]
#contents

*概要 [#i6ec6c27]
-汎用認証サイトにSAML2.0を実装するため仕様を読む。
-ターゲットはSP Initiated な Web Browser SSO Profileに絞る。

**Introduction [#le87f17d]
-(1)

--以下の使用を定義する

---通信プロトコル
---アサーション
---要求/応答メッセージ

--また、SAML属性値の構文および命名規則

-(2)

--SAMLCore~
SAMLアサーションと要求応答プロトコルメッセージの仕様を定義

--SAMLBind~
SAMLプロトコルメッセージの基礎となる~
通信およびメッセージング・プロトコルへのバインディングの仕様を定義

--SAMLConform~
SAML2.0を構成するすべての仕様をリストしています。

***Profile Concepts [#me103298]
-SAMLアサーションをフレームワークまたはプロトコルに~
埋め込む方法およびそれらから抽出する方法を記述する一連の規則を概説
--様々な種類のプロファイルの選択されたセットを詳細に指定。
--独自に実装された製品が相互運用できるようにする。

-SAMLに固有のその他の用語と概念については、SAML用語集[SAMLGloss]を参照。

***Notation [#jd608b45]
-[[技術文書中での Shall / Should / May]]
-この仕様では従来のXML名前空間プレフィックスが使用される。
-, etc.

**Specification of Additional Profiles [#k3cbae6b]
追加仕様策定のガイドラインなど(割愛)

**Confirmation Method Identifiers [#s821cdd4]
-<SubjectConfirmation>要素は、
--特定のProfileのContext内で、SPによって使用される。
--Messageが「Assertion内のSubjectに関連付けられている~
システムエンティティから送信された。」ことを確認する。

-子要素

--<ConfirmationMethod>~
SPが使用すべき特定の方法(Assertionの検証方法)

--<SubjectConfirmationData>~
証明書やキーなどの追加情報

***Bearer [#l291938e]
-[[持参人切符>トークン#b38de47f]]~
 URI: urn:oasis:names:tc:SAML:2.0:cm:bearer

-AssertionのSubject ≒ Assertionの所有者
 <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer">
   <SubjectConfirmationData
     InResponseTo="_1234567890"
     Recipient="https://www.serviceprovider.com/saml/consumer"
     NotOnOrAfter="2004-03-19T13:27:00Z"
   </SubjectConfirmationData>
 </SubjectConfirmation>

***Holder of Key [#va1621d5]
-[[記名式切符>トークン#b38de47f]]~
 URI: urn:oasis:names:tc:SAML:2.0:cm:holder-of-key

-<SubjectConfirmationData>要素内に1つ以上の<ds:KeyInfo>要素が必要。
 <SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:holder-of-key">
   <SubjectConfirmationData xsi:type="saml:KeyInfoConfirmationDataType">
     <ds:KeyInfo>
       <ds:KeyName>By-Tor</ds:KeyName>
     </ds:KeyInfo>
     <ds:KeyInfo>
       <ds:KeyName>Snow Dog</ds:KeyName>
     </ds:KeyInfo>
   </SubjectConfirmationData>
 </SubjectConfirmation>

***Sender Vouches [#b2f66da3]
 URI: urn:oasis:names:tc:SAML:2.0:cm:sender-vouches

-アサーションの使用のコンテキストに関して他に情報がないことを示す。
-SPは他の手段を利用し、アサーションをさらに処理すべきかどうかを決定する必要がある。

*詳細 [#vb6b8b12]
Web Browser SSO Profile

-Web SSOをサポートするために定義されている。

-[SAMLCore]では、次のように定義されている。
--オリジナルのSAML要件文書のシナリオ1-1をサポートし、Web SSOをサポート。
--拡張クライアントをサポートするために追加のWeb SSOプロファイルが定義されている。
--シングルログアウトおよび名前識別子管理プロトコルのプロファイルは、~
フロントチャネルとバックチャネルの両方のバインディングで定義されている。
-Cookieを使用したIdPの検出用に追加のプロファイルが定義されている。

**Required Information [#u1bc73a4]
|#|項目|説明|h
|1|Identification|urn:oasis:names:tc:SAML:2.0:profiles:SSO:browser|
|2|Contact information|security-services-comment@lists.oasis-open.org|
|3|SAML Confirmation Method Identifiers|SAML2.0 "bearer" confirmation method identifier, urn:oasis:names:tc:SAML:2.0:cm:bearer|
|4|Description|Given below|
|5|Updates|SAML V1.1 browser artifact and POST profiles and bearer confirmation method.|

**Profile Overview [#td0bacbf]
図は割愛、以下シーケンス(SP-initiated SSO)。

-HTTP Request to SP
--SPでセキュリティ保護されたリソースに対するHTTP要求を行う。
--この時点では、SP上のセキュリティコン・テキストは使用しない(存在しない)。

-SP Determines IdP
--IdPを特定する(実装依存)
--SAML identity provider discovery profileを使用してもイイ。

-<AuthnRequest> issued by SP to IdP~
以下は使用できるBinding。
--HTTP Redirect
--HTTP POST
--HTTP Artifact binding

-IdP identifies Principal~
簡単に言うと、認証してログインセッションを確立する的な。

-IdP issues <Response> to SP
--AssertionかErrorを返す。
--以下は使用できるBinding。
---HTTP POST
---HTTP Artifact binding

-SP grants or denies access to Principal~
簡単に言うと、ログインセッションを確立して、ユーザにリソースを返す。

※ IdP-initiated SSOは、5番目の手順から。

**Profile Description [#w28dd4c5]
EndPointについては、[[既に説明済み>SAMLの仕様を読む。#rffd6c08]]。
-Single Sign-On Service
-Assertion Consumer Service

以下では、[[Profile Overview>#td0bacbf]]の追加項目のみ説明。

***HTTP Request to SP [#c778b635]
-Profile交換を元の要求と関連付けるためにSPが~
使用することができるRelayStateメカニズムを提供する。

-Profileの使用がそのようなPrivacy対策を必要としない場合を除き、~
SPはRelayStateの値にできるだけ少ない要求を公開する必要がある(SHOULD)。

***SP Determines IdP [#s6708914]
-基本は、SPがRequestを送信するIdPを決定する。

-また、SPは、
--このサービスに<AuthnRequest>を発行してIdPに中継するか、
--または中間サービスに依存して<AuthnRequest>メッセージを発行する

>ことがある。

***<AuthnRequest> Is Issued by SP to IdP [#f0e9060f]
<AuthnRequest>を送信するために
-SPによって選択されたSAMLバインディングに基づき、SSO Serviceの場所が決定される。
-メタデータ(のように)[SAMLMeta])この目的に使用することができます。 ユーザエージェントによるHTTPリクエストに応答して、使用されているSAMLバインディングに応じて、<AuthnRequest>メッセージまたはアーティファクトを含むHTTPレスポンスが返され、IDプロバイダのシングルサインオンサービスに配信されます。

***IdP Identifies Principal [#e85530b0]

***IdP Issues <Response> to SP [#i7c24374]

***SP Grants or Denies Access to User Agent [#v2e20c89]

**Use of Authentication Request Protocol [#mfe34764]

***<AuthnRequest> Usage [#i04013ba]

***<Response> Usage [#vde3b1a6]

***<Response> Message Processing Rules [#b3ff6cea]

***Artifact-Specific <Response> Message Processing Rules [#vb478cb6]

***POST-Specific Processing Rules [#aad851ec]

**Unsolicited Responses [#w37b55cc]

**Use of Metadata [#x9abab94]

*参考 [#l8958a01]
https://docs.oasis-open.org/security/saml/v2.0/saml-profiles-2.0-os.pdf
 1 Introduction
 1.1 Profile Concepts
 1.2 Notation
 
 2 Specification of Additional Profiles
 2.1 Guidelines for Specifying Profiles
 2.2 Guidelines for Specifying Attribute Profiles
 
 3 Confirmation Method Identifiers
 3.1 Holder of Key
 3.2 Sender Vouches
 3.3 Bearer
 
 4 SSO Profiles of SAML
 
 4.1 Web Browser SSO Profile
 4.1.1 Required Information
 4.1.2 Profile Overview
 4.1.3 Profile Description
 4.1.3.1 HTTP Request to Service Provider
 4.1.3.2 Service Provider Determines Identity Provider
 4.1.3.3 <AuthnRequest> Is Issued by Service Provider to Identity Provider
 4.1.3.4 Identity Provider Identifies Principal
 4.1.3.5 Identity Provider Issues <Response> to Service Provider
 4.1.3.6 Service Provider Grants or Denies Access to User Agent
 4.1.4 Use of Authentication Request Protocol
 4.1.4.1 <AuthnRequest> Usage
 4.1.4.2 <Response> Usage
 4.1.4.3 <Response> Message Processing Rules
 4.1.4.4 Artifact-Specific <Response> Message Processing Rules
 4.1.4.5 POST-Specific Processing Rules
 4.1.5 Unsolicited Responses
 4.1.6 Use of Metadata
 
 4.2 Enhanced Client or Proxy (ECP) Profile
 4.2.1 Required Information
 4.2.2 Profile Overview
 4.2.3 Profile Description
 4.2.3.1 ECP issues HTTP Request to Service Provider
 4.2.3.2 Service Provider Issues <AuthnRequest> to ECP
 4.2.3.3 ECP Determines Identity Provider
 4.2.3.4 ECP issues <AuthnRequest> to Identity Provider
 4.2.3.5 Identity Provider Identifies Principal
 4.2.3.6 Identity Provider issues <Response> to ECP, targeted at service provider
 4.2.3.7 ECP Conveys <Response> Message to Service Provider
 4.2.3.8 Service Provider Grants or Denies Access to Principal
 4.2.4 ECP Profile Schema Usage
 4.2.4.1 PAOS Request Header Block: SP to ECP
 4.2.4.2 ECP Request Header Block: SP to ECP 
 4.2.4.4 ECP Response Header Block: IdP to ECP
 4.2.4.5 PAOS Response Header Block: ECP to SP
 4.2.5 Security Considerations
 
 4.3 Identity Provider Discovery Profile
 4.3.1 Common Domain Cookie
 4.3.2 Setting the Common Domain Cookie
 4.3.3 Obtaining the Common Domain Cookie
 
 4.4 Single Logout Profile
 4.4.1 Required Information
 4.4.2 Profile Overview
 4.4.3 Profile Description
 4.4.3.1 <LogoutRequest> Issued by Session Participant to Identity Provider
 4.4.3.2 Identity Provider Determines Session Participants
 4.4.3.3 <LogoutRequest> Issued by Identity Provider to Session Participant/Authority
 4.4.3.4 Session Participant/Authority Issues <LogoutResponse> to Identity Provider
 4.4.3.5 Identity Provider Issues <LogoutResponse> to Session Participant
 4.4.4 Use of Single Logout Protocol4.4.4.1 <LogoutRequest> Usage
 4.4.4.2 <LogoutResponse> Usage
 4.4.5 Use of Metadata
 
 4.5 Name Identifier Management Profile
 4.5.1 Required Information
 4.5.2 Profile Overview
 4.5.3 Profile Description
 4.5.3.1 <ManageNameIDRequest> Issued by Requesting Identity/Service Provider
 4.5.3.2 <ManageNameIDResponse> issued by Responding Identity/Service Provider
 4.5.4 Use of Name Identifier Management Protocol
 4.5.4.1 <ManageNameIDRequest> Usage
 4.5.4.2 <ManageNameIDResponse> Usage
 
 4.5.5 Use of Metadata
 
 5 Artifact Resolution Profile
 
 5.1 Required Information
 5.2 Profile Overview
 
 5.3 Profile Description
 5.3.1 <ArtifactResolve> issued by Requesting Entity
 5.3.2 <ArtifactResponse> issued by Responding Entity
 
 5.4 Use of Artifact Resolution Protocol
 5.4.1 <ArtifactResolve> Usage
 5.4.2 <ArtifactResponse> Usage
 
 5.5 Use of Metadata
 
 6 Assertion Query/Request Profile
 
 6.1 Required Information
 6.2 Profile Overview
 
 6.3 Profile Description
 6.3.1 Query/Request issued by SAML Requester
 6.3.2 <Response> issued by SAML Authority
 
 6.4 Use of Query/Request Protocol
 6.4.1 Query/Request Usage
 6.4.2 <Response> Usage
 
 6.5 Use of Metadata
 
 7 Name Identifier Mapping Profile
 
 7.1 Required Information
 7.2 Profile Overview
 
 7.3 Profile Description
 7.3.1 <NameIDMappingRequest> issued by Requesting Entity
 7.3.2 <NameIDMappingResponse> issued by Identity Provider
 
 7.4 Use of Name Identifier Mapping Protocol
 7.4.1 <NameIDMappingRequest> Usage
 7.4.2 <NameIDMappingResponse> Usage
 7.4.2.1 Limiting Use of Mapped Identifier
 
 7.5 Use of Metadata
 
 8 SAML Attribute Profiles
 8.1 Basic Attribute Profile
 8.1.1 Required Information

----
Tags: [[:IT国際標準]], [[:認証基盤]], [[:クレームベース認証]], [[:SAML]]

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS