ááľáłááť. áľáááOAuth áĽá OIDC (OpenID Connect) á ááá áĽá ááá˝ á áá ááááľ áĽáá´áľ áĽáá°áá አáá á¨áŚááł áłáá ááŁáĽá áŤáĽáŤáŤáᢠáá áĽáááľ á¨ááá˝ á áááááśá˝ áá ááľáĽáŤá ááἠááááááĄáľ ááá˘áá˝áŁ á¨áľáááľ á áľá°áłáłáŞáá˝ áĽá ááłáá á¨áľá áá°áá áŞáŤáá˝ "áá°á á á°á áááá˝" áĽááłá á áá ááááá˘
á áľááá á áááá¨áĽ ááá á á áááááśá˝ ááŤá¨á áá¨áá áááŤáľ ááá áá áᢠá ááá á¨áĽááľáá ááá˘áŤ áĽá á¨ááá áá á¨á ááą á áááááľ áá° áá á°áĽá°ááᣠá áá á áá° áááŤá á áľááĽáś á¨áááááá áááááá áá¨á á°ááĽááá˘
"á¨áŁáá ááłáĽá
á áľá á" á ááá áá áĽá á áááἠááá ááá áááŤá áĽáá°ááá áá áĽáááŁááᢠ፠ááá ᣠááá áá! â *á á*
á áľááŞ! ááá á°á ááá á¨á°á áá áľá áĽá á¨ááá áá áĽáá˛áŤá፠áá áá á áááŁáᢠááľááááśá˝, á¨áá á áááááľ áá. á¨áá á áááááľ á áľá°ááᣠáŤáá áľáá áľ á¨áá¨ááá á°á áááľ ááá á á áĽá á¨á áľáááá á áá á°á¨á᪠á¨áá áá¨ááá˝á áĽáá°ááá°á áľáĽ ááá ááľáľá á¨áá. ááááŁáľ áĽáĽáľ áááľá áá˝ááᣠáá á ááłááľ áá°áá áŞáŤáá˝ á ááá áá áá á á°áŤá áá ááá!
áᏠá ááľ á áááááľ á¨áááá áá¨á á°á áááą á á°á á á áááł áĽáá˛á áá á¨ááŤáľá˝á á ááľ áá á ááľáááľ á áᢠá ááŤáłáá áááł, áĽáá°áá á áááľ á°á¨ááá˝ áĽá áááľá áĽá áááľá áá ááá, áá á áááá¤áŤá¸áá áŤááłáľá áá. á¨áá á˝áá ááá ááá ááłááá˝á á áá áá áĽáá´áľ áĽáá°áá አáááĽáŤáŤáľ áá (áĽáááź á¨ááá˝á áľááľá áááľáá? áŚá!)
á áááŤá˝á áá áá áááŞáŤ á áŞá˛áŽ á áá¸áľá áááááĄ-
ááĄáŤáľá ááĄáŤáᣠáĽááłá á°á á ááŁá˝áᥠOAuth 2.0
áá áĽááľ áŤá áᣠâá¨áá á¨áááłá°á ááâ á¨ááŁá áŁá˘áŤ á ááá°áá áĽáá áᢠ[á¨áĽááą á áľá᪠áááá] áĽá á á´ááá áá á á˝áá áááĽááľ ááá á á¨áá á áŁáśá˝á áááá á á áĽáą áá áááááἠáá°á. áŁá˘áŤáá á áĽáááľ ááľá°ááłáᣠáĽá á¨ááá áá°áá˝á áá ááááŤáľ ááľáááᢠá°ááá ááá á°á á áľá¸áŤá ááááŽá˝á áááłáᢠá áá°á?
âá¨áĽááą ááĽá á ááŁáᥠá¨ááášá á¨á°áááľ ááá áľáá áá á°á á°ááˇá? á áá áĽáą áá áá áľááá áá! â (áááłá áľáááᣠááááŤáąá ááá á¨áŤáą á¨áá áĽá
áľ á áá - approx. transl.)
á¨áĽáá ፠áááá ááľáĽ ááĽáŤááłááą á°á ááťá á ááŤá áĽááłááá ááá˝ áá. áĽá áĽáá° áĽá áľáá˝ á¨ááá á ááľááá áľáŤá áááľáááľ áááááá áĽááá áľááłáá ᢠáĽáá° áĽáľá ááᣠá¨áá á áľááŞá áá áááá áá°áá˝áá á áŤáą ááá á áá˝áá! áá áá áááľá¨á á¨áĽáááŤáá˝áá á˘áá ááłá¨áť ááááľ áĽáť áŤáľáááááłá - áŁá˘áŤá áŤáą ááĽáŁáá˝á áááŤá¸áá (á¨OAuth á áá˝)!
"ááá á°á á
áŁáśá˝á áááłá! - á áľááľáá ááĽá°áá? "á¨áá áá áľá
ᨠáá˝ á áľáŤáťá
á áĽáá˛á°ááľ ááááľ áľááááá
? - á áá°áááá! á¨á áá áááŽáŁ áááłáááľ áá á á¨áá á áľáłáážá˝á áĽáááŤááᣠáĽáľá¨ áá ááťá! á áá° ááἠáá°á áá
!"
- á¨á˘áá á áááááľáá ááá¨áĄá˘
- á áľááá á¨áá áá° á¨ááľáł áŁá˘áŤá áááą áĽá áá° áááŤá áááĄá˘
- áĽáááŤáá˝áá áĽáá˛á°ááľá áľ ááá á áľá᪠á áŁáľá ááľáĄá˘
- áá° áá áŁá˘áŤá á áľááŞá áá á°áááľá˘
ááłáĽáá á¨áá¨áŠáŁ OAuthá á¨áá áá áá°áá áŞáŤáá˝ ááłá¨áťá á¨ááťá áá´á áá°áŁáᢠá áá´ á¨á áá á áá áĽáááŤáá˝á ᨠTerrible Pun of the day áá áááŤáľ áĽáá°ááááá á¨áá°á áá° á¨ááľáł áŁá˘áŤá áááą áĽá á¨áĽááá° ááĽáĄá á¨á°áááą áááá¨áťáá˝ áááá ááľáĽ áŤáľáááąáľá˘
á¨OAuth áá°áľ
á á°áááś á¨áá áŤáá á ááááᢠáá°áľ [áá°áľ] OAuth á áĽá ááłá, áá áá°áľ á¨ááłáŠ á°á¨ááá˝á, áĽáá˛áá á ááŤáł á¨áááłáŠ á°á¨ááá˝á áŤáŤáľáłá, á áá ááľáĽ áááľ á áááááśá˝ á á áľá°ááá á¨áá¨á áááἠáá ááľááá. á¨áá°á á áľááŞá á¨áá ááłá á áŁá á¨á°ááá°áá á¨OAuth 2.0 áá°áľá áá áááᣠá¨"áááľ áŽáľ" áá°áľá˘ ["á¨áááľ áŽáľ" áá°áľ].
OAuth áĽáá´áľ áĽáá°áá°áŤ áá° ááááŽá˝ á¨áááŁáłá˝á á ááľáŁ áľá á ááłááľ áááľ áľááá áĽááááááĄ-
- á¨ááĽá¨áľ áŁáá¤áľ:
á áá° áá ! ááľááááśá˝áᣠáááŚá˝á áĽá á áááŤáá˝á áá áá°á¨á á¨áá˝ááľá áááá áĽáá áľáá´áá˝ á áŁáá¤áľááľ áááŁá áŤáᢠ- á°áá á:
á áááŹá˝á (áááłáᣠThe Terrible Pun of the Day á áááááľ) á¨á°áá°á áĽááááá˝á áááááľ ááá ááá¨ááá á¨áááá á¨ááĽá¨áľ áŁáá¤áľ"á . - á¨áááľ á áááá:
á¨ááŤááá áá°áá áŞáŤ á¨ááĽá¨áľ áŁáá¤áľ'á áĽá á á¨áľáá አá¨ááĽá¨áľ áŁáá¤áľá áľááľá áá፠á áá ᢠ- á¨ááĽá¨áľ á áááá:
á¨áá°áá áŞáŤ ááŽááŤááá á áááá˝ (á¤áá á) ááá á áááááľ á°áá á ááá áá áá ááááá á¨ááĽá¨áľ áŁáá¤áľ"á . - URI á áá:
፠á ááá á¨áááľ á áááá á á áŁáŤ ááááŤáᢠá¨ááĽá¨áľ áŁáá¤áľáĽá áááľ á¨á°á á áá á°áá á"á . á ááłááľ áá "á¨áááś áá°áá URL" á°áĽá áá áŤá. - á¨ááá˝ á áááľ:
áĽáá°áá°áá°á á¨áá á áá á¨áá¨á á áááľ á°áá á. á áŁá á¨á°ááá°á á¨ááá˝ á áááľ'áŚá á áŽáľ áá ᣠáááľá á°áá á ááá áá áá áĽáá á¨áááľ áŽáľ. - á áľááľ:
áá á¨áááááľá áááśá˝ áááá ááá፠ááᢠá°áá áyᣠáĽáá° ááἠááľá¨áľ ááá á¨á°áá°á áĽááááá˝á áá¨áááᢠ- ááľáááľ:
á¨áááľ á áááá áááľáłá áá°áá á¨á á°áá á'áĽáá áá ááá á¨ááĽá¨áľ áŁáá¤áľá, ááá á¨áĽ ááá áá á°áá áá°áá˘á áááśá˝ á áááľá˘ - á¨á°áá á ááłáááŤ:
áá ááłáá፠áááá¨áľ áĽá á áá áááá á°áá á' áá á¨áááľ á ááááá˘. - á¨á°áá á ááľá˘á:
áá á¨ááłááá á¨ááá áá áĽáť ááᢠá°áá áá áá° áĽá á¨áááľ á áááá"á . áá¨áá á áá áĽáá˛áŤáŤáá áŤáľá˝áá¸ááᢠ- á¨áááľ áŽáľ:
á¨á áá áá áááł áŤáá áááŤá áŽáľáŁ áá á á°áá á áá°áŁá á¨áááľ á ááááá áá°áŤáľ ááľáá°áŤ áľá¨áľá áľ. - ááľáá°áŤ áľá¨áľá áľ:
á°áá áá ááááááľ á¨áá ááá áľ ááá á¨ááĽá¨áľ á áááá'áŚ. á¨ááŤááἠááááľ áŁá ááá á¨ááá áŤááľ á°áá á"ááἠááá á¨á ááá áĽááááá˝á ááá¨ááá áááľ á áá á¨ááĽá¨áľ á ááááá á áá° áľáá˘
á ááá¨á°á ááłááľ áá áááľ á áááá áĽá áŞáśááľ á áááá á ááľ á áááľ á áááá áá¸áᢠáááᣠá á ááłááľ áááłáá˝áŁ áĽááá á¨á ááľ áľáá áľ á áŁá áŁáááá á¨á°ááŤáŠ á ááááŽá˝ ááá áá˝ááᢠáááłáᣠáááľ á áááአá ááĽá¨áľ á áááአá¨ááłáá á¨áśáľá°á ááá á áááááľ ááá áá˝ááá˘
á áá á¨OAuth 2.0 áá á áá° ááłáŚá˝á á¨á¸áááᣠáá° ááłáá á˝á áĽááááľ áĽá á OAuth áá°áľ ááľáĽ áá áĽáá°ááá á á áá áĽáá áĽááá˘
- á áá°, á¨ááĽá¨áľ áŁáá¤áľáŁ á¨ááá á áľá᪠áá á áááááľ ááľá áľ ááááá (á°áá áy) áááá áá°áá˝á ááĽáŁ ááá áĽáá˛á˝á áá° áĽáááŤáá˝á ááľá¨áľá˘
- á°áá á á áłášá áá° ááš áŤááŤáᢠá¨áááľ á ááááa áĽá á áĽáŤá ááľáĽ áŤáŤáľáą á¨á°áá á ááłáááŤ, URI á áá, á¨ááá˝ á áááľ áĽá á ááľ ááá á¨á፠á áá áá°á (áááśá˝) áŤáľááááá.
- á¨áááľ á áááá á áľááá á¨áá á¨á°á áá áľá áĽá á¨ááá áá á áá á¨á áŤá¨áááŁáá˘
- á¨áááľ á áááá á á˝ áŤáłáŤá ááľáááľ (áá¨áááŤáá˝) á¨ááá áááá áá áá°áá á¨á á°áá á'áŚ. á°áľááá°áá ááá áĽáᢠáááľá ááá˘
- á¨áááľ á áááá áá° áŁá˘áŤá áááŤááłá á°áá áá ᣠá áá áá URI á áá á ááľ áá á¨áááľ áŽáľ (á¨áááľ áŽáľ)á˘
- á°áá á áá á ááĽáł áááááᢠá¨áááľ á áááááŚá (á áłášá á ááá á¨ááĽá¨áľ áŁáá¤áľá) áĽá á á°á á áááŤá á¨á°áá á ááłáááŤ, á¨á°áá á ááľá˘á и á¨áááľ áŽáľ.
- á¨áááľ á áááá áááĄá áááľáťá áĽá ááá˝ áá°áŁá ááľáá°áŤ áľá¨áľá áľ'om (á¨ááłá¨áť ááľáá°áŤ)á˘
- á áá á°áá á áá áá áá˝ááᢠááľáá°áŤ áľá¨áľá áľ áĽáŤá áááá á¨ááĽá¨áľ á áááá á¨áĽáááŤáá˝ áááá áááááľ.
á¨á°áá á ááłáá፠áĽá ááľá˘á
á¨áĽááą á áľá᪠áĽáááŤáá˝áá áĽáá˛á°ááľ á¨ááááą á¨á¨á á áá á ááľ á°áá áá áĽá áááł á áááአá¨áľáŤ áááááľ ááĽáŻáᢠá¨áááľ á áááአá¨á°áá á ááłáá፠áĽá á¨á°áá á ááľáĽá á ááᨠ(á ááłááľ áá ááŁáá á¨áá°áá áŞáŤ ááłáá፠и á¨áá°áá áŞáŤ ááľáĽá) áĽá á OAuth ááľáĽ áá áá ááľá°ááĽá áá° á°áá áá ááŤá¸áá˘
"- áá! á¨áĽááľá áá ááĽáŤáľ áĽááááá! - á áĽáááĽ, á˝áá á áá°áá! á¨á°áá á ááłáááŤá áĽá ááľáĽáŤáá áĽáá!â
áľá á¨ááŤáááá°á á¨á°áá á áĽá á¨áááľ á áááአáĽáť áĽáá˛áŤááá á¨á°áá á ááľáĽá á ááľáĽá ááŤá áĽááłáá áľ ááᢠá¨ááá á áá á¨áááľ á áááአá¨á°áá ááá áĽáááľ á¨ááŤá¨ááá á á áĽáą áĽááłáł ááá˘
áá ፠áĽáť á áá°áá...áĽáŁáá áĽááłá á°á á áᥠOpenID Connect!
OAuth 2.0 á¨á°áá°áá á áĽáť ááᢠáááľ ááľá áľ - á¨á ááľ áá°áá áŞáŤ áá° áá á¨ááἠáĽá á°ááŁáŤáľ ááłá¨áť ááá
á¨áĽ.
OpenID Connect á ááľ áá á ááá˘áŤ á á ááŤáł áá°áá áŞáŤáá˝ ááľáĽ áĽá á áá á¨ááááŁá¸áá áááłáá˝á áĽáá˛á°ááĽáŠ ááá áľáááłá - áá á áŤááľ á ááŁáá ááłááá áá á ááá˘áŤ (á¤áľá¤áľáŚ) áááłáᣠá áááŹá˝á áĽáá° ááľáĄá ááá áľáá°á áŤá áá á áŤá á ááłá¨ áá¨áŚá˝ áá á¨á¤áľá¤áľáŚ áá á°áľá áá°áá áá˝ááᣠáá á á°á áááá˝ áá°á áĽáá áŤáá¸áá áĽá ááá áá á¨ááááĄáľá áá፠áĽáá˛á áá áŤáľá˝áá¸ááá˘
á¨áá°áľ (áá°áľ) áááľ ááłáá፠áááááľ á OAuth áááł áá á°ááłáłá áááľááᢠáĽá¸áá ááŠááľ á áá áĽáŤá ááľáĽ, áĽá
á áá á¨ááá á¨á°áá°á áá°á áá openid
, - ᤠá°áá á á áá¨á¨áťá áĽáá° áááá ááľáá°áŤ áľá¨áľá áľ, áĽá ááłáá፠ááľáá°áŤ.
áá áĽáá° OAuth áá°áľáŁ ááľáá°áŤ áľá¨áľá áľ á OpenID Connect ááľáĽ áá
ááá˝ áŤááá á¨á°áá°á áĽá´áľ ááᢠá°áá á' á . á¨áĽááł á ááá á°áá á"á ááľáá°áŤ áľá¨áľá áľ á¨áĽáŤááłááą áĽáŤá áá á¨áá°ááá á¨ááááá˝ ááĽá¨áááá ááááá á¨ááĽá¨áľ á áááá'yᣠáá
á ááľáá°áŤá áľááá áááá á¨áááľááᢠááłáá፠ááľáá°áŤ áášá á¨á°áᨠáááá ááááá.
ááłáá፠ááľáá°áŤ JWT ááá˘
ááłáá፠ááľáá°áŤ JSON Web Token ááá JWT á ááŁá á¨ááłáá á áአáááł á¨á°áá¨á¸ á¨ááááá˝ ááĽá¨ááá ááᢠ(á ááłááľ áá JWT áśá¨áá˝ áĽáá° âááľáľâ ááŁáá). ááá áłáá˘áá˝áŁ JWT ááá¨áłáľ á¨áááťá á ἠáááľá áá˝ááᣠáá á°áá á áĽáá° ááłáááŤáŁ á¨á°á áá áľáᣠá¨ááá˘áŤ á°ááľáŁ á¨á áááááľ ááĽá፠áá á¨ááłá°á á¨á°ááŤáŠ áá¨ááá˝á á¨JWT áááŁáľ áá˝ááᢠááłáá፠ááľáá°áŤáᣠá JWT áá áŁáá ááááŁáľ áá¨áŤáá˝ áááŤá¸áᢠá ááľáĽ áŤáá ááἠááłáá፠ááľáá°áŤâšá á°á áá°ááᢠáá°áá áŞáŤáá˝ [á¨áááŁáá áĽáŤááá˝].
á áŚá
á´áľ ááłá áá áá°á á á¨áá ááááľá á áᢠá°áá á áľá ááá°áĄ á°á¨á᪠áá¨á áá áá
áá˝áá [ááááľ] ĐžŃ á¨áááľ á áááá"áᣠáááłáᣠá áá áá á¨á˘áá á áľáŤáť ááľáá°áŤ áľá¨áľá áľ.
áľá OAuth áĽá OIDC á¨á áá ááá
áľááá ᣠOAuth áĽá OIDC áĽáá´áľ áĽáá°áá አá á áአááááááᢠá áĽáááľ ááááá ááá áááľ? áľá OAuth 2.0 áĽá OpenID Connect á¨á áá áááá áĽáá˛á¨áłá á°á¨á᪠ááĽááśá˝ áĽáááááĄ
-
áá OAuth áááľá áá? -
ááá áľá OAuth ááá OpenID Connect ááľ á¨ááá -
á¨OAuth 2.0 á¨áááł áŽáľ á¨PKCE áá°áľ áá áá°ááĽáŠ -
ᨠOAuth 2.0 á¨áľáŚáł á áááľ áááľá áá? -
OAuth 2.0 á¨áľáĽáá ááľáá -
á¨SQL á áááá áá á°á áááą á¨á°á á á ᨠNode.js áá°áá áŞáŤ ááááĄ
áĽáá° ááááá á áľá°áŤá¨áľ áááľá áľ ááááľ áá°ááᢠáá
áłá ááááťá˝áá áááááľáŁ á°áĽáľááŤáἠáŤáľáá
PS á¨á°ááá
á áĽááá˝á áá áŤááĽáĄáĄ-
- ÂŤ
ᨠABC á°á áááľ á áŠá áááľáľáĄ áá¨áááŤáŁ áááľáŁ áŚá˛áľ "; - ÂŤ
á°á áááá˝ áĽá áááľ RBAC á áŠá áááľáľ "; - ÂŤ
33+ Kubernetes á¨á°á áááľ ááłáŞáŤáá˝ "; - ÂŤ
ááśá¨á ááŤáŁáá˝ á°á áááľ Âť.
ááá: hab.com