æå¹æéãåãããŠãŒã¶ãŒ ã¢ã¯ã»ã¹ ããŒã¯ã³ã«ã€ããŠ
ã¡ã¢
æå¹æéãåãããŠãŒã¶ãŒ ã¢ã¯ã»ã¹ ããŒã¯ã³ã¯çŸåšãªãã·ã§ã³ã®æ©èœã§ããã倿Žãããå¯èœæ§ããããŸãã 詳现ã«ã€ããŠã¯ããGitHub App ã®ãŠãŒã¶ãŒãããµãŒããŒãžã®ã¢ã¯ã»ã¹ããŒã¯ã³ã®æéåãããåç §ããŠãã ããã
宿çãªããŒã¯ã³ã®ããŒããŒã·ã§ã³ã匷å¶ãã䟵害ãããããŒã¯ã³ã®åœ±é¿ãæããããã«ãæå¹æéãåãããŠãŒã¶ãŒ ã¢ã¯ã»ã¹ ããŒã¯ã³ãå©çšããããã« GitHub App ãèšå®ã§ããŸãã æå¹æéãåãããŠãŒã¶ãŒ ã¢ã¯ã»ã¹ ããŒã¯ã³ãã¢ããªã§äœ¿çšããå ŽåããŠãŒã¶ãŒ ã¢ã¯ã»ã¹ ããŒã¯ã³ãçæãããšãã«æŽæ°ããŒã¯ã³ãåãåããŸãã ãŠãŒã¶ãŒ ã¢ã¯ã»ã¹ ããŒã¯ã³ã¯ 8 æéåŸã«æéãåããæŽæ°ããŒã¯ã³ã¯ 6 ãæåŸã«æéãåããŸãã 詳ããã¯ããGitHub ã¢ããªã®ãŠãŒã¶ãŒ ã¢ã¯ã»ã¹ ããŒã¯ã³ã®çæããã芧ãã ããã
æŽæ°ããŒã¯ã³ã䜿çšããŠãæ°ãããŠãŒã¶ãŒ ã¢ã¯ã»ã¹ ããŒã¯ã³ãšæ°ããæŽæ°ããŒã¯ã³ãçæã§ããŸãã æŽæ°ããŒã¯ã³ã䜿çšãããšããã®æŽæ°ããŒã¯ã³ãšä»¥åã®ãŠãŒã¶ãŒ ã¢ã¯ã»ã¹ ããŒã¯ã³ã¯æ©èœããªããªããŸãã
æŽæ°ããŒã¯ã³ã䜿çšããåã«ãã®æå¹æéãåããå Žåã¯ãWeb ã¢ããªã±ãŒã·ã§ã³ ãããŒãŸãã¯ããã€ã¹ ãããŒãä»ããŠãŠãŒã¶ãŒãéä¿¡ããããšã§ããŠãŒã¶ãŒ ã¢ã¯ã»ã¹ ããŒã¯ã³ãšæŽæ°ããŒã¯ã³ãåçæã§ããŸãã 詳ããã¯ããGitHub ã¢ããªã®ãŠãŒã¶ãŒ ã¢ã¯ã»ã¹ ããŒã¯ã³ã®çæããã芧ãã ããã
æå¹æéãåãããŠãŒã¶ãŒ ã¢ã¯ã»ã¹ ããŒã¯ã³ã䜿çšããããã«ã¢ããªãæ§æãã
ã¢ããªãäœæãããšããªããã¢ãŠãããªãéãããŠãŒã¶ãŒ ã¢ã¯ã»ã¹ ããŒã¯ã³ã®æå¹æéãæå¹ã«ãªããŸãã詳ããã¯ããGitHub App ã®ç»é²ããã芧ãã ããã ãã®èšå®ã¯ãã¢ããªã®äœæåŸã«æ§æããããšãã§ããŸãã
-
GitHub ã®ä»»æã®ããŒãžã®å³äžé ã«ãããèªåã®ãããã£ãŒã«åçãã¯ãªãã¯ããŸãã
-
ã¢ã«ãŠã³ãèšå®ã«ã¢ã¯ã»ã¹ããŠãã ããã
- å人çšã¢ã«ãŠã³ããææããã¢ããªã®å Žåã¯ã[èšå®] ãã¯ãªãã¯ããŸãã
- çµç¹ãææããã¢ããªã®å Žå:
- [èªåã®çµç¹] ãã¯ãªãã¯ããŸãã
- çµç¹ã®å³åŽã«ãã [èšå®] ãã¯ãªãã¯ããŸãã
- Enterprise ãææããã¢ããªã®å Žå:
- Enterprise Managed Users ã䜿çšããå Žåã¯ã[Enterprise] ãã¯ãªãã¯ã㊠Enterprise ã¢ã«ãŠã³ãã®èšå®ã«ç§»åããŸãã
- å人çšã¢ã«ãŠã³ãã䜿çšããå Žåã¯ã[Enterprise] ãã¯ãªãã¯ããŠãããEnterprise ã®å³åŽã«ãã [èšå®] ãã¯ãªãã¯ããŸãã
-
GitHub App èšå®ã«ã¢ã¯ã»ã¹ããŠãã ããã
- å人çšã¢ã«ãŠã³ããŸãã¯çµç¹ãææããã¢ããªã®å Žå:
- å·ŠåŽã®ãµã€ãããŒã§ã[ Developer settings] ãã¯ãªãã¯ããŠããã[GitHub Apps] ãã¯ãªãã¯ããŸãã
- Enterprise ãææããã¢ããªã®å Žå:
- å·ŠåŽã®ãµã€ãããŒã§ã [èšå®] ãã GitHub Apps ãã¯ãªãã¯ããŸãã
- å人çšã¢ã«ãŠã³ããŸãã¯çµç¹ãææããã¢ããªã®å Žå:
-
倿Žãã GitHub App ã®æšªã§ [ç·šé] ãéžæããŸãã
-
GitHub Apps èšå®ãµã€ãããŒã§ã [ãªãã·ã§ã³æ©èœ] ãéžæããŸãã
-
[ãŠãŒã¶ãŒãããµãŒããŒãžã®ããŒã¯ã³ã®æéåã] ã®æšªã«ãã [ãªããã€ã³] ãŸã㯠[ãªããã¢ãŠã] ãã¯ãªãã¯ããŸãããã®èšå®ãé©çšããããŸã§ãæ°ç§ãããããšããããŸãã
GitHub ã§ã¯ãã»ãã¥ãªãã£ã匷åããããã«ãã®æ©èœããªããã€ã³ããããšããå§ãããŸãã
æ¢ã«ãŠãŒã¶ãŒ ã¢ã¯ã»ã¹ ããŒã¯ã³ãçæããåŸã«ãæå¹æéãåãããŠãŒã¶ãŒ ã¢ã¯ã»ã¹ ããŒã¯ã³ããªããã€ã³ããå Žåã以åã«çæããããŠãŒã¶ãŒ ã¢ã¯ã»ã¹ ããŒã¯ã³ã®æéã¯åããªããªããŸãã DELETE /applications/CLIENT_ID/token ãšã³ããã€ã³ãã䜿çšããŠããããã®ããŒã¯ã³ãåé€ã§ããŸãã 詳ããã¯ããOAuth æ¿èªçš REST API ãšã³ããã€ã³ãããã芧ãã ããã
æŽæ°ããŒã¯ã³ã䜿çšããŠãŠãŒã¶ãŒ ã¢ã¯ã»ã¹ ããŒã¯ã³ãæŽæ°ãã
-
次ã®ã¯ãšãª ãã©ã¡ãŒã¿ãŒã䜿çšããŠãURL
https://github.com/login/oauth/access_tokenã«å¯ŸããŠPOSTèŠæ±ãè¡ããŸããQuery parameter (ã¯ãšãª ãã©ã¡ãŒã¿ãŒ) Type 説æ client_idstringå¿ é ã GitHub App ã®ã¯ã©ã€ã¢ã³ã IDã ã¯ã©ã€ã¢ã³ã ID ã¯ãã¢ã㪠ID ãšã¯ç°ãªããŸãã ã¯ã©ã€ã¢ã³ã ID ã¯ãã¢ããªã®èšå®ããŒãžã§ç¢ºèªã§ããŸãã client_secretstringå¿ é ãŠãŒã¶ãŒ ã¢ã¯ã»ã¹ ããŒã¯ã³ãããã€ã¹ ãããŒã䜿çšããŠçæãããå Žåãé€ããŸãã GitHub App ã®ã¯ã©ã€ã¢ã³ãã·ãŒã¯ã¬ããã grant_typestringå¿ é ã å€ã¯ "refresh_token" ã§ããå¿ èŠããããŸãã refresh_tokenstringå¿ é ã ãŠãŒã¶ãŒ ã¢ã¯ã»ã¹ ããŒã¯ã³ãçæãããšãã«åãåã£ãæŽæ°ããŒã¯ã³ã -
GitHub ãããæ¬¡ã®ãã©ã¡ãŒã¿ãŒãå«ãå¿çãæäŸãããŸãã
å¿çãã©ã¡ãŒã¿ãŒ Type 説æ access_tokenstringãŠãŒã¶ãŒ ã¢ã¯ã»ã¹ ããŒã¯ã³ã ããŒã¯ã³ã¯ ghu_ã§å§ãŸããŸããexpires_inintegeraccess_tokenã®æå¹æéãåãããŸã§ã®ç§æ°ã ãŠãŒã¶ãŒ ã¢ã¯ã»ã¹ ããŒã¯ã³ã®æå¹æéãç¡å¹ã«ããå Žåããã®ãã©ã¡ãŒã¿ãŒã¯çç¥ãããŸãã å€ã¯åžžã«28800(8 æé) ã«ãªããŸããrefresh_tokenstringæŽæ°ããŒã¯ã³ã ãŠãŒã¶ãŒ ã¢ã¯ã»ã¹ ããŒã¯ã³ã®æå¹æéãç¡å¹ã«ããå Žåããã®ãã©ã¡ãŒã¿ãŒã¯çç¥ãããŸãã ããŒã¯ã³ã¯ ghr_ã§å§ãŸããŸããrefresh_token_expires_inintegerrefresh_tokenã®æå¹æéãåãããŸã§ã®ç§æ°ã ãŠãŒã¶ãŒ ã¢ã¯ã»ã¹ ããŒã¯ã³ã®æå¹æéãç¡å¹ã«ããå Žåããã®ãã©ã¡ãŒã¿ãŒã¯çç¥ãããŸãã å€ã¯åžžã«15897600(6 ãæ) ã«ãªããŸããscopestringããŒã¯ã³ã®ã¹ã³ãŒãã ãã®å€ã¯åžžã«ç©ºã®æååã«ãªããŸãã åŸæ¥ã® OAuth ããŒã¯ã³ãšã¯ç°ãªãããŠãŒã¶ãŒ ã¢ã¯ã»ã¹ ããŒã¯ã³ã¯ãã¢ããªãšãŠãŒã¶ãŒã®äž¡æ¹ãæã€ã¢ã¯ã»ã¹èš±å¯ã«å¶éãããŸãã token_typestringããŒã¯ã³ã®çš®é¡ã å€ã¯åžžã« bearerã«ãªããŸãã