ãã£ããã§ããå¿ ç¶çã«ãSAMLããŒã¹ã®SSOãœãªã¥ãŒã·ã§ã³ã¯OpenIDã¹ã¿ãã¯ãœãªã¥ãŒã·ã§ã³ã«å€ããã€ã€ãããŸãã æè¿ãGoogleã¯OpenID Connectãããã³ã«ã®ãµããŒãããµãŒããŒã«å®è£ ããŸããã ããªãã®ãããžã§ã¯ããã©ãã ãåãå ¥ãããããããããŠãããã©ã®ããã«æ±ããã¯ããããã³ã«ä»æ§ã«åŸã£ãŠè©äŸ¡ããã®ã¯ããªãå°é£ã§ãã ãã®æ±ºå®ã¯ãä»æ§æžã®èè ã®1人ã«ããããã°ã«æ²èŒãããèšäºã«ãã£ãŠè¥å¹²ä¿é²ãããã¯ãã§ãã ç解ãç°¡åã«ããããã«ãããã€ãã®ãã€ã³ããèªåã§è¿œå ãããã®ã§ã䜿çšãããŠããæè¡ãžã®ãªã³ã¯ãèªãå¿ èŠã¯ãããŸããã§ãããããããã®ããã€ãã«ç²Ÿéããããšããå§ãããŸãã
OpenID Connectä»æ§ãèªããšã軜床ã®ææããå®å šãªæ¬²æ±äžæºãŸã§ãããªãäžå¿«ãªæ°æã¡ã«ãªããŸãã ããã¯ãã¹ãŠãããã©ã€ãä»æ§èšèªã§èšè¿°ãããŠããããã«çºçããã»ãšãã©ã®å Žåãå¢çã±ãŒã¹ãäŸå€ãªã©ãèšè¿°ããŠããŸãã ãã ããããããéåžžã®äººéã®èšèªã«ç¿»èš³ããŠç¹å®ã®ã±ãŒã¹ã«åãæ¿ãããšããã¹ãŠãæããã«ãªããŸãã ããã§ã¯å§ããŸãããïŒ ïŒRemarochkaïŒããã¹ãã®ã»ãšãã©ã¯ãDavid Recordonã«ãã£ãŠæžãããå ã®æãšäžèŽããŸããåºæ¬çã«ãç§ã®ç·šéã¯ããã©ã¡ãŒã¿åãšä»ã®å°ããªãã®ã®äžéšã«ã®ã¿åœ±é¿ããŸããïŒ
OpenID Connectãªã¯ãšã¹ãã®äœæ
ã¯ã©ã€ã¢ã³ããOpenID Connectãªã¯ãšã¹ããäœæããã«ã¯ã次ã®ãµãŒããŒæ å ±ãå¿ èŠã§ãã
- ã¯ã©ã€ã¢ã³ãèå¥å -èªå¯ãµãŒããŒäžã§èªèº«ãèå¥ããããã«ã¯ã©ã€ã¢ã³ãã«çºè¡ãããäžæã®èå¥åã
- ã¯ã©ã€ã¢ã³ãã·ãŒã¯ã¬ãã -æ¿èªãµãŒããŒãšã¯ã©ã€ã¢ã³ãã®éã§ç¢ºç«ãããèŠæ±ã«çœ²åããããã«äœ¿çšãããå ±æã·ãŒã¯ã¬ããããŒã
- ã¢ãã¬ã¹ïŒãšã³ããã€ã³ãããã ããã®ã³ã³ããã¹ãã§ã¯ããšã³ããã€ã³ããšã¢ãã¬ã¹ã¯å矩ã§ãã次ã¯ã¢ãã¬ã¹ã§ãïŒãŠãŒã¶ãŒèªèšŒïŒ ãšã³ããŠãŒã¶ãŒèªèšŒãšã³ããã€ã³ã ïŒ- ãšã³ããŠãŒã¶ãŒãèªèšŒããã³èªèšŒã§ãããµãŒããŒãªãœãŒã¹ãžã®HTTPãªã¯ãšã¹ãã®URLã¢ãã¬ã¹ã
- ããŒã¯ã³çºè¡ã¢ãã¬ã¹ïŒ ããŒã¯ã³ãšã³ããã€ã³ã ïŒ-ããŒã¯ã³çºè¡ãæäŸããèš±å¯ãµãŒããŒäžã®ãªãœãŒã¹ã
- ãŠãŒã¶ãŒæ å ±ãšã³ããã€ã³ã -ããŒã¯ã³ãæ瀺ãããšãçŸåšã®ãŠãŒã¶ãŒã«é¢ããæ å ±ãæ¿èªãããã¯ã©ã€ã¢ã³ãã«è¿ãä¿è·ããããªãœãŒã¹ã
- Check idãšã³ããã€ã³ãã¯ãã¯ã©ã€ã¢ã³ãèå¥åã®æ瀺æã«çœ²åãæ€èšŒãããŠãŒã¶ãŒã®ã»ãã·ã§ã³ã«é¢ããæ
å ±ãè¿ãå®å
šãªãªãœãŒã¹ã§ãã ïŒ 2012/3/3ãåé€ïŒäžè¬çãªOAuthããŒã¯ã³ã€ã³ããã¹ãã¯ã·ã§ã³ãã€ã³ããšããŠè¿ãããå ŽåããããŸã ïŒ
ãã®æ å ±ã¯ãã¯ã©ã€ã¢ã³ãã®éçºè ããµãŒããŒã®ããã¥ã¡ã³ããèªãã§ã¢ããªã±ãŒã·ã§ã³ãäºåç»é²ããããšãããã³æ€åºãšåçç»é²ãå®è¡ããããšã®äž¡æ¹ã«ãã£ãŠååŸã§ããŸãã
ã¯ã©ã€ã¢ã³ãã¯ãããŒã¯ã³ãåä¿¡ããããã«OAuth 2.0ãªã¯ãšã¹ããäœæããŸãã
OAuth 2.0ãªã¯ãšã¹ããOpenID Connectãªã¯ãšã¹ãã«å€æããã«ã¯ãOpenIDããŒãå¿
èŠãªããŒã¿ã»ããïŒ scopeãã©ã¡ãŒã¿ãŒïŒã®1ã€ãšããŠè¿œå ããã ãã§ãã ãã©ã¡ãŒã¿ã§OpenIDããŒãèšå®ããããšã«ãããã¯ã©ã€ã¢ã³ãã¯ãŠãŒã¶ãŒã®èå¥åãšèªèšŒã³ã³ããã¹ããèŠæ±ããŸãã ãŠãŒã¶ãŒãããã¡ã€ã«ã®URLãååããŸãã¯åçãååŸããå Žåã¯ãè¿œå ã®ããŒã¿ã»ããïŒãããã¡ã€ã«ãªã©ïŒãèŠæ±ã§ããŸãã ãµãŒããŒïŒããã³ãŠãŒã¶ãŒïŒã¯ãã¯ã©ã€ã¢ã³ããå©çšã§ãããããã¡ã€ã«æ
å ±ãéžæã§ããŸãã ã¯ã©ã€ã¢ã³ãããŠãŒã¶ãŒã®ã¡ãŒã«ã¢ãã¬ã¹ãååŸãããå Žåããªã¯ãšã¹ãã«ãã¡ãŒã«ãããŒãè¿œå ããå¿
èŠããããŸãã åãããšãäœæïŒäœæïŒãšé»è©±ïŒé»è©±ïŒã«ãåœãŠã¯ãŸããŸãã
äŸïŒ
GET /authorize?grant_type=token%20id_token&scope=openid%20proflie&redirect_uri=https%3A%2F%2Fclient%2Eexample%2Ecom%2Fcb HTTP/1.1 Host: server.example.com
ã¯ã©ã€ã¢ã³ãããµãŒããŒã«äºåç»é²ããå¿ èŠã¯ãªããããããŸãããããµãŒããŒã«ã¯ããŠãŒã¶ãŒæ å ±ã®èŠæ±ã«å¯Ÿããã¯ã©ã€ã¢ã³ãã®ããŸããŸãªå¶éãšèŠä»¶ãããå¯èœæ§ããããŸãã
OpenID Connectå¿çã®ååŸ
ãŠãŒã¶ãŒãã¯ã©ã€ã¢ã³ãèŠæ±ã«ãã£ãŠæ¿èªãããå Žåãã¯ã©ã€ã¢ã³ãã¯ããŒã¯ã³ãåãåããŸãã éåžžã OAuth 2.0æ¿èªã¬ã¹ãã³ã¹ã«ã¯ã access_tokenãšid_tokenã® 2ã€ã®ãã©ã¡ãŒã¿ãŒãå«ãŸããŸãã id_tokenã®æ å ±ã¯ãšã³ã³ãŒãããã次ã®ãã£ãŒã«ããæã€JSONãªããžã§ã¯ããå«ãŸããŸãã
- audïŒèŽè¡ïŒ-å¿ é ãã£ãŒã«ãã ãã®id_tokenã察象ãšããã¯ã©ã€ã¢ã³ãèå¥åïŒclient_idïŒã
- expïŒçµäºïŒ-å¿ é ãã£ãŒã«ãã ãã®ããŒã¯ã³ãåãå ¥ããããªããªããŸã§ã®æéã
- sub-å¿ é ãã£ãŒã«ãã ãŠãŒã¶ãŒïŒãµããžã§ã¯ãïŒã«å¯ŸããŠããŒã«ã«ã«äžæã§ãããåå²ãåœãŠãããªãèå¥åã ããšãã°ãã24400320ããŸãã¯ãAitOawmwtWwcT0k51BayewNvutrJUqsvl6qs7A4ãã
- issïŒçºè¡è ïŒ-å¿ é ãã£ãŒã«ãã HTTPSã¢ãã¬ã¹ïŒçºè¡è ã®å®å šä¿®é£Ÿãã¹ãåã瀺ãURIãuser_idãšãšãã«ãã°ããŒãã«ã«äžæã§åå²ãåœãŠãããªãèå¥åãäœæããŸãã ããšãã°ãã https://aol.com ããã https://google.com ãããŸãã¯ã https://sakimura.org ãã
- ãã³ã¹ã¯å¿ é ãã£ãŒã«ãã§ãã ãªã¯ãšã¹ãã§éä¿¡ããããµãŒããŒã«ãã£ãŠèšå®ãããå€ã
id_tokenãã©ã¡ãŒã¿ãŒã¯ãUser-Agentã¹ããªãŒã ïŒãŸãã¯ä»ã®ä¿¡é Œã§ããªããã£ãã«ïŒãä»ããŠã¯ã©ã€ã¢ã³ããåä¿¡ããããŒã¿ãå€æŽãããŠããªãããšãä¿èšŒããç°¡åãªæ¹æ³ãæäŸããŸãã ãã©ã¡ãŒã¿ã¯ã以åã«é«ä¿¡é Œãã£ãã«ãä»ããŠéä¿¡ãããã¯ã©ã€ã¢ã³ãããŒã䜿çšããŠããµãŒããŒã«ãã£ãŠçœ²åãããŸãã ãã®ãšã³ã³ãŒãã¯ã JSON Web TokenãšåŒã°ããŸã ïŒ JWTã®æŠèŠãšãã©ããä»æ§ ïŒã ããšãã°ã次ã®ãããªè¡ããããŸãã
eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiYWRtaW4iOnRydWV9.TJVA95OrM7E2cBab30RMHrHDcEfxjoYZgeFONFh7HgQ
ãããã§åºåããã3ã€ã®éšåã§æ§æãããŠããŸãã
æåã®éšåã¯ããããŒïŒããããŒïŒã§ããããã¯Base64urlã«ãã£ãŠãšã³ã³ãŒããããã¢ã«ãŽãªãºã ãšããŒã¯ã³ã®ã¿ã€ããèšè¿°ããJSONãªããžã§ã¯ãã§ãïŒ
{ "alg": "HS256", "typ": "JWT" }
2çªç®ã®éšåã¯ãã€ããŒãã§ãããBase64urlã§ãšã³ã³ãŒããããJSONãªããžã§ã¯ãã§ããããŸãã
{ "sub": "1234567890", "name": "John Doe", "admin": true }
ãµãŒããŒã¯ã次ã®ããã«3çªç®ã®éšåãåãåããŸããã
__ (HS256) ( base64UrlEncode( ) + "." + base64UrlEncode( ), _ )
base64urlãšã³ã³ãŒãã£ã³ã°ã¯ã base64ãšã¯ç°ãªããä»ã®2ã€ã®æåã䜿çšããã€ã³ãã³ããå«ãŸãªãããšã«æ³šæããŠãã ããã
èš±å¯ãµãŒããŒã¯ããã®ãã¡ã€ã³å
ã§ã®ã¿ãŠãŒã¶ãŒIDã«é¢ãã確èªãçºè¡ããå¿
èŠããããŸãã ã¯ã©ã€ã¢ã³ãã¯ãaudãclient_idãšäžèŽããissãclient_idã®çºè¡è
ã®ãã¡ã€ã³ïŒãµããã¡ã€ã³ãå«ãïŒãšäžèŽããããšã確èªããå¿
èŠããããŸãã èš±å¯ãµãŒããŒã¯ãç¬èªã®ããŒã«ã«åå空éã管çããåuser_idã®ããŒã«ã«äžææ§ãšéåçŸæ§ïŒåå²ãåœãŠãªãïŒãæäŸããŸãã
ã¯ã©ã€ã¢ã³ãããŠãŒã¶ãŒIDãä¿åãããšããã¿ãã«ãuser_idããä¿åããå¿
èŠããããããŒã«ã«ã¹ãã¬ãŒãžã«ãããŸãã user_idãã©ã¡ãŒã¿ãŒã®é·ãã¯255 ASCIIæåãè¶
ããŠã¯ãªããŸããã
ããŒã¿ã®ä¿¡é Œæ§ãæ€èšŒããããã«ãã¯ã©ã€ã¢ã³ãã¯çœ²åãæ€èšŒã§ããŸãã ã¯ã©ã€ã¢ã³ãã眲åãæ€èšŒããªãå Žåããããæ€èšŒããããã«èå¥åæ€èšŒãã€ã³ããžã®HTTPèŠæ±ãè¡ãå¿
èŠããããŸãã -ãªã圌ãããããã¹ããªã®ãå°ãç解ã§ããªã
ãŠãŒã¶ãŒæ å ±ãžã®ã¢ã¯ã»ã¹ïŒãªãã·ã§ã³ïŒ
ãŠãŒã¶ãŒæ
å ±ã¯ãJSON圢åŒã®ããã¥ã¡ã³ããšããŠããŒã¯ã³ãšãšãã«è¿ãããéåžžã®OAuth 2.0ãªãœãŒã¹ã§ãã ã¯ã©ã€ã¢ã³ãã¯ããŠãŒã¶ãŒæ
å ±ãæäŸããããã«ã¢ãã¬ã¹ã§HTTPSãGETããªã¯ãšã¹ããäœæãããã©ã¡ãŒã¿ãšããŠããŒã¯ã³ãå«ããŸãã
å¿çã¯ã次ã®äºçŽæžã¿ããŒïŒjsonãªããžã§ã¯ãïŒã®äžéšïŒãŸãã¯ãã¹ãŠïŒãå«ãJSONãªããžã§ã¯ãã§ãã
- sub-ããšãã°ããAitOawmwtWwcT0k51BayewNvutrJUqsvl6qs7A4ãã
- profile-ãšã³ããŠãŒã¶ãŒãããã¡ã€ã«ããŒãžã®URL
- nameã¯ããŠãŒã¶ãŒã®è¡šç€ºåã§ãïŒäŸïŒãNat SakimuraãïŒã
- given_name-ããšãã°ããNatãã
- family_name-ããšãã°ããSakimuraãã
- ã¡ãŒã«-ããšãã°ããsakimura@example.comãã
- ç»å-ããšãã°ãã http://graph.facebook.com/sakimura/picture ãã
ãµãŒããŒã¯ãå¿ èŠã«å¿ããŠãäºçŽæžã¿ã®OpenID ConnectããŒãå€æŽãããŸã§ããã®å¿çã«è¿œå ã®ããŒã¿ïŒ ããŒã¿ãã«é£çµ¡å ãªã©ïŒãè¿œå ã§ããŸãã ïŒæ³šïŒããæ確ã«å®çŸ©ãããããŒããããŸãããç°¡æœã«ããããã«ããããã®èª¬æã¯çç¥ããŸããïŒ
ãªãŒããã³ã°ïŒãªãã·ã§ã³ïŒ
OpenID Connectã䜿çšããå Žåãäžè¬çãªãµãŒãã¹ãä»ããŠç»é²ããããã®ãã¿ã³ããŸãã¯ã¡ãŒã«ã¢ãã¬ã¹ãŸãã¯URLãå
¥åããããã®ããã¹ããã£ãŒã«ããã¯ã©ã€ã¢ã³ãã«ããå¯èœæ§ããããŸãã OpenID Connectã¯NASCARãçŽæ¥è§£æ±ºããŸãã
ïŒNASCARã®åé¡ã¯ããã°ã€ã³ããŠããWebãµã€ãã®ãã©ã³ãã®ãããžã®ããã·ã¥ããã·ã¥ã«éä¿¡ãããNASCARã¬ãŒã¹ã®ãã©ãã¯ã«ãŒã®ã¹ãã³ãµãŒåºåã®ãã°ã€ã³ããŒãžãšã¹ããã«ãŒã®ã³ã©ãŒãžã¥ã®é¡äŒŒæ§ã匷調ããŠããŸãïŒã
ã¯ã©ã€ã¢ã³ããéããŠç»é²ããæé ã®ç®çã¯ãæ¿èªãµãŒããŒã®ã¢ãã¬ã¹ãããŒã¯ã³çºè¡ãã€ã³ãã®çµäºã¢ãã¬ã¹ãã¯ã©ã€ã¢ã³ãIDãã¯ã©ã€ã¢ã³ãã·ãŒã¯ã¬ãããååŸãããŠãŒã¶ãŒããŒã¿APIãååŸããããšã§ãã ã¯ã©ã€ã¢ã³ãããµãŒããŒã«äºåç»é²ãããŠããå Žåããã®æ
å ±ã¯ãã§ã«ããã£ãŠããŸãã ããã§ãªãå Žåãã¯ã©ã€ã¢ã³ãã¯ãªãŒããã³ã°ãã§ãŒãºã䜿çšããŠããããååŸããå¿
èŠããããŸãã
ãŠãŒã¶ãŒãã¯ã©ã€ã¢ã³ãã®ãã¿ã³ãã¯ãªãã¯ããŠãµãŒããŒãéžæããŸãã ãã®å Žåãã¯ã©ã€ã¢ã³ãã®éçºè
ã¯åªå
ãµãŒããŒãéžæã§ãããããèªèšŒã¢ãã¬ã¹ïŒããã³ãå Žåã«ãã£ãŠã¯ãã®ä»ã®æ
å ±ïŒãæ¢ã«ææ¡ããŠããŸãã ã¯ã©ã€ã¢ã³ãã¯äºåç»é²ãããŠããå ŽåãšãããŠããªãå ŽåããããŸãã
å¥ã®ã±ãŒã¹ã§ã¯ããŠãŒã¶ãŒïŒãŸãã¯ãŠãŒã¶ãŒã«ä»£ãã£ãŠè¡åãããŠãŒã¶ãŒãšãŒãžã§ã³ãïŒãURLãŸãã¯é»åã¡ãŒã«ã¢ãã¬ã¹ãå
¥åããŸãã ãããè¡ãã«ã¯ãã¯ã©ã€ã¢ã³ãã¯ãã£ã¹ã«ããªãŒãå®è¡ããèš±å¯ãµãŒããŒURLãæå¹ãã©ãããå€å¥ããå¿
èŠããããŸãã æé ïŒ
- ãŠãŒã¶ãŒå ¥åãåæããŠããããé»åã¡ãŒã«ã¢ãã¬ã¹ãŸãã¯URLã§ãããã©ããã確èªããŸãã ãããã¡ãŒã«ã¢ãã¬ã¹ã®å ŽåãäœãããŸããã ã¹ããŒã ããªãå ŽåãHTTPSãããã³ã«ãæ³å®ããŸãã
- ããŸããŸãªéšåãåæ§ç¯ããŠãèå¥åã埩å
ããŸãã
äŸïŒ
https://joe.example.com- > https://joe.example.com/
example.com-> https://example.com/
joe@example.com-> joe@example.com - ãã¡ã€ã³ãæœåºãã TLS / SSLãä»ããŠWebFingerãåŒã³åºããŸãã
WebFingerã¯ãå®å šãªãã£ãã«ãä»ããŠæšæºã®HTTPã¡ãœããã䜿çšããŠãã€ã³ã¿ãŒãããäžã®äººã ãŸãã¯ä»ã®ãšã³ãã£ãã£ã«é¢ããæ å ±ãåä¿¡ããããã«äœ¿çšãããŸãã WebFingerã¯ãèŠæ±ããããšã³ãã£ãã£ãèšè¿°ããJSONãªããžã§ã¯ããè¿ããŸãã
GET /.well-known/webfinger?resource=acct%3Ajoe%40example.com&rel=http%3A%2F%2Fopenid.net%2Fspecs%2Fconnect%2F1.0%2Fissuer HTTP/1.1 Host: example.com HTTP/1.1 200 OK Content-Type: application/jrd+json { "subject": "acct:joe@example.com", "links": [{ "rel": "http://openid.net/specs/connect/1.0/issuer", "href": "https://server.example.com" }] }
- ç¹å®ã®URLãååŸããããã«ãã¯ã©ã€ã¢ã³ãã¯ã/.well-known/openid-configurationããçºè¡è
ã«è¿œå ãã次ã®ããã«TLS / SSLçµç±ã§çºè¡è
æ§æãã¡ã€ã«ãåãåããŸãã
GET /.well-known/openid-configuration HTTP/1.1 Host: server.example.com
å¿çã¯ããšã³ããã€ã³ãããã³ãã®ä»ã®æ
å ±ãå«ãJSONãªããžã§ã¯ãã§ãã
äŸïŒ
{ "authorization_endpoint": "https://server.example.com/connect/authorize", "issuer" : "https://server.example.com", "token_endpoint": "https://server.example.com/connect/token", "token_endpoint_auth_types_supported":["client_secret_basic", "private_key_jwt"], "userinfo_endpoint": "https://server.example.com/connect/user", "check_id_endpoint": "https://server.example.com/connect/check_id", "registration_endpoint": "https://server.example.com/connect/register" }
æªç»é²ã®é¡§å®¢ãšåçç»é²ïŒãªãã·ã§ã³ïŒ
䜿çšãããŠãããã£ã¹ã«ããªã¡ã«ããºã ã«é¢ä¿ãªããã¯ã©ã€ã¢ã³ãã¯ãµãŒããŒã«ç»é²ãããŠããå Žåãšç»é²ãããŠããªãå ŽåããããŸãã ãµãŒããŒã¯ãã¯ã©ã€ã¢ã³ããäºåã«ç»é²ãããŠããïŒãµãŒãã¹å©çšèŠçŽãžã®åæãæå³ããïŒããã¯ã©ã€ã¢ã³ããåçç»é²ã䜿çšãããã«å¿ããŠãã¯ã©ã€ã¢ã³ããåä¿¡ã§ããæ
å ±ã«ç°ãªãå¶éãèšå®ã§ããŸãã
ã¯ã©ã€ã¢ã³ãã«æå¹ãªã¯ã©ã€ã¢ã³ãèå¥åãšããŒããªãå ŽåãPOSTèŠæ±ã®æ¬æã«JSON圢åŒã§ãªã¹ããããèŠæ±ãã©ã¡ãŒã¿ãŒã䜿çšããŠããµãŒããŒç»é²ã¢ãã¬ã¹ïŒãªãŒããã³ã°ãåç
§ïŒã«å¯ŸããŠæ¬¡ã®HTTPS POSTèŠæ±ãè¡ãããšãã§ããŸãïŒredirect_uris-OpenIDå¿çãåä¿¡ããããã®URLã¢ãã¬ã¹ã®é
åã
äŸïŒ
POST /connect/register HTTP/1.1 Content-Type: application/json Accept: application/json Host: server.example.com { "redirect_uris": ["https://client.example.org/callback", "https://client.example.org/callback2"] }
ãµãŒããŒã¯ããªã¯ãšã¹ãã«å¿çããåã«ãã³ãŒã«ããã¯URLããã®OpenIDã¹ããªãŒã ã®å€éšã«ç»é²ãããŠãããã©ããã確èªããå¿
èŠããããŸãã ãã®å ŽåããµãŒããŒã¯ãšã©ãŒãžã®å¿çãšããŠæ
å ±ãéä¿¡ããŸãã ãµãŒããŒã¯ãéä¿¡ãããredirect_uriãåçç»é²èŠæ±äžã«ã¯ã©ã€ã¢ã³ãã®éçºè
ã«ãã£ãŠäºåç»é²ãããŠããå Žåã«ããã®ãããªã±ãŒã¹ãåŠçããããªã·ãŒãéçºããå¿
èŠããããŸãã ãã®ãããªåäœã¯ãããšãã°ããããã®redirect_uriã䜿çšããåçç»é²ã®æ°ãããªã¯ãšã¹ãããšã©ãŒã«ã€ãªããããšãæå³ããå ŽåããããŸãããæ¢ã«å®è£
ãããŠããåçç»é²ã䜿çšãããªã¯ãšã¹ãã¯ãå€ããªããŸã§æ©èœãç¶ããŸã
åçãªé¢é£ä»ããæäŸããããã«ããµãŒããŒã«ã¯æ¬¡ã®JSONå¿çãã©ã¡ãŒã¿ãŒãå«ãŸããŸãã
- client_id-ã¯ã©ã€ã¢ã³ãèå¥åã ãã®å€ã¯ããµãŒããŒãžã®èŠæ±ã«å¯Ÿããå¿çããšã«å€ããå ŽåããããŸãã
- client_secret-ã¯ã©ã€ã¢ã³ãããŒã åçããšã«ééããªãå€åããŸãã
- expires_at-1970-01-01T0ããã®ç§æ°ïŒ0ïŒ0ããclient_idããã³client_secretãæéåãã«ãªããŸã§UTCãŸãã¯å¶éã®æ³ä»€ããªãå Žåã¯0
- registration_client_uri-ãã®ç»é²ããŒã¿ã管çããããã®URIã
- registration_access_token-registration_client_uriãžã®ã¢ã¯ã»ã¹ã«äœ¿çšãããããŒã¯ã³ã
ã¯ã©ã€ã¢ã³ãã¯ããµãŒããŒããŒã¯ã³ã䜿çšããããã«åçç»é²ããŒã¿ãä¿åããå¿
èŠããããŸãã åçç»é²ããšã«ãã¯ã©ã€ã¢ã³ãã¯ãã¯ã©ã€ã¢ã³ãèå¥åãã¯ã©ã€ã¢ã³ãããŒãæå¹æéããŠãŒã¶ãŒURLããµããŒããããŠããã¹ããªãŒã ãããã³ãŠãŒã¶ãŒæ
å ±APIãä¿åããå¿
èŠããããŸãã çµäºæéã¯ã絶察æéãšããŠä¿åããããç»é²ãæ°žé ã«ç¶ãããšãããŒã¯ããå¿
èŠããããŸãã
ã芧ã®ãšãããOpenID Connect Webã¯ã©ã€ã¢ã³ãã®åºæ¬çãªããã»ã¹ã¯éåžžã«ã·ã³ãã«ã§ãæåã«ææ¡ãããããã»ã¹ãšåããããç°¡åã§ãã åæã«ãè¿œå ã®æ©èœã䜿çšã§ããŸããããšãã°ãããã©ã«ãã®ã»ããã§ã¯ãªããç¹å®ã®ããŒã¿ã»ãããèŠæ±ããŸãã ãããã®è¿œå æ©èœã¯ãå¿
èŠãªãšãã«äœ¿çšã§ããå€æ°ã®OpenIDãããã€ããŒã䜿çšããŠããã客æ§ã«ãšã£ãŠãåçŽãªå¯Ÿè©±ã倧ããªåé¡ã«å€ããããšã¯ãããŸããã