MS_SAMLBindings - NetDevInfraWGinOSSConsortium/NetDevInfraWiki GitHub Wiki
- æ»ãïŒSAMLã®ä»æ§ãèªããïŒ
- SAML Bindings
- SAML Profiles
- SAML Core
æ±çšèªèšŒãµã€ãã« SAML2.0ãå®è£ ãããã仿§ãèªãã
- ã¿ãŒã²ãã㯠SP Initiated 㪠Web Browser SSO Profile ã«çµãã
- ã³ã³ã«æžããæ å ±ã¯ãSAML ã® Bindings ã®ç¯å²ã
SAML èŠæ± / å¿çã¡ãã»ãŒãžäº€æã®
- æšæºã¡ãã»ãŒãžã³ã°
- éä¿¡ãããã³ã«ãžã®ãããã³ã°
ã¯ãSAML Bindings ãšåŒã°ããã
-
ç¹å®ã®éä¿¡ãããã³ã«
<FOO>ã«ãããã³ã°ãã
SAML Bindings ã¯ãSAML<FOO>Binding ãšåŒã°ããã -
ãã®ä»æ§ã®ç®çã¯ã
- SAML æºæ ãœãããŠã§ã¢ã確å®ã«çžäºéçšã§ããããã«ã
Binding ãååã«è©³çŽ°ã«æå®ããããšã - ç¹ã«æå®ã®ãªãéããBinding ã¯ã以äžããæŽŸçããã¡ãã»ãŒãžãšãã®éä¿¡ããµããŒãããã
samlp:RequestAbstractTypesamlp:StatusResponseType
- SAML æºæ ãœãããŠã§ã¢ã確å®ã«çžäºéçšã§ããããã«ã
- æè¡ææžäžã§ã® Shall / Should / May
- ãã®ä»æ§ã§ã¯åŸæ¥ã® XML åå空éãã¬ãã£ãã¯ã¹ã䜿çšãããã
- , etc.
远å 仿§çå®ã®ã¬ã€ãã©ã€ã³ãªã©ïŒå²æïŒ
SAML èŠæ Œã®äžéšãšããŠæå®ãããŠãã Binding ãå®çŸ©
SAML èŠæ ŒãšããŠå®çŸ©ãããå šãŠã® Binding ã®èŠç¯çç¹æ§
-
幟ã€ãã® Binding ã¯ãç¶æ æ å ±ãä¿åãäŒé
ããããã®RelayStateã¡ã«ããºã ãå®çŸ©ããã -
SAML èŠæ±ã¡ãã»ãŒãžã«
RelayStateããŒã¿ãä»éããŠããå Žåã- ã¬ã¹ãã³ãã¯
RelayStateã¡ã«ããºã ããµããŒããã Binding ã䜿çšããŠ
å¿çããªããã°ãªããã - å¿çã«ã¯ãèŠæ±ã§åãåã£ãæ£ç¢ºãª
RelayStateããŒã¿ã
察å¿ããRelayStateã«å«ããå¿ èŠãããã
- ã¬ã¹ãã³ãã¯
è£è¶³ïŒ
RelayStateã®äœ¿ãæ¹ïŒ:RelayStateã¯
OAuth ã®stateã«äŒŒãŠãããåãã§ã¯ãªãã
SAML OAuth CSRF 察ç InResponseToïŒSAML ProtocolsïŒstateé·ç§»å ã®ä¿æ RelayStatestateïŒã«çžä¹ãããããšãå€ãïŒ
RelayStateã®å€ã¯ IdP ãçŽ éãããŠè¿ã£ãŠããã ãã§ããã
å®å šæ§ä¿è·ããªãããã®ããæ¬¡ã® 2 ç¹ãéèŠã§ããã
- URL ãçŽæ¥å ¥ããªããå ¥ãããš
ãªãŒãã³ ãªãã€ã¬ã¯ã¿ã«ãªãïŒä»»æãµã€ããžé£ã°ããïŒã
ãµãŒãåŽã«é·ç§»å ãä¿åããRelayStateã«ã¯äžéæãªããŒã ããå ¥ããã- 80 ãã€ãå¶éãããããããããã URL ã¯å ¥ããããªãããšãå€ãã
- ç¹ã«æèšããªãéããã»ãã¥ãªãã£ã¹ããŒãã¡ã³ãã¯ãã¹ãŠã® Binding ã«é©çšãããã
- Binding ã¯ãã»ãã¥ãªãã£æ©èœã«ã€ããŠè¿œå ã®ã¹ããŒãã¡ã³ããåºãããšãããã
| é ç® | å 容 |
|---|---|
| Use of SSL 3.0 or TLS 1 | ã¯ã©ã€ã¢ã³ãã SSL 3.0 ãŸã㯠TLS 1.0 ã䜿çšããéããµãŒã㯠X.509 v3 èšŒææžãäœ¿çš |
| Data Origin Authentication | ã¡ãã»ãŒãžã«é¢é£ãã SAML ãªã¯ãšã¹ã¿ãšã¬ã¹ãã³ãã®äž¡æ¹ã®èªèšŒã¯ OPTIONALã仲ä»è ãééãã Binding ã§ã¯ãSAML èªäœã§èªèšŒã¡ã«ããºã ãæäŸããŠäœ¿çšããã |
| Message Integrity | SAML èŠæ±ãšå¿çã®äž¡æ¹ã®ã¡ãã»ãŒãžå®å šæ§ã¯ OPTIONALã仲ä»è ãééãã Binding ã§ã¯ãã¡ãã»ãŒãžã®å®å šæ§ä¿è·ãæšå¥šãããã |
| Message Confidentiality | SAML èŠæ±ãšå¿çã®äž¡æ¹ã®ã¡ãã»ãŒãžæ©å¯æ§ã¯ OPTIONALã仲ä»è ãééãã Binding ã§ã¯ãProtocol ã®ã¡ã«ããºã ã¯èŠä»¶ãæºãããªãã |
è£è¶³ïŒææ°åïŒ: ãSSL 3.0 ãŸã㯠TLS 1.0ã㯠2005 å¹Žåœæã®èšè¿°ã
çŸåšã¯ TLS 1.2 以äžïŒSSL/TLSïŒãå¿ é ã§ããã
SSL 3.0 㯠RFC 7568ãTLS 1.0 / 1.1 㯠RFC 8996 ã§çŠæ¢ã»éæšå¥šãšãããã
å±éã®åã«ãè匱æ§ã«ã€ããŠåæãã¹ãã
-
以äžã®ã³ã³ããã¹ãäžã§ã®ããããã³ã«äº€æ / å±éç°å¢
-
ã¡ã«ããºã ã®çµåãïŒèªèšŒ / ã¡ãã»ãŒãžã®å®å šæ§ / ã¡ãã»ãŒãžã®æ©å¯æ§ïŒ
-
詳现ãªè°è«ã«ã€ããŠã¯ä»¥äžãåç §
- ç¹å®ã®ãããã³ã«åŠçèŠå [SAMLCore]ïŒSAML CoreïŒ
- SAML ã»ãã¥ãªãã£åé¡ææž [SAMLSecure]
SAML Protocol ã¡ãã»ãŒãžã URL ãã©ã¡ã¿ã§éä¿¡ã§ããã¡ã«ããºã ãå®çŸ©
-
URL ãã©ã¡ã¿ã§ XML ã¡ãã»ãŒãžãéä¿¡ããã«ã¯ã
- ç¹æ®ãšã³ã³ãŒããå¿ èŠã§
- æååé·ã®å¶éãããã
-
HTTP POST Binding ãŸã㯠HTTP Artifact Binding
- 2 ã€ã®ç°ãªã Binding ãçµã¿åãããŠèŠæ± / å¿çã¡ãã»ãŒãžãéä¿¡å¯èœã
- HTTP Redirect Binding ããå€§èŠæš¡ã§è€éãªã¡ãã»ãŒãžãéä¿¡å¯èœã
| # | é ç® | 説æ |
|---|---|---|
| 1 | Identification | urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect |
| 2 | Contact information | [email protected] |
| 3 | Updates | None. |
UA ã仲ä»è ãšããŠäœ¿çšããŠéä¿¡ããå¿ èŠãããå Žåã察象ãšããã
RelayState ãå«ãŸããŠãããã
-
å€ã¯é·ãã 80 ãã€ããè¶ ããŠã¯ãªããªãã
-
ä»ã®ä¿è·ããç¬ç«ããŠãšã³ãã£ãã£ã«ãã£ãŠå®å šæ§ä¿è·ãããã¹ãã
-
å€ã¯é·ãå¶éããã眲åã¯çŸå®çã§ãªãã®ã§ã
ãã§ãã¯ãµã ã»æ¬äŒŒä¹±æ°ã䜿çšããŠæ¹ããã確èªã -
SAML ãªã¯ãšã¹ã¿ã SAML èŠæ±ã¡ãã»ãŒãžã«
RelayStateããŒã¿ã-
æ·»ä»ããå ŽåãSAML ã¬ã¹ãã³ãã¯ã
-
RelayStateããµããŒããã Binding ãéžæããŠå¿çããå¿ èŠãããã - åãåã£ãããŒã¿ãããã®ãŸãŸã¬ã¹ãã³ã¹ã®äžã®å¯Ÿå¿ãã
RelayStateãã©ã¡ã¿ã«å ¥ããã
-
-
æ·»ä»ããªãå ŽåãSAML ã¬ã¹ãã³ãã¯ã
Profile ãŸãã¯äºåã®åæã®äœ¿çšã«åºã¥ããŠRelayStateããŒã¿ãå«ããããšãã§ããã
-
æ·»ä»ããå ŽåãSAML ã¬ã¹ãã³ãã¯ã
XML ã URL ã«ãšã³ã³ãŒãããæ¹æ³ã SAMLEncoding ã«æå®ããã
- æ¢å®å€ã¯ã
urn:oasis:names:tc:SAML:2.0:bindings:URL-Encoding:DEFLATE - ãã® Binding ããµããŒãããå šãŠã®ãšã³ããã€ã³ã㯠DEFLATE Encoding ã®ãµããŒããå¿ èŠã
- ã³ãã©ã®äŸãåèã«ãªãã
DEFLATE å§çž®æ¹åŒãä»ã㊠URL ã«ãšã³ã³ãŒãïŒçœ²åãããã³ã³ãã³ããå«ã SAML ã¯å¯Ÿè±¡å€ïŒ
-
ã·ãªã¢ã«åæé
-
<ds:Signature>èŠçŽ ãããå Žåãã³ã¬ãåé€ïŒã¡ãã»ãŒãžé·çã«åé¡ïŒ - æèšãããŠããªãããå ããXML 宣èšã®ãšã³ã³ãŒãã£ã³ã°ã§ãšã³ã³ãŒãã
- DEFLATE å§çž®ã¡ã«ããºã ã§ SAML ãå§çž®ããã
- ãªã¯ãããã Base64 ãšã³ã³ãŒãã§æåååãã
ïŒæ¹è¡ãŸãã¯ä»ã®ç©ºçœã¯çµæããåãé€ãïŒã - Base64 ã URL ãšã³ã³ãŒãããã¯ãšãªæååã®
SAMLRequestãã©ã¡ã¿ãšã㊠URL ã«è¿œå ã -
RelayStateã URL ãšã³ã³ãŒãããã¯ãšãªæååã®
RelayStateãã©ã¡ã¿ãšã㊠URL ã«è¿œå ã - 眲åã远å ããã
-
眲åã¢ã«ãŽãªãºã èå¥å [XMLSig] ã® URI 衚çŸã
URL ãšã³ã³ãŒãããã¯ãšãªæååã®SigAlgãã©ã¡ã¿ãšã㊠URL ã«è¿œå ãã¢ã«ãŽãªãºã URI DSAwithSHA1 http://www.w3.org/2000/09/xmldsig#dsa-sha1RSAwithSHA1 http://www.w3.org/2000/09/xmldsig#rsa-sha1RSAwithSHA256ïŒæšå¥šïŒ http://www.w3.org/2001/04/xmldsig-more#rsa-sha256 -
次ã®ããããã®æ¹æ³ã§ã¯ãšãªæååãæ§ç¯ããã
SAMLRequest=value&RelayState=value&SigAlg=value SAMLResponse=value&RelayState=value&SigAlg=value -
äžèšã®ã¯ãšãªæååã ASCII ãšã³ã³ãŒããã眲åã¢ã«ãŽãªãºã ã§çœ²åããã
-
ãªã¯ãããã Base64 ãšã³ã³ãŒãã§æåååããã
-
Base64 ã URL ãšã³ã³ãŒãããã¯ãšãªæååã®
Signatureãã©ã¡ã¿ãšã㊠URL ã«è¿œå ã
-
-
è£è¶³ïŒææ°åïŒ: 仿§ãäŸç€ºããã®ã¯ SHA-1 ç³»ã ãã
SHA-1 ã¯äœ¿çšããªããrsa-sha256ïŒäžè¡šïŒãçšããããšã
-
ãã€ã³ã
-
仿§ã«æèšãããŠããªããã
XML â UTF-8 ãšã³ã³ãŒãã£ã³ã° â DEFLATE å§çž®ãšãããããã-
ã¯ã©ãŠããšã®èªèšŒé£æº | Think ITïŒã·ã³ã¯ã€ããïŒ
https://thinkit.co.jp/story/2011/02/18/1999?page=0%2C2ããããå¿ èŠïŒUTF-8 ã§ïŒã
<?xml version="1.0" encoding="UTF-8"?>
-
EZ-NET: XmlDocument ã XML 宣èšä»ãã®æŽåœ¢ããã String ã«å€æãã
XmlWriterSettingsã䜿çšããŠãUTF-8ãã€ã³ãã³ãç¡ããæå®ã -
C# - SAMLãªã¯ãšã¹ãã«ã€ããŠïœteratail
https://teratail.com/questions/50890ãããã«åãããŠãïŒUTF-8 ã§ïŒãšã³ã³ãŒãã£ã³ã°ããã
// Ã byte[] samlRequestBytes = Encoding.Unicode.GetBytes(samlRequestXmlDoc.InnerXml); // ã byte[] samlRequestBytes = Encoding.UTF8.GetBytes(samlRequestXmlDoc.InnerXml);
-
-
URL ãšã³ã³ãŒãã¯ãããã©ã«ãã®æ¹åŒä»¥å€ã®ãã®ãçšããããŠããå¯èœæ§ãããã
ãã®ãããã¡ã¿ããŒã¿ãçšããŠãµããŒããã URL ãšã³ã³ãŒãæ¹æ³ãæç€ºããã -
ã¯ãšãªæååãã©ã¡ã¿é ã¯ãBinding ã«ãã£ãŠèŠå®ãããŠããªããã
眲åãæ€èšŒããå Žåã¯ãåè¿°ã®ãã¯ãšãªæååãæ§ç¯ãé åºãšåã£ãŠããã確èªããã -
ã¯ãšãªæååãã©ã¡ã¿å€ã空æååã®å Žåã¯ããã©ã¡ã¿èªäœã眲åã®æŒç®ããé€å€ããã
-
è£è¶³ïŒçœ²åæ€èšŒã§æãééããããç¹ïŒ: HTTP Redirect Binding ã®çœ²åã¯
**XML眲åã§ã¯ãªãã
ã¯ãšãªæååãã®ãã®ã«å¯Ÿãã眲åïŒãã¿ãã眲åïŒ**ã§ãããæ€èšŒåŽã¯ãåãåã£ãçã®ã¯ãšãªæååãã䜿ããªããã°ãªããªãã
Web ãã¬ãŒã ã¯ãŒã¯ã URL ãã³ãŒãããå€ããåæ§ç¯ãããšã
- ãšã³ã³ãŒãæ¹åŒã®éãïŒ
+ãš%20ã倧æåå°æåã® 16 é²ïŒ- ãã©ã¡ã¿ã®äžŠã³é
ã«ãã£ãŠçœ²åãäžèŽããªããªãã
ASP.NET ãªãRequest.QueryStringã®åæ§ç¯ã§ã¯ãªãã
Request.Url.Queryããèªåã§åãåºãããšããŸãã
SigAlgãéµåã¿ã«ããªãã
ã¡ã¿ããŒã¿ã§åæããéµãšã¢ã«ãŽãªãºã ã§æ€èšŒãã
ïŒJWS ã®algãšåãåé¡ã§ããïŒã
-
HTTP Redirect ã«ãã OAuth Dance çãªã·ãŒã±ã³ã¹ã®èª¬æ
-
ãã€ã³ãã¯ã
<samlp:AuthnRequest>èŠçŽ ã®IsPassive屿§ã-
trueã®å ŽåãIdP ã¯ãŠãŒã¶ãšã®å¯Ÿè©±ãçŠæ¢ããã -
falseã®å ŽåãIdP ã¯ãŠãŒã¶ãšã®å¯Ÿè©±ãèš±ããã
ãšèšãç¹ã®ã¿ã
-
ç§»è¡ã¡ã¢ïŒæ£èª€ïŒ: å ããŒãžã¯
true/falseã®äž¡æ¹ã«ã€ããŠ
ãIdP ã¯ãŠãŒã¶ãšã®å¯Ÿè©±ãçŠæ¢ãããããšæžãããŠããïŒåæã®éè€ïŒã
IsPassive="false"ïŒæ¢å®å€ïŒãªã察話ããŠãããæ£ããã
IsPassive="true"ã¯ãç»é¢ãåºããã«ãæ¢åã»ãã·ã§ã³ã ãã§çããã
ãšããæå³ã§ãæºãããªãå Žå IdP ã¯
urn:oasis:names:tc:SAML:2.0:status:NoPassiveãè¿ãã
iframe å ã§ã®ãµã€ã¬ã³ãåèªèšŒãªã©ã«äœ¿ããã
ïŒOpenID Connect ã®prompt=noneã«çžåœïŒã
HTTP ã¬ã¹ãã³ãïŒSAML ã¬ã¹ãã³ãïŒã¯ã以äžã®ããããŒãã£ãŒã«ããå«ããã
Cache-Control: no-cache, no-store
Pragma: no-cache
-
UA ã®ä»²ä»è ãååšãããããèªèšŒãå®å šæ§ãæ©å¯æ§ã«ã€ããŠ
ãã©ã³ã¹ããŒãå±€ãé Œãããšãã§ããªãã®ã§å¿ èŠã«å¿ããŠçœ²åãè¡ãã- 眲åãä»ããã¡ãã»ãŒãžã¬ãã«ã®èªèšŒãšå®å šæ§ã®ä¿è·ã«äŸåã
- UA ã®ä»²ä»è ã«å¯Ÿããã¡ãã»ãŒãžã®æ©å¯æ§ã¯ãµããŒãããªãã
-
æ©å¯æ§ã¯ OPTIONAL ã§ãå¿ èŠãªå Žåã¯ãTLS ã䜿çšããã
-
ã¯ãšãªæååãã©ã¡ã¿ã¯ãHTTP ã®
RefererãããããHTTP ãã°ã«
å ¬éãããå¯èœæ§ãããã
è£è¶³: ãã¯ãšãªæååããã°ã
Refererã«æ®ããããšã¯
Redirect Binding ãã¬ã¹ãã³ã¹ïŒã¢ãµãŒã·ã§ã³ïŒã«äœ¿ããªãçç±ã§ãããã
ã¢ãµãŒã·ã§ã³ã URL ã«èŒããšã
ãããã·ã»ãã°ã»ãã©ãŠã¶å±¥æŽã«èªèšŒçµæãæ®ã£ãŠããŸããWeb Browser SSO Profile ã
ãRequest 㯠RedirectãResponse 㯠POSTããšããçµã¿åããã
å®çªãšããŠããã®ã¯ãã®ããã§ããã
SAML ã¬ã¹ãã³ãããèŠæ±ãšã¡ãã»ãŒãžäº€æãè¡ãããšãæåŠããå Žåã
-
SAML å¿çã¡ãã»ãŒãž
第 2 ã¬ãã«ã®<samlp:StatusCode>èŠçŽ ã§ä»¥äžã®å€ãè¿ããurn:oasis:names:tc:SAML:2.0:status:RequestDenied -
HTTP å¿çã¡ãã»ãŒãž
- HTTP ãšã©ãŒã¹ããŒã¿ã¹ã³ãŒãã䜿çšããªãã
- çç±ã¯ãUA 㯠HTTP ã®ãšã©ãŒã¹ããŒã¿ã¹ã³ãŒãããçè§£ããªãããã
ç§»è¡ã¡ã¢: å ããŒãžã®çç±ã®èª¬æã¯ææãéããªãã
仿§ã®æå³ã¯ãUAïŒãã©ãŠã¶ïŒã¯ HTTP ãšã©ãŒããã®ãŸãŸè¡šç€ºããŠããŸãã
SAML ã¬ãã«ã®ãšã©ãŒã SP ã«äŒãããªãããšããããšã§ããã
åŸã£ãŠ HTTP 㯠200 / 302 ã§è¿ãããšã©ãŒã¯ SAML ã®<Status>ã§äŒããã
ç¹å®ã®ãããã³ã«ãŸãã¯ãããã¡ã€ã«ã«å¯Ÿãã
åäž or åå¥ïŒèŠæ± / å¿çïŒã® URL ãšã³ããã€ã³ãã瀺ãã
岿ïŒSingle Logout Protocol ã®äŸãªã®ã§ïŒ
HTML Form Control ã® Base64 ãšã³ã³ãŒãã³ã³ãã³ãå
ã§éä¿¡ããã¡ã«ããºã ã
ïŒãOAuth 2.0 Form Post Response Modeã
ã¿ãããªä»æ§ïŒ
| # | é ç® | 説æ |
|---|---|---|
| 1 | Identification | urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST |
| 2 | Contact information | [email protected] |
| 3 | Updates | SAML V1.1 ã® Browser/POST profile ã广çã«çœ®ãæããã |
HTTP Redirect Binding ã® HTTP Redirect ã Form Post ã«çœ®ãæãããã®ã
HTTP Redirect Binding ãšåãã
HTTP Redirect Binding ã® Message Encoding ãšã®å·®åã以äžã«ç€ºãã
-
æèšãããŠããªãããå ããXML 宣èšã®ãšã³ã³ãŒãã£ã³ã°ã§ãšã³ã³ãŒãã
-
ãã®åŸãBase64 ãšã³ã³ãŒãã®ã¿è¡ãã
- DEFLATE å§çž® â æååé·ã¯æ°ã«ããªãã®ã§ãå§çž®ã¯äžèŠã
- URL ãšã³ã³ãŒã â form-urlencoded ã¯èªåçã«è¡ãããã
-
HTML Form Control
-
method屿§ :POST -
action屿§ : é ä¿¡å HTTP ãšã³ããã€ã³ã -
name屿§-
SAMLRequestïŒSAML Request ã®å ŽåïŒ -
SAMLResponseïŒSAML Response ã®å ŽåïŒ
-
-
-
Submit ã®æ¹æ³
- UA ããµããŒãããä»»æã®æ¹æ³ãå©çšå¯èœã
- éåžžãClient Side Script ãªã©ã䜿çšããã
-
ã³ãã©ã®äŸãåèã«ãªãã
è£è¶³ïŒèªå POST ãš CSPïŒ: èªåéä¿¡ã®ããã«
<body onload="document.forms[0].submit()">ã䜿ãå®è£ ãå®çªã ãã
Content Security PolicyïŒCSPïŒã§unsafe-inlineãçŠæ¢ããŠãããšåããªã
ïŒã»ãã¥ãªãã£é¢é£ã®HTTPããããåç §ïŒã察çã¯ãã€ã³ã©ã€ã³ ãã³ãã©ããããŠå€éšã¹ã¯ãªããïŒãŸã㯠nonce ä»ãïŒã«ããã
ãŸã<noscript>çšã«æåã®ãContinueããã¿ã³ãå¿ ãçšæããã
HTTP Redirect Binding ã® HTTP Redirect ã Form Post ã«çœ®ãæãããã®ã
HTTP Redirect Binding ãšåãã
åºæ¬çã« HTTP Redirect Binding ãšåãã ãã以äžãç°ãªãã
-
眲åã¯ãïŒ
SAMLRequestorSAMLResponseïŒãšRelayStateã§å¥ã ã«è¡ãããã
ïŒSAMLRequestorSAMLResponseïŒã¡ãã»ãŒãžã眲åãããŠããå Žåã- Root SAML èŠçŽ ã®
DestinationXML 屿§ã«ãUA ã«æç€ºãã URL ãå«ããã - åä¿¡è ã¯ãå€ãã¡ãã»ãŒãžãåä¿¡ãããå ŽæãšäžèŽããããšã確èªããã
- Root SAML èŠçŽ ã®
-
眲åãå¥ã ã«ãªããããåã ã®å®å šæ§ä¿è·ã¯å¯èœã ã
ïŒSAMLRequestorSAMLResponseïŒãšRelayStateã®çµåãã®
å®å šæ§ä¿è·ã¯ã§ããªãã -
POST ã®å ŽåãHTTP ã®
RefererãããããHTTP ãã°ã«å ¬éãããå¯èœæ§ããªãã
ç§»è¡ã¡ã¢: ã眲åã¯âŠå¥ã ã«è¡ããããã¯æ£ç¢ºã«ã¯
ãPOST Binding ã§ã¯RelayStateã¯çœ²å察象ã«å«ãŸããªããã®æã
Redirect Binding ã§ã¯ã¯ãšãªæååå šäœïŒRelayStateãå«ãïŒã«
眲åããããPOST Binding ã§ã¯ XML ã¡ãã»ãŒãžã®äžã«ãã
眲åããªããããRelayStateã¯ä¿è·ãããªãã
ããããRelayStateã« URL ãçŽæ¥å ¥ããŠã¯ãªããªããçç±ã«ãªãã
HTTP Redirect Binding ãšåãã
HTTP Redirect Binding ãšåãã
åæ§ã«å²æïŒSingle Logout Protocol ã®äŸãªã®ã§ïŒ
- OAuth ã® Authorization Code ã¿ãããªä»æ§ã
- Code ã Token ã«å€æããããã«ãArtifact ã SAML Assertion ãªã©ã«å€æããã
| # | é ç® | 説æ |
|---|---|---|
| 1 | Identification | urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Artifact |
| 2 | Contact information | [email protected] |
| 3 | Updates | SAML V1.1 ã® Browser/Artifact profile ã广çã«çœ®ãæããã |
ç§»è¡ã¡ã¢: å ããŒãžã® Identification ã¯
...:bindings::HTTP-ArtifactïŒã³ãã³ã 2 ã€ïŒã ã£ãã®ã§æ£ããã
HTTP Redirect BindingãHTTP POST Binding ãšçµã¿åãããŠäœ¿çšããããã
UA ã仲ä»è
ãšããŠäœ¿çšããŠéä¿¡ããå¿
èŠããããã
ã¡ãã»ãŒãžæ¬äœã¯ãSAML ãªã¯ãšã¹ã¿ãã¬ã¹ãã³ãã« Artifact ãæç€ºããŠçŽæ¥èŠæ±ããã
ç§»è¡ã¡ã¢ïŒæ£èª€ïŒ: å ããŒãžã¯ãSAML ã¬ã¹ãã³ãããªã¯ãšã¹ã¿ã«
Artifact ã䜿çšããŠçŽæ¥èŠæ±ããããšãªã£ãŠããããéã§ããã
Artifact ãåãåã£ãåŽïŒïŒ SPãSAML ãªã¯ãšã¹ã¿ïŒãã
çºè¡å ïŒIdPãSAML ã¬ã¹ãã³ãïŒãž<ArtifactResolve>ãéãã
Artifact ã¯ä»¥äžã® Binding ã䜿çšããŠéä¿¡ãããããããããã«å£ã£ãŠãšã³ã³ãŒããããã
- HTTP Redirect Binding â URL ãšã³ã³ãŒããã
SAMLartãšããã¯ãšãªæååãã©ã¡ã¿ã«é 眮 - HTTP POST Binding â
SAMLartãšãããã©ã¡ã¿ã«é 眮ããã ãã§è¯ãã
RelayState ãåæ§ã«ãäžèšããããã® Binding ã«å£ã£ãŠéä¿¡ãããã
- çãäžéæãªæåå
SAML_artifact := B64(TypeCode EndpointIndex RemainingArtifact)
TypeCode := Byte1Byte2ïŒSAML 2.0 㯠0x0004ïŒ
EndpointIndex := Byte1Byte2
RemainingArtifact := SAMLã¬ã¹ãã³ãã®ã¹ãã¢ãšãªã³ã¯ãã
| # | é ç® | 説æ |
|---|---|---|
| 1 | Identification | urn:oasis:names:tc:SAML:2.0:artifact-04 |
| 2 | Contact information | [email protected] |
| 3 | Updates | None. |
-
Artifact ã®çºè¡åŽã¯ä»¥äžããTypeCode := 0x0004ãã¹ãã¢ã«ä¿æããã
-
RemainingArtifact := SourceID MessageHandle-
SourceID:= 20 byte ã® çºè¡è ã®èå¥ URL ã® SHA-1 ããã·ã¥ -
MessageHandle:= 20 byte ã® RFC 1750 ã®ã©ã³ãã æåå
-
-
Message:=<samlp:ArtifactResponse>ã§è¿åŽãããã¡ãã»ãŒãžã
-
-
RemainingArtifactäžã®SourceIDãšEndpointIndexã䜿çšããŠã
<samlp:ArtifactResolve>éä¿¡å ãç¹å®ããããšãå¯èœã
ç§»è¡ã¡ã¢ïŒæ£èª€ïŒ: å ããŒãžã¯
MessageHandleã
ã16-20 byteããšããŠãããã仿§äžã¯å³å¯ã« 20 ãã€ã
ïŒSourceID20 +MessageHandle20 =RemainingArtifact40 ãã€ãïŒã§ããããªã
SourceID㯠SHA-1 ã ããããã¯èå¥ã®ããã®ããã·ã¥ã§ãã£ãŠ
眲åã§ã¯ãªããããSHA-1 ã®è¡çªèæ§ã®åé¡ã¯çŽæ¥ã«ã¯åœ±é¿ããªãã
-
以äžã§ ArtifactïŒ
SAMLartïŒã®ã¿ãéä¿¡ãã- HTTP Redirect Binding
- HTTP POST Binding
-
ã¡ãã»ãŒãžæ¬äœã¯ãäžèšã§ SAML èŠæ± / å¿çã¡ãã»ãŒãžäº€æãè¡ãã
<samlp:ArtifactResolve><samlp:ArtifactResponse>
HTTP Redirect Bindingã»HTTP POST Binding ãšåãã
-
UA ã仲ä»è ãšããŠäœ¿çšããŠéä¿¡ããªãåæéä¿¡ã®ããã
- SAML ãªã¯ãšã¹ã¿ãšã¬ã¹ãã³ãã®äž¡æ¹ã®èªèšŒãå¿ èŠ
- Artifact ã¯ãäœ¿ãæšãŠã®ã·ã³ã°ã«ãŠãŒã¹ã»ãã³ãã£ã¯ã¹ã
匷å¶ããããšãæšå¥šãããïŒå€±ææãïŒã - æ©å¯æ§ã¯ãTLS ãã远å ã®ã¡ã«ããºã ãå°å ¥ããŠãã€ã€ã
-
RelayStateã«ã€ããŠã¯ãHTTP POST Binding ãšåãã
è£è¶³ïŒArtifact ã®å©ç¹ã𿬠ç¹ïŒ: ã¢ãµãŒã·ã§ã³æ¬äœããã©ãŠã¶ãéããªãããã
- ã¢ãµãŒã·ã§ã³ããã°ãå±¥æŽã«æ®ããªã
- ã¢ãµãŒã·ã§ã³ã®çœ²åæ€èšŒãçç¥ããããïŒããã¯ãã£ãã«ã TLS çžäºèªèšŒã®ããïŒ
ãšããå©ç¹ããããäžæ¹ã§
- SP ãã IdP ãžã®çŽæ¥éä¿¡ãå¿ èŠïŒFW / ãããã·ã®ç©ŽãããèŠãïŒ
- IdP ãç¶æ ãæã€ïŒã¹ããŒãã¬ã¹ã«ã§ããªãïŒ
ãšããéçšäžã®è² æ ã倧ããã
çŸåšã¯ POST Binding ãäž»æµã§ãã
ïŒSAMLãå®è£ ããããåç §ïŒã
-
åºæ¬ã¯ãHTTP Redirect Bindingã»HTTP POST Binding ãšåãã
-
远å ã§ã
<samlp:ArtifactResolve>ãçè§£ã§ããå Žåã
<samlp:ArtifactResponse>ã«ä»¥äžãå«ããå¿ èŠããããurn:oasis:names:tc:SAML:2.0:status:Success
- åºæ¬ã¯ãHTTP Redirect Bindingã»HTTP POST Binding ãšåãã
- 远å ã§ã
<samlp:ArtifactResolve>ãåŠçããã€ã³ããã¯ã¹ä»ããšã³ããã€ã³ãã
èšè¿°ãããã¹ãã
åæ§ã«å²æïŒSingle Logout Protocol ã®äŸãªã®ã§ïŒ
https://docs.oasis-open.org/security/saml/v2.0/saml-bindings-2.0-os.pdf
1 Introduction
1.1 Protocol Binding Concepts
1.2 Notation
2 Guidelines for Specifying Additional Protocol Bindings
3 Protocol Bindings
3.1 General Considerations
3.1.1 Use of RelayState
3.1.2 Security
3.1.2.1 Use of SSL 3.0 or TLS 1
3.1.2.2 Data Origin Authentication
3.1.2.3 Message Integrity
3.1.2.4 Message Confidentiality
3.1.2.5 Security Considerations
3.2 SAML SOAP Binding
3.2.1 Required Information
3.2.2 Protocol-Independent Aspects of the SAML SOAP Binding
3.2.2.1 Basic Operation
3.2.2.2 SOAP Headers
3.2.3 Use of SOAP over HTTP
3.2.3.1 HTTP Headers
3.2.3.2 Caching
3.2.3.3 Error Reporting
3.2.3.4 Metadata Considerations
3.2.3.5 Example SAML Message Exchange Using SOAP over HTTP
3.3 Reverse SOAP (PAOS) Binding
3.3.1 Required Information
3.3.2 Overview
3.3.3 Message Exchange
3.3.3.1 HTTP Request, SAML Request in SOAP Response
3.3.3.2 SAML Response in SOAP Request, HTTP Response
3.3.4 Caching
3.3.5 Security Considerations
3.3.5.1 Error Reporting
3.3.5.2 Metadata Considerations
3.4 HTTP Redirect Binding
3.4.1 Required Information
3.4.2 Overview
3.4.3 RelayState
3.4.4 Message Encoding
3.4.4.1 DEFLATE Encoding
3.4.5 Message Exchange
3.4.5.1 HTTP and Caching Considerations
3.4.5.2 Security Considerations
3.4.6 Error Reporting
3.4.7 Metadata Considerations
3.4.8 Example SAML Message Exchange Using HTTP Redirect
3.5 HTTP POST Binding
3.5.1 Required Information
3.5.2 Overview
3.5.3 RelayState
3.5.4 Message Encoding
3.5.5 Message Exchange
3.5.5.1 HTTP and Caching Considerations
3.5.5.2 Security Considerations
3.5.6 Error Reporting
3.5.7 Metadata Considerations
3.5.8 Example SAML Message Exchange Using HTTP POST
3.6 HTTP Artifact Binding
3.6.1 Required Information
3.6.2 Overview
3.6.3 Message Encoding
3.6.3.1 RelayState
3.6.3.2 URL Encoding
3.6.3.3 Form Encoding
3.6.4 Artifact Format
3.6.4.1 Required Information
3.6.4.2 Format Details
3.6.5 Message Exchange
3.6.5.1 HTTP and Caching Considerations
3.6.5.2 Security Considerations
3.6.6 Error Reporting
3.6.7 Metadata Considerations
3.6.8 Example SAML Message Exchange Using HTTP Artifact
3.7 SAML URI Binding
3.7.1 Required Information
3.7.2 Protocol-Independent Aspects of the SAML URI Binding
3.7.2.1 Basic Operation
3.7.3 Security Considerations
3.7.4 MIME Encapsulation
3.7.5 Use of HTTP URIs
4 References
Appendix A. Registration of MIME media type application/samlassertion+xml
Appendix B. Acknowledgments
Appendix C. Notices
Tags: ç§»è¡, ITåœéæšæº, èªèšŒåºç€, ã¯ã¬ãŒã ããŒã¹èªèšŒ, SAML