「[[マイクロソフト系技術情報 Wiki>http://techinfoofmicrosofttech.osscons.jp/]]」は、「[[Open棟梁Project>https://github.com/OpenTouryoProject/]]」,「[[OSSコンソーシアム .NET開発基盤部会>https://www.osscons.jp/dotNetDevelopmentInfrastructure/]]」によって運営されています。 -[[戻る>SAMLの仕様を読む。]] * 目次 [#a891fbf2] #contents *概要 [#j44f1fbd] 汎用認証サイトに[[SAML2.0を実装>SAMLを実装する。]]するため仕様を読む。 -ターゲットはSP Initiated な Web Browser SSO Profileに絞る。 -ココに書いた情報は、SAML の Coreの範囲。 **Introduction [#d9e8c892] -Core = Assertion自体、またはAssertionの対象に関して通信するために他のProtocol -Assertionの構造と関連するProtocolのセットとシステムの管理に含まれる処理規則を定義する。 -[XMLNS] --AssertionとProtocolメッセージはXML [XML]でエンコード --XML名前空間を使用し、他のトランスポート構造に埋め込まれる。 -[SAMLBind] SAMLバインディング仕様は、Protocolメッセージの埋め込みと転送のためのフレームワーク -[SAMLProf] SAMLプロファイル仕様は、 --特定のユースケースを達成するため、 --またはSAML機能を使用するときに相互運用性を達成するために、 >AssertionとProtocolを使用するためのProfileのベースラインセットを提供 -SAMLの用語と概念の詳細 --[SAMLTechOvw]: SAMLの技術概要 --[SAMLGloss]: SAML用語集 -特定の情報だけを含むファイル --[SAML-XSD]: SAMLアサーションスキーマ --[SAMLP-XSD]: プロトコルスキーマ --[SAMLConform]:~ SAML適合文書は、SAML V2.0を構成するすべての仕様をリスト ***Notation [#nf9355fc] -[[技術文書中での Shall / Should / May]] -この仕様では従来のXML名前空間プレフィックスが使用される。 -, etc. ***Schema Organization and Namespaces [#u7d95af6] -SAML Assertion構造 --[SAML-XSD]スキーマで定義されている。 --XML名前空間 urn:oasis:names:tc:SAML:2.0:assertion -SAML要求 / 応答Protocol構造 --[SAMLP-XSD]スキーマで定義されている。 --XML名前空間 urn:oasis:names:tc:SAML:2.0:protocol -XML署名 --[XMLSig]スキーマ --XML名前空間 http://www.w3.org/2000/09/xmldsig# -XML暗号化 --[XMLEnc]スキーマ --XML名前空間 http://www.w3.org/2001/04/xmlenc# -インポート --[SAML-XSD]スキーマは、[SAMLP-XSD]スキーマにインポートされる。 --[XMLEnc]スキーマは、[SAML-XSD]スキーマにインポートされる。 --[XMLSig]スキーマは、[SAML-XSD]、[SAMLP-XSD]の両スキーマにインポートされる。 **Common Data Types [#o6a1f934] -SAMLスキーマ全体に現れる一般的なデータ型の使用方法と解釈方法を定義 -XML Schema Datatypes仕様[Schema2]に組み込まれている。 ***String Values [#f424e585] SAML文字列値(xs:string) -少なくとも1つの非空白文字で構成されている必要がある。 -比較 --厳密なバイナリ比較を使用して比較 --エンコーディングが異なる場合、~ [UNICODE-C]に変換して比較する。 --大文字と小文字を区別する。 -以下に依存しない。 --空白の正規化またはトリミング --数字や通貨などのロケール固有の形式 -XMLに指定された正規化規則(XML勧告[XML] Section 2.11に記述されている) --行末は、改行文字(ASCIIコード10Decimal)を使用 --すべての空白文字は空白に置き換えられる(ASCIIコード32Decimal) --XML属性値は、[XML]セクション3.3.3で説明されているように正規化 -XML要素・属性値の照合順序や並べ替え順序は定義されない。~ 故に、実装は値の特定のソート順に依存してはいけない。 ***URI Values [#me05164d] SAML URI参照値(xs:anyURI) -少なくとも1つの非空白文字で構成されている必要がある。 -以下の識別子としてURI参照を広く使用している。 --ステータスコード --フォーマットタイプ --属性 --システムエンティティ名 --, etc. ***Time Values [#z8b5038f] SAML時間値(xs:dateTime) -タイムゾーンコンポーネントなしのUTC形式で表現する。 -ミリ秒よりも細かい時間分解能に頼るべきではない。 -うるう秒を指定する瞬間を生成してはならない。 ***ID and ID Reference Values [#e3ce9939] SAML ID単純型(xs:ID) -要求、および応答のSAML識別子を宣言するために使用 -宣言が1つだけ存在すること(重複し無い事) --重複の可能性は極、僅であることを保証する。 --2つのランダムに選択された識別子が同一である確率 ---2-128以下でなければならず(MUST) ---2-160以下であるべき(SHOULD)。 --これは、長さが128-160ビットのランダム値で満たされる。 -xs:IDの識別子の参照 --xs:NCNameを使用できる。 --xs:IDREFは重複するため使用できない。 *詳細 [#qd77a3d5] **[[SAML Protocols]] [#rdb737d6] **[[SAML Assertions]] [#i9eab2bf] **[[SAML Signature or Encryption]] [#i9eab2bf] **その他 [#a0cda655] ***SAML Versioning [#le72d377] 2.0でほぼFixなので読まなくてよさそう。 ***SAML Extensibility [#z85090cc] -SAMLアサーションとプロトコルによる拡張機能 -新しいProfileを定義する方法は、[SAMLProf]を参照 ***SAML-Defined Identifiers [#y10d78bb] -URIベースの識別子 -Subject名識別子の形式 -属性名の形式 *参考 [#m5681faa] https://docs.oasis-open.org/security/saml/v2.0/saml-core-2.0-os.pdf 1 Introduction 1.1 Notation 1.2 Schema Organization and Namespaces 1.3 Common Data Types 1.3.1 String Values 1.3.2 URI Values 1.3.3 Time Values 1.3.4 ID and ID Reference Values 4 SAML Versioning 4.1 SAML Specification Set Version 4.1.1 Schema Version 4.1.2 SAML Assertion Version 4.1.3 SAML Protocol Version 4.1.3.1 Request Version 4.1.3.2 Response Version 4.1.3.3 Permissible Version Combinations 4.2 SAML Namespace Version 4.2.1 Schema Evolution 7 SAML Extensibility 7.1 Schema Extension 7.1.1 Assertion Schema Extension 7.1.2 Protocol Schema Extension 7.2 Schema Wildcard Extension Points 7.2.1 Assertion Extension Points 7.2.2 Protocol Extension Points 7.3 Identifier Extension 8 SAML-Defined Identifiers 8.1 Action Namespace Identifiers 8.1.1 Read/Write/Execute/Delete/Control 8.1.2 Read/Write/Execute/Delete/Control with Negation 8.1.3 Get/Head/Put/Post 8.1.4 UNIX File Permissions 8.2 Attribute Name Format Identifiers 8.2.1 Unspecified 8.2.2 URI Reference 8.2.3 Basic 8.3 Name Identifier Format Identifiers 8.3.1 Unspecified 8.3.2 Email Address 8.3.3 X.509 Subject Name 8.3.4 Windows Domain Qualified Name 8.3.5 Kerberos Principal Name 8.3.6 Entity Identifier 8.3.7 Persistent Identifier 8.3.8 Transient Identifier 8.4 Consent Identifiers 8.4.1 Unspecified 8.4.2 Obtained 8.4.3 Prior 8.4.4 Implicit 8.4.5 Explicit 8.4.6 Unavailable 8.4.7 Inapplicable 9 References 9.1 Normative References 9.2 Non-Normative References Appendix A. Acknowledgments Appendix B. Notices ---- Tags: [[:IT国際標準]], [[:認証基盤]], [[:クレームベース認証]], [[:SAML]]