MS_SAMLProfiles - NetDevInfraWGinOSSConsortium/NetDevInfraWiki GitHub Wiki
- æ»ãïŒSAMLã®ä»æ§ãèªããïŒ
- SAML Profiles
- SAML Bindings
- SAML Core
æ±çšèªèšŒãµã€ãã« SAML2.0ãå®è£ ãããã仿§ãèªãã
- ã¿ãŒã²ãã㯠SP Initiated 㪠Web Browser SSO Profile ã«çµãã
- ã³ã³ã«æžããæ å ±ã¯ãSAML ã® Profiles ã®ç¯å²ã
-
以äžã®äœ¿çšãå®çŸ©ãã
- éä¿¡ãããã³ã«
- ã¢ãµãŒã·ã§ã³
- èŠæ± / å¿çã¡ãã»ãŒãž
- ãŸããSAML 屿§å€ã®æ§æããã³åœåèŠå
-
é¢é£ä»æ§
-
SAMLCoreïŒSAML CoreïŒ
SAML ã¢ãµãŒã·ã§ã³ãšèŠæ±å¿çãããã³ã«ã¡ãã»ãŒãžã®ä»æ§ãå®çŸ© -
SAMLBindïŒSAML BindingsïŒ
SAML ãããã³ã«ã¡ãã»ãŒãžã®åºç€ãšãªã
éä¿¡ããã³ã¡ãã»ãŒãžã³ã°ã»ãããã³ã«ãžã®ãã€ã³ãã£ã³ã°ã®ä»æ§ãå®çŸ© -
SAMLConform
SAML 2.0 ãæ§æãããã¹ãŠã®ä»æ§ããªã¹ãããŠããã
-
SAMLCoreïŒSAML CoreïŒ
-
SAML ã¢ãµãŒã·ã§ã³ããã¬ãŒã ã¯ãŒã¯ãŸãã¯ãããã³ã«ã«
åãèŸŒãæ¹æ³ããã³ãããããæœåºããæ¹æ³ãèšè¿°ããäžé£ã®èŠåãæŠèª¬- æ§ã ãªçš®é¡ã®ãããã¡ã€ã«ã®éžæãããã»ãããè©³çŽ°ã«æå®ã
- ç¬èªã«å®è£ ããã補åãçžäºéçšã§ããããã«ããã
-
SAML ã«åºæã®ãã®ä»ã®çšèªãšæŠå¿µã«ã€ããŠã¯ãSAML çšèªé [SAMLGloss] ãåç §ã
- æè¡ææžäžã§ã® Shall / Should / May
- ãã®ä»æ§ã§ã¯åŸæ¥ã® XML åå空éãã¬ãã£ãã¯ã¹ã䜿çšãããã
- , etc.
远å 仿§çå®ã®ã¬ã€ãã©ã€ã³ãªã©ïŒå²æïŒ
-
<SubjectConfirmation>èŠçŽ ã¯ã- ç¹å®ã® Profile ã® Context å ã§ãSP ã«ãã£ãŠäœ¿çšãããã
- Message ããAssertion å
ã® Subject ã«é¢é£ä»ããããŠãã
ã·ã¹ãã ãšã³ãã£ãã£ããéä¿¡ãããããããšã確èªããã
-
åèŠçŽ
-
Method屿§ â SP ã䜿çšãã¹ãç¹å®ã®æ¹æ³ïŒAssertion ã®æ€èšŒæ¹æ³ïŒ -
<SubjectConfirmationData>â èšŒææžãããŒãªã©ã®è¿œå æ å ±
-
ç§»è¡ã¡ã¢: å ããŒãžã¯ãåèŠçŽ ããšããŠ
<ConfirmationMethod>ã
æããŠããããSAML 2.0 ã§ã¯**Methodã¯<SubjectConfirmation>ã®å±æ§**ã§ãã
ïŒ<ConfirmationMethod>èŠçŽ ã¯ SAML 1.x ã®æžåŒïŒã
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"/>
</SubjectConfirmation>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>è£è¶³: Holder of Key ã¯ã
ã¢ãµãŒã·ã§ã³ã®æç€ºè ã察å¿ããç§å¯éµãæã£ãŠããããšãå¥é蚌æããæ¹åŒã§ã
çãŸããŠã䜿ããªãïŒïŒ èšååŒïŒãšããå©ç¹ãããã
OAuth ã® DPoP / mTLS éä¿¡è å¶çŽããŒã¯ã³ãšåãçºæ³ããã ã SAML ã® Web SSO ã§ã¯ã
ãã©ãŠã¶ã«éµã®èšŒæããããææ®µããªãããã»ãŒäœ¿ãããªãã
å®éçšã¯ã»ãŒãã¹ãŠbearerã§ããã
URI: urn:oasis:names:tc:SAML:2.0:cm:sender-vouches
- ã¢ãµãŒã·ã§ã³ã®äœ¿çšã®ã³ã³ããã¹ãã«é¢ããŠä»ã«æ å ±ããªãããšã瀺ãã
- SP ã¯ä»ã®ææ®µãå©çšããã¢ãµãŒã·ã§ã³ãããã«åŠçãã¹ããã©ãããæ±ºå®ããå¿ èŠãããã
-
Web SSO ããµããŒãããããã«å®çŸ©ãããŠããã
-
SAMLCore ã§ã¯ã次ã®ããã«å®çŸ©ãããŠããã
- ãªãªãžãã«ã® SAML èŠä»¶ææžã®ãã·ããªãª 1-1ãããµããŒãããWeb SSO ããµããŒãã
- æ¡åŒµã¯ã©ã€ã¢ã³ãããµããŒãããããã«è¿œå ã® Web SSO ãããã¡ã€ã«ãå®çŸ©ãããŠããã
- ã·ã³ã°ã«ãã°ã¢ãŠãããã³ååèå¥å管çãããã³ã«ã®ãããã¡ã€ã«ã¯ã
ããã³ããã£ãã«ãšããã¯ãã£ãã«ã®äž¡æ¹ã®ãã€ã³ãã£ã³ã°ã§å®çŸ©ãããŠããã
-
Cookie ã䜿çšãã IdP ã®æ€åºçšã«è¿œå ã®ãããã¡ã€ã«ãå®çŸ©ãããŠããã
| # | é ç® | 説æ |
|---|---|---|
| 1 | Identification | urn:oasis:names:tc:SAML:2.0:profiles:SSO:browser |
| 2 | Contact information | [email protected] |
| 3 | SAML Confirmation Method Identifiers | SAML 2.0 "bearer" confirmation method identifier, urn:oasis:names:tc:SAML:2.0:cm:bearer
|
| 4 | Updates | SAML V1.1 ã® browser artifact / POST profiles / bearer confirmation method. |
å³ã¯å²æã以äžã·ãŒã±ã³ã¹ïŒ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 binding
- HTTP POST binding
- HTTP Artifact binding
-
IdP identifies Principal
ç°¡åã«èšããšãèªèšŒããŠãã°ã€ã³ã»ãã·ã§ã³ã確ç«ããçãªã -
IdP issues
<Response>to SP- Assertion ã Error ãè¿ãã
- 以äžã¯äœ¿çšã§ãã Bindingã
- HTTP POST binding
- HTTP Artifact binding
-
SP grants or denies access to Principal
ç°¡åã«èšããšããã°ã€ã³ã»ãã·ã§ã³ã確ç«ããŠããŠãŒã¶ã«ãªãœãŒã¹ãè¿ãã
â» IdP-initiated SSO ã¯ã5 çªç®ã®æé ããã
EndPoint ã«ã€ããŠã¯ãæ¢ã«èª¬ææžã¿ã
- Single Sign-On Service
- Assertion Consumer Service
以äžã§ã¯ãProfile Overview ã®è¿œå é ç®ã®ã¿èª¬æã
-
Profile 亀æãå ã®èŠæ±ãšé¢é£ä»ããããã« SP ã
䜿çšããããšãã§ããRelayStateã¡ã«ããºã ãæäŸããã -
Profile ã®äœ¿çšããã®ãã㪠Privacy 察çãå¿ èŠãšããªãå Žåãé€ãã
SP ã¯RelayStateã®å€ã«ã§ããã ãå°ãªãèŠæ±ãå ¬éããå¿ èŠãããïŒSHOULDïŒã
-
åºæ¬ã¯ãSP ã Request ãéä¿¡ãã IdP ãæ±ºå®ããã
-
ãŸããSP ã¯ã
- ãã®ãµãŒãã¹ã«
<AuthnRequest>ãçºè¡ã㊠IdP ã«äžç¶ãããã - ãŸãã¯äžéãµãŒãã¹ã«äŸåããŠ
<AuthnRequest>ã¡ãã»ãŒãžãçºè¡ãã
ããšãããã
- ãã®ãµãŒãã¹ã«
-
ãã® HTTP ã®éä¿¡ã«ã¯ãTLS ã䜿çšããã
-
SP ã«ãã£ãŠéžæããã Binding ã«åºã¥ãã
- SSO Service ã®å Žæãæ±ºå®ãããã
- SAMLMeta ã Binding éžæã«äœ¿çšããããšãã§ããã
-
<AuthnRequest>ãéä¿¡ããããã«- UA ã«ãã HTTP Request ã«å¿çãã
- 䜿çšãããŠãã Binding ã«å¿ãã HTTP ã¬ã¹ãã³ã¹ã UA ã«è¿ãã
- IdP ã® SSO Service ã«é ä¿¡ãããã
-
æ©å¯æ§ãšã¡ãã»ãŒãžã®å®å šæ§ãç¶æããããšãæšå¥šãããã
-
<AuthnRequest>ã¡ãã»ãŒãžã«çœ²åããããšãã§ããã - HTTP Artifact binding ã®å Žåã¯ãArtifact ã鿥åç
§ããããšã
ãªã¯ãšã¹ãçºè¡è ãèªèšŒããããã®ä»£æ¿ææ®µãæäŸãããã
-
-
IdP ã¯
<AuthnRequest>ã¡ãã»ãŒãžãåŠçããã
IsPassive屿§ãå«ãŸããŠããå Žåã
UA ãšã®ãã®åŸã®ãããšããå¶éããå¯èœæ§ãããã
IdP ã¯ããªã³ã·ãã«ã®ã¢ã€ãã³ãã£ãã£ã確ç«
-
<AuthnRequest>èŠçŽ ã®ForceAuthn屿§ãtrueã®å Žåãæ¢åã§ã¯ãªãã
æ°ãã«ããªã³ã·ãã«ã®ã¢ã¯ãã£ãã»ã»ãã·ã§ã³ã確ç«ããããã« IdP ã«çŸ©åä»ããã -
SAML Request ã®
<RequestedAuthnContext>èŠçŽ ã«å«ãŸãã
ä»»æã®èŠä»¶ã«åŸã£ãŠãUA ãèªèšŒããããã®ä»»æã®ææ®µã䜿çšããã
IdP ã¯ã<AuthnRequest> ã®æåãŸãã¯å€±æã«ããããããUA çµç±ã§ã
æå®ã® Binding ãš Protocol ã§ Assertion Consumer Service ã«å¿çããã
-
ãã® HTTP ã®éä¿¡ã«ã¯ãTLS ã䜿çšããã
-
SP ã¯ã
- 䜿çšãã SAML Binding
- Assertion Consumer Service ã®å Žæ
ã瀺ãããšãã§ããã
-
Assertion Consumer Service ã®å Žæã¯ã
SAMLMeta ã䜿çšããŠæ±ºå®ãããå Žåãããã -
æ©å¯æ§ãšã¡ãã»ãŒãžã®å®å šæ§ãç¶æããããšãæšå¥šãããã
-
<Response>å ã®<Assertion>èŠçŽ ã¯ã眲åããããšãã§ããã - HTTP POST binding ã䜿çšãããŠããå Žåã¯çœ²åãå¿ èŠã
- HTTP Artifact binding ã䜿çšãããŠããå Žåã¯å¿ èŠã«å¿ããŠçœ²åã
-
- SP ã¯ã
<Response>ã®<Assertion>èŠçŽ ãåŠçããªããã°ãªããªãã - SP ã¯ã
- æ°ãã«ããªã³ã·ãã«ã®ã¢ã¯ãã£ãã»ã»ãã·ã§ã³ã確ç«ããã
- ãªãœãŒã¹ãžã®ã¢ã¯ã»ã¹ãèš±å¯ãŸãã¯æåŠããã
-
Authentication Request protocol ã«ã€ããŠã
-
ã¢ã¯ã¿ãŒã®åç§°
- SP 㯠Issuer ãš RP ã§ããã
- ããªã³ã·ãã«ã¯ PresenterãèŠæ±ããã Subjectãããã³ confirming entity ã§ããã
- IdP ã®è£éã§ã远å ã® RP ãŸã㯠confirming entity ãããå Žåãããã
-
<AuthnRequest>ã«ã¯<Issuer>èŠçŽ ãå¿ é -
<Issuer>èŠçŽ ã®Format屿§ã¯ãçç¥ãããã
urn:oasis:names:tc:SAML:2.0:nameid-format:entityã®å€ãæå®ã
-
-
SP ã¯ã
- IdP ã®ãµã€ã³ã¢ãããèš±å¯ããå Žåã
<AuthnRequest>ã«ã
AllowCreate屿§ã"true"ã«èšå®ãã<NameIDPolicy>èŠçŽ ãå«ããã - ID ãæå®ããå Žåã
<AuthnRequest>ã«ã<Subject>èŠçŽ ãå«ããã
ïŒãã ãã<SubjectConfirmation>èŠçŽ ãå«ãã§ã¯ãããªããïŒ - å¿
èŠã«å¿ããŠã
<AuthnRequest>ã¡ãã»ãŒãžã眲åïŒèªèšŒïŒããã- HTTP Artifact binding ã䜿çšãããŠããå Žåããªãã·ã§ã³ã§çœ²åïŒèªèšŒïŒã
- ãã®ä»ã® Binding ã«ãã£ãŠèš±å¯ãããŠããä»»æã®ã¡ã«ããºã ã䜿çšãããŠãããã
-
SAMLMeta å
ã®å¿
èŠãªå±æ§ãŸãã¯å¿
é ã®å±æ§ã«é¢ããæ
å ±ãåç
§ããã
AttributeConsumingServiceIndex屿§ãå«ããããšãã§ããã
- IdP ã®ãµã€ã³ã¢ãããèš±å¯ããå Žåã
-
IdP ã¯ã
-
<AuthnRequest>ã眲åïŒèªèšŒïŒãããŠããªãå Žåã
ããã³ / ãŸãã¯å®å šæ§ãä¿è·ãããŠããªãå Žåã
ãã®äžã®æ å ±ã¯å§åãé€ããŠä¿¡é ŒããŠã¯ãªããªãã - 以äžã¯ã眲åïŒèªèšŒïŒã«é¢ãããããµãŒãã¹ã«å±ãããã®ãšããŠæ€èšŒããã
-
AssertionConsumerServiceURL屿§ -
AssertionConsumerServiceIndex屿§
-
-
AttributeConsumingServiceIndex屿§ãå«ããããšãã§ããã
IdP ã¯ãããç¡èŠãããããŸãã¯ç¬èªã®å€æã§ä»ã®å±æ§ãéä¿¡ããããšãã§ããã
-
è£è¶³: ã眲åã®æç¡ã«é¢ããã
AssertionConsumerServiceURLãæ€èšŒããããšããèŠå®ã¯ç¹ã«éèŠã§ããã
æªçœ²åã®èŠæ±ã§ããã¡ã¿ããŒã¿ã«ç»é²æžã¿ã® ACS URL ã§ããããšãã
å¿ ã確èªããªããšãä»»æã® URL ã«ã¢ãµãŒã·ã§ã³ãéãããã
ïŒSAML Protocolsãåç §ïŒã
-
èŠæ±ãæºããããšãã§ããªãããŸãã¯æºãããªã
<AuthnRequest>ã«å¯Ÿãã
é©åãªãšã©ãŒã¹ããŒã¿ã¹ã³ãŒããå«ã¿ Assertion ãå«ãŸãªã<Response>ã§å¿çããã -
èŠæ±ãæåããå ŽåïŒãŸãã¯å¿çãèŠæ±ã«é¢é£ä»ããããŠããªãå ŽåïŒ
<Response>èŠçŽ ã¯ä»¥äžã«åŸãã-
<AuthnRequest>ã«å¿çããŠããå Žåã
<AuthnRequest>ã®ID屿§ã<Response>ã®
InResponseTo屿§ãšäžèŽããå¿ èŠãããã -
<Issuer>èŠçŽ- çç¥å¯èœ
- ããããIdP ã®äžæèå¥åã¯å¿ èŠã
-
Format屿§ã¯ãçç¥ãããã
urn:oasis:names:tc:SAML:2.0:nameid-format:entityã®å€ãæå®ã
-
<Assertion>èŠçŽ â å¿ é ã1 ã€ä»¥äžå¿ èŠ -
<Assertion>èŠçŽ ã®<Issuer>èŠçŽ-
Format屿§ã¯ãçç¥ãããã
urn:oasis:names:tc:SAML:2.0:nameid-format:entityã®å€ãæå®ã
-
-
<AuthnStatement>èŠçŽ- å¿
é ã
<Assertion>ã»ããã«å¯Ÿã㊠1 ã€ä»¥äžå¿ èŠ -
<Subject>ã®<SubjectConfirmation>èŠçŽ ãå¿ èŠã§ã
Method屿§ã«ã¯ãurn:oasis:names:tc:SAML:2.0:cm:bearerã®å€ãå¿ èŠã -
<SubjectConfirmation>ã®<SubjectConfirmationData>èŠçŽ ãå¿ èŠã§ã
RecipientãšNotOnOrAfter屿§ãå¿ èŠã§ãAddress屿§ãå«ãå¯èœæ§ãããã
NotBefore屿§ã¯å«ãã§ã¯ãªããªãã - Single Logout profile ããµããŒãããå Žåã
SessionIndex屿§ãå¿ èŠã«ãªãã - ãŸãã
AttributeStatementãªã©ãä»ã® Statement ãšã
ãã®ç¢ºèªæ¹æ³ããIdP ã®è£éã§ Assertion ã«å«ãŸããå¯èœæ§ã¯ããã
- å¿
é ã
-
SAML binding ã«é¢ä¿ãªããSP ã¯æ¬¡ã®ããšãããªããã°ãªããªãã
-
Assertion ãŸã㯠Response ã«ååšãã眲åã確èªããã
-
<SubjectConfirmationData>ã®-
Recipient屿§ãã<Response>ãŸã㯠Artifact ã
é ä¿¡ããã Assertion Consumer Service ã® URL ãšäžèŽããããšã確èªããã -
NotOnOrAfter屿§ã確èªããæå¹æéã®çµäºæç¹ã«éããŠããªãããšã確èªããã -
InResponseTo屿§ãã<AuthnRequest>ã®ID屿§ãšçããããšã確èªããã -
Address屿§ãå«ãŸããŠããå ŽåãSP 㯠UA ã®ã¢ãã¬ã¹ããã§ãã¯ããŠãããïŒMAYïŒã
-
-
ããŒã«ã«ãã°ãªã³ã»ãã¥ãªãã£ã³ã³ããã¹ãã確ç«ããããã«äœ¿çšããªãã
- æå¹ã§ã¯ãªã Assertion
- Subject 確èªèŠä»¶ãæºããããšãã§ããªã Assertion
-
<AuthnStatement>ã®SessionNotOnOrAfter屿§ãå«ãŸããŠããå Žåã
ãã®æéã«éãããããŒã«ã«ãã°ãªã³ã»ãã¥ãªãã£ã³ã³ããã¹ããç Žæ£ããå¿ èŠãããã
è£è¶³ïŒSP åŽã®æ€èšŒãã§ãã¯ãªã¹ãïŒ: äžã®èŠå®ã«ã
SAML Assertions åŽã®èŠä»¶ãåããããšã
SP ãå¿ ãè¡ãã¹ãæ€èšŒã¯æ¬¡ã®ãšããã«ãªããã©ãäžã€çããŠã¯ãªããªãã
# æ€èšŒé ç® 1 <Assertion>ïŒãŸãã¯<Response>ïŒã®çœ²åããä¿¡é Œæžã¿ã® IdP éµã§æ€èšŒã§ãã2 眲åã¢ã«ãŽãªãºã ã蚱容ç¯å²ïŒSHA-1 ã¯æåŠïŒ 3 <Issuer>ãæåŸ ãã IdP ã® EntityID4 <AudienceRestriction>ã«èªåã® EntityID ãå«ãŸãã5 <Conditions>ã®NotBefore/NotOnOrAfterïŒæå»ãã蚱容ã€ãïŒ6 <SubjectConfirmationData>ã®Recipientãèªåã® ACS URL7 å NotOnOrAfterãæªçµé8 å InResponseToãèªåã®åºãã<AuthnRequest>ã®ID9 <Response>ã®Destinationãèªåã® ACS URL10 Assertion ã® IDãèšé²ããåå©çšïŒãªãã¬ã€ïŒãæåŠ11 眲åãæ€èšŒããããŒãããå€ãåãåºãïŒXSW 察çïŒ
<Assertion>ãš<Response>ã®ã©ã¡ãã«çœ²åãããã㯠IdP äŸåã§ããã
ãã©ã¡ããäžæ¹ã¯å¿ ã眲åãããŠããããšããèŠæ±ãã
眲åãããŠããªãåŽã®å€ãä¿¡çšããªãã®ãå®å šãªå®è£ ã§ããã
-
HTTP Artifact Binding ã
<Response>ã®é ä¿¡ã«äœ¿çšãããå Žåã
Artifact Resolution profile ã䜿çšãã artifact ã®éæ¥åç §ã¯ã
çžäºã«èªèšŒãããå®å šæ§ãä¿è·ãããæ©å¯ã§ããå¿ èŠãããã -
IdP ã¯ã
<Response>ã¡ãã»ãŒãžãçºè¡ããã SP ã ãã«
<ArtifactResolve>èŠæ±ã®çµæãšããŠã¡ãã»ãŒãžãæž¡ãããããã«ããã -
Artifact ã鿥åç §ããããã«äœ¿çšããã Binding ãŸãã¯çœ²å
ã®ããããã䜿çšããŠãSP ãèªèšŒããã¡ãã»ãŒãžãä¿è·ã§ããã
HTTP POST Binding ã䜿çšã㊠<Response> ãé
ä¿¡ããå Žåã¯ã
-
åå°ã® Assertion ã«çœ²åããå¿ èŠãããã
-
SP ã¯ã
<SubjectConfirmationData>ã®NotOnOrAfter屿§ã«åºã¥ããŠ
Assertion ãæå¹ã§ãããšèŠãªãããæéã«æž¡ã£ãŠäœ¿çšæžã¿IDå€ã®ã»ããã
ç¶æããããšã§ãAssertion ãåçãããªãããã«ããå¿ èŠãããã
è£è¶³ïŒãªãã¬ã€é²æ¢ã®å®è£ ïŒ: ãäœ¿çšæžã¿
IDã®ã»ãããç¶æããããšã¯ã
å ·äœçã«ã¯<Assertion>ã®IDãããã®æå¹æéãŸã§ä¿åãã
åãIDãåã³æ¥ããæåŠãããšããããšãæå¹æéïŒéåžž 5 åçšåºŠïŒãéãããšã³ããªã¯æšãŠãŠããã®ã§ã
æå¹æéã€ãã®åæ£ãã£ãã·ã¥ïŒRedis ãªã©ïŒãåãã
Web ãµãŒããè€æ°å°ã§éçšããå Žåã
ããã»ã¹å ã¡ã¢ãªã«æã€ãšããŒããã©ã³ãµæ¬¡ç¬¬ã§ãªãã¬ã€ãéãã®ã§æ³šæã
IdP ã¯ãSP ã« Unsolicited <Response> ã¡ãã»ãŒãžã®é
ä¿¡ãéå§ããŠãããïŒMAYïŒã
-
<Response>ã<SubjectConfirmationData>èŠçŽ ã
InResponseTo屿§ãå«ãã§ã¯ãããªãã -
ã¡ã¿ããŒã¿ã§
<md:AssertionConsumerService>ãæäŸãããå Žåã
<Response>ãŸã㯠artifact ããããã§æå®ããã SP ã®ãšã³ããã€ã³ãã«é ä¿¡ãã¹ãã -
ç¹ã«èšåããã®ã¯ã
- IdP ããSP ãšã®çžäºã®åæã«åºã¥ããŠãUA ãšã®ãã®åŸã®å¯Ÿè©±ã
ã©ã®ããã«åŠçãããã瀺ã Binding åºæã®RelayStateãã©ã¡ã¿ãå«ãã§ããã -
RelayStateãã©ã¡ã¿ã®å€ã¯ãSP ã®ãªãœãŒã¹ã® URL ã§ãããããããªãã - SP ã¯ãå¿çã®åŠçã«æåããåŸã« UA ãéä¿¡ããããã©ã«ãã®å Žæã
æå®ããããšã«ãã£ãŠãUnsolicited<Response>ã¡ãã»ãŒãžãåŠçããæºåãããã¹ãã
- IdP ããSP ãšã®çžäºã®åæã«åºã¥ããŠãUA ãšã®ãã®åŸã®å¯Ÿè©±ã
è£è¶³: ããã IdP éå§ SSO ã®èŠå®ã§ããã
InResponseToãç¡ããã CSRF 察çãå¹ããã
ã»ãã¥ãªãã£äžã¯æšå¥šãããªãïŒSAMLã®ä»æ§ãèªãããåç §ïŒã
察å¿ãå¿ é ã®å Žåãããªãã¬ã€é²æ¢ïŒAssertionIDã®èšé²ïŒã¯å¿ ãå®è£ ããããšã
-
<md:IDPSSODescriptor>èŠçŽ ã®-
<md:SingleSignOnService>èŠçŽ
ãã®ãããã¡ã€ã«ã䜿çšã㊠SP ã IdP ã«èŠæ±ãéä¿¡ã§ãããšã³ããã€ã³ãã®å Žæãèšè¿°ã -
WantAuthnRequestsSigned屿§
èŠæ±ã¡ãã»ãŒãžã眲åããããšããèŠä»¶ãææžåããŠãããïŒMAYïŒã
-
-
<md:SPSSODescriptor>èŠçŽ ã®-
<md:AssertionConsumerService>ãšã³ããã€ã³ãèŠçŽ
IdP ã SP ã«å¿çãéä¿¡ããéã®
ãµããŒããããŠãã Binding ãšã€ã³ããã¯ã¹ä»ããšã³ããã€ã³ãã®å Žæã®æ å ±ã-
index屿§ â ãšã³ããã€ã³ããåºå¥ããããã«äœ¿çšãããã -
isDefault屿§ â èŠæ±ã§æå®ãããŠããªãå Žåã«äœ¿çšãããšã³ããã€ã³ããæå®ããã
-
-
<md:AttributeConsumingService>ãšã³ããã€ã³ãèŠçŽ â 屿§èŠä»¶ã®ã»ãã-
index/isDefault屿§ïŒåäžïŒ
-
-
AuthnRequestsSigned屿§
èŠæ±ã¡ãã»ãŒãžã眲åããããšããèŠä»¶ãææžåããŠãããïŒMAYïŒã -
WantAssertionsSigned屿§- Profile ã§é ä¿¡ããã Assertion 眲åèŠä»¶ã®ææžåãå¯èœã
- IdP ã¯ããã«çŸ©åä»ããããªããã
æªçœ²åã® Assertion ãäžååã«ãªãå¯èœæ§ãèªèããã - ç¹å®ã® Binding ã®äœ¿çšã«ãã£ãŠèª²ããã眲åã«é¢ããèŠä»¶ã«å ããŠè¡ãããã
-
-
眲åã»æå·å
-
use屿§ãsigningâ<md:KeyDescriptor>èŠçŽ ã䜿çšããŠã
眲åã«äœ¿çšããããŒãææžåã -
use屿§ãencryptionâ<md:KeyDescriptor>èŠçŽ ã䜿çšããŠã
æå·åã¢ã«ãŽãªãºã ãšå ¬éããŒãææžåã
-
-
<md:ArtifactResolutionService>èŠçŽ
èŠæ± / å¿çã¡ãã»ãŒãžã« HTTP Artifact Binding ã䜿çšããå Žåã
1 ã€ä»¥äžã®ãšã³ããã€ã³ãèŠçŽ ãæäŸããå¿ èŠãããã -
以äžãèšè¿°ã§ããèªèšŒäº€æäžã«ãµããŒãã§ãããã©ããã¯
ããªã·ãŒãš IdP ã®è£éã«äŸåããã-
<md:NameIDFormat>èŠçŽ â ç¹å®ã®ååèå¥åã®åœ¢åŒ -
<md:AttributeProfile>èŠçŽ â 屿§ãããã¡ã€ã« -
<saml:Attribute>èŠçŽ â ç¹å®ã®å±æ§ãšå€
-
ç§»è¡ã¡ã¢ïŒæ£èª€ïŒ:
use屿§ã®å€ã¯å ããŒãžã§sign/encryptãš
ãªã£ãŠããããã¹ããŒãäžã®å€ã¯signing/encryptionã§ããããŸãã
<md:NameIDFormat>çã® 3 èŠçŽ ã¯å ããŒãžã§ã¯
<md:ArtifactResolutionService>ã®åé ç®ãšããŠäžŠãã§ãããã
ãããã¯<md:IDPSSODescriptor>çŽäžã®èŠçŽ ã§ãããããéå±€ãåããã
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.4 Use of Authentication Request Protocol
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.4 ECP Profile Schema Usage
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.4 Use of Single Logout Protocol
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.4 Use of Name Identifier Management Protocol
4.5.5 Use of Metadata
5 Artifact Resolution Profile
6 Assertion Query/Request Profile
7 Name Identifier Mapping Profile
8 SAML Attribute Profiles
8.1 Basic Attribute Profile
è£è¶³ïŒIdentity Provider Discovery Profile ã¯çŸåšåããªãïŒ:
ãã®ãããã¡ã€ã«ã¯ãå ±éãã¡ã€ã³ã® Cookieãã§
ããŠãŒã¶ãçŽè¿ã©ã® IdP ã䜿ã£ãããã SP ã«äŒããä»çµã¿ã ãã
ãµãŒãããŒã㣠Cookie ã®å»æ¢ã«ããäºå®äžæ©èœããªããçŸåšã¯æ¬¡ã®ããããã§ä»£æ¿ãããã
- ããŒã ã¬ã«ã ãã£ã¹ã«ããªïŒHRDïŒ â ã¡ãŒã«ã¢ãã¬ã¹ã®ãã¡ã€ã³éšã§ IdP ãæ±ºãã
- SP åŽã§ã®æç€ºç㪠IdP éžæç»é¢
- ããã³ãå¥ã® URLïŒ
https://sp.example.com/t/contoso/loginãªã©ïŒ
Tags: ç§»è¡, ITåœéæšæº, èªèšŒåºç€, ã¯ã¬ãŒã ããŒã¹èªèšŒ, SAML