ืืขืจื. ืชืจืืื: ืืืืืจ ืื ืืืจ ืืื ืฉื Okta ืืกืืืจ ืืืฆื OAuth ื- OIDC (OpenID Connect) ืคืืขืืื ืืฆืืจื ืคืฉืืื ืืืจืืจื. ืืืข ืื ืืืื ืฉืืืืฉื ืืืคืชืืื, ืื ืืื ืืขืจืืืช ืืืคืืื "ืืฉืชืืฉืื ืจืืืืื" ืฉื ืืคืืืงืฆืืืช ืืื ืืจื ื ืคืืคืืืจืืืช, ืฉืืื ืื ืจืื ืื ืืืืืคืื ื ืชืื ืื ืกืืืืื ืขื ืฉืืจืืชืื ืืืจืื.
ืืชืงืืคืช ืืืื ืฉื ืืืื ืืจื ื, ืฉืืชืืฃ ืืืืข ืืื ืฉืืจืืชืื ืืื ืงื. ืคืฉืื ื ืชืช ืืช ืคืจืื ืืื ืืกื ืืืกืืกืื ืฉืื ืืฉืืจืืช ืืื ืืืืจ, ืื ืฉืืื ื ืื ืก ืืืฉืืื ืฉืื ืืงืืื ืื ืืืืข ืฉืืื ืฆืจืื.
"ืชื ืื ืืช ืืฉืืื ืืื ืง ืฉืื." "ืื ืื ื ืืืืืืื ืฉืืื ืืืื ืืกืืจ ืขื ืืกืืกืื ืืืืกืฃ. ืื ืื ื, ืื ื!" *ืื ืื*
ืึฒืจึธืึธื! ืืฃ ืืื ืื ืฆืจืื ืืืจืืฉ ืืืฉืชืืฉ ืืฉืชืฃ ืฉื ืืฉืชืืฉ ืืกืืกืื, ืืืฉืืจืื, ืขื ืฉืืจืืช ืืืจ. ืืื ืขืจืืื ืฉืืืจืืื ืฉืขืืื ืืืืืจื ืฉืืจืืช ืื ืืฉืืืจ ืขื ืืืืืช ืื ืชืื ืื ืืื ืืืกืืฃ ืืืืข ืืืฉื ืืืชืจ ืืื ืืจืฉ. ืื ืืืื ื ืฉืืข ืืืืจืฃ, ืืื ืืคืืืงืฆืืืช ืืกืืืืืช ืขืืืื ืืฉืชืืฉืืช ืืชืจืืื ืืื!
ืืืื ืงืืื ืชืงื ืืืื ืืืืคืฉืจ ืืฉืืจืืช ืืื ืืืฉืชืืฉ ืืฆืืจื ืืืืืืืช ืื ืชืื ืื ืฉื ืืืจ. ืืืจืื ืืฆืขืจ, ืชืงื ืื ืืืื ืืฉืชืืฉืื ืืืจืื ื'ืจืืื ืืืื ืืื, ืื ืฉืืงืฉื ืขื ืืืื ื ืฉืืื. ืืืจืช ืืืืืจ ืืื ืืื ืืืกืืืจ ืืื ืื ืคืืขืืื ืืืืฆืขืืช ืืืืจืื ืคืฉืืืื (ืืื ืืชื ืืืฉื ืฉืืฆืืืจืื ืฉืื ืืืืื ืืืืืช ืืืืื? ื ื ืืื!).
ืืื, ืืืืจืื ืืื ืืืื ืื ืืคืืจืื ืืืืื:
ืืืืจืืชืื ืืจืืืชืื, ืืจืืืื ืืืืื: OAuth 2.0
ืืืืืื, ื ื ืื ืฉืืชื ืืืื ืืชืจ ืืฉื "Unlucky Pun of the Day" [ืืฉืืง ืืืืื ื ืืจื ืฉื ืืืื] ืืืืืื ืืืืจืฉื ืืืื ืืื ืืงืื ืืฉืืงื ืืืืื ืืืืืืืืื ืืฆืืจืช ืืืืขืืช ืืงืกื ืืืืคืื. ืืืื ืืืืช ืืช ืืืชืจ, ืืืืืืช ืืฉืชืฃ ืืืชื ืขื ืื ืืืืจืื ืฉืื. ืืืจื ืืื, ืืืื ืืืืืื ืืฉืืงื ืืืืื ืืคืืืืื, ื ืืื?
"ืืฉืืง ืืืืื ืืฆืขืจ ืฉื ืืืื: ืฉืืขืช ืขื ืืืืืจ ืฉืืืื ืืช ืืืฆื ืืฉืืืื ืฉื ืืืคื? ืขืืฉืื ืืื ืชืืื ืฆืืืง!" (ืชืจืืื ืืฉืืขืจ, ืื ืืืงืืจ ืืฉ ืืฉืืง ืืืืื ืืฉืื - ืืขืจื ืชืจืืื)
ืืจืืจ ืฉืืชืืื ืืื ืืื ืืจืฉืืืช ืื ืฉื ืืงืฉืจ ืืื ืื ืืืคืฆืื. ืืื ืืชื ืืคืืื ืงืฆืช ืืืื ื, ืื ืชืขืฉื ืืืืฆืื ืจืืื ืืื ืืืืื ืข ืืขืืืื ืืืืชืจืช. ืืืจืื ืืืื, ืืฉืืง ืืืืืื ืื ืืจื ืฉื ืืืื ืืืื ืืืืืื ืืช ืื ืืืืจืื ืฉืื ืืื! ืืฉื ืื, ืืชื ืจืง ืฆืจืื ืืคืชืื ืืืฉื ืืืืื ืฉื ืื ืฉื ืืงืฉืจ ืฉืื - ืืืชืจ ืขืฆืื ืืฉืื ืืื ืืืื ืืช (ืืืงื OAuth)!
"ืืืื ืืืืืื ืืฉืืงื ืืืืื! - ืืืจ ืืืืืจ? "ืืื ืชืจืฆื ืืืคืฉืจ ืืืชืจ Terrible Pun of the Day ืืืฉืช ืืจืฉืืืช ืื ืฉื ืืงืฉืจ ืฉืื? - ืชืืื! ืืขืชื ืืืืื ื ืฉืื ืชืืืืจืืช ืืื ืืื ืืื ืื ืฉืืชื ืืืืจ, ืขื ืงืฅ ืืืืื! ืืชื ืืืืจ ืืื ืืื!"
- ืืืจ ืืช ืฉืืจืืช ืืืื"ื ืฉืื.
- ืืืืืช ืืฆืืจื, ืขืืืจ ืื ืืชืจ ืืืืืจ ืืืืื ืก ืืืฉืืื ื.
- ืชื ื-Trible Pun of the Day ืืจืฉืื ืืืฉืช ืืื ืฉื ืืงืฉืจ ืฉืื.
- ืืืืจ ืืืชืจ ืืฉืืง ืืืืืื ืื ืืจื ืฉื ืืืื.
ืืืงืจื ืฉืชืฉื ื ืืช ืืขืชื, ืืืฉืืืื ืืืฉืชืืฉืื ื-OAuth ืืกืคืงืื ืื ืืจื ืืืื ืืืฉื. ืืืืจ ืฉืชืืืื ืฉืืื ื ืจืืฆื ืืืชืจ ืืฉืชืฃ ืื ืฉื ืงืฉืจ ืขื Terrible Pun of the Day, ืชืืื ืืืืื ืก ืืืชืจ ืืืืืจ ืืืืกืืจ ืืช ืืชืจ ืืฉืืง ืืืืืื ืืจืฉืืืช ืืืืฉืืืื ืืืืจืฉืื.
ืืจืืืช OAuth
ืื ืขืชื ืขืืจื ื ืืช ืื ืฉื ืงืจื ืืืจื ืืื ืึฐืจึดืืึธื [ืึฐืจึดืืึธื] OAuth. ืืืืืื ืฉืื ื, ืืจืืื ืื ืืืจืืืช ืืฉืืืื ืืืืืื, ืืื ืืกืคืจ ืฉืืืื ืืืชื ื ืจืืื, ืฉืืื ืฉื ื ืฉืืจืืชืื ืืกืืืืื ืขื ืืืืคืช ืืืืข ืืืืืืืช. ืืืืืื ืืงืืืืช ืฉื Terrible Pun of the Day ืืฉืชืืฉืช ืืืจืืืช ื-OAuth 2.0 ืื ืคืืฆื ืืืืชืจ, ืืืืืขื ืืืจืืืช "ืงืื ืืืจืฉืื". [ืืจืืืช "ืงืื ืืจืฉืื"].
ืืคื ื ืฉื ืฆืืื ืืคืจืืื ืฉื ืืืคื ืืคืขืืื ืฉื OAuth, ืืืื ื ืืืจ ืขื ืืืฉืืขืืช ืฉื ืืื ืืื ืืื:
- ืืขื ืืฉืืืื:
ืื ืืชื! ืืชื ืืืขืืื ืฉื ืืืืฉืืจืื ืฉืื, ืื ืชืื ืื ืฉืื ืืฉืืื ืืื ืืคืขืืืืืืช ืฉืขืฉืืืืช ืืืชืืฆืข ืืืฉืืื ืืช ืฉืื. - ืืงืื:
ืืคืืืงืฆืื (ืืืืืื, ืฉืืจืืช ืืฉืืง ืืืืืื ืื ืืจื ืฉื ืืืื) ืฉืจืืฆื ืืืฉืช ืื ืืืฆืข ืคืขืืืืช ืืกืืืืืช ืืฉื ืืขื ืืฉืืืื'ื. - ืฉืจืช ืืจืฉืื:
ืืืคืืืงืฆืื ืฉืืืืขืช ืืขื ืืฉืืืื'ื ืืื u ืืขื ืืฉืืืืืืฉ ืืืจ ืืฉืืื. - ืฉืจืช ืืฉืืืื:
ืืืฉืง ืชืื ืืช ืืืฉืืืื (API) ืื ืฉืืจืืช ืื ืืงืื ืจืืฆื ืืืฉืชืืฉ ืืืขื ืืขื ืืฉืืืื'ื. - ืืคื ืืื ืืืืฉ ืฉื URI:
ืืงืืฉืืจ ืฉ ืฉืจืช ืืจืฉืื ืืคื ื ืืืืฉ ืืขื ืืฉืืืื'ืืืืจื ืืชื ืจืฉืืช ืืงืื'ืึผึฐ. ืืคืขืืื ืื ืืืื ื "ืืชืืืช ืืืชืจ ืืืชืงืฉืจืืช ืืืืจืช". - ืกืื ืชืืืื:
ืกืื ืืืืืข ืืฆืคืื ืืืชืงืื ืืงืื. ืื ืคืืฅ ืืืืชืจ ืกืื ืชืืืื'ืืืื ืื ืืงืื, ืืืืืจ ืืงืื ืืฆืคื ืืงืื ืงืื ืืืืืช. - ืืืงืฃ:
ืืื ืชืืืืจ ืืคืืจื ืฉื ืืืจืฉืืืช ืื ืืจืฉืืช ืืงืื'y, ืืืื ืืืฉื ืื ืชืื ืื ืื ืืืฆืืข ืคืขืืืืช ืืกืืืืืช. - ืืกืืื:
ืฉืจืช ืืจืฉืื ืืืงื ืกืงืืคืกืืืงืฉ ืืงืืืื, ืืฉืืื ืืขื ืืฉืืืืื, ืืื ืืื ืืืื ืืกืคืง ืืงืืืืฉ ืืช ืืืจืฉืืืช ืืืชืืืืืช. - ืืืืื ืืืงืื:
ืืืื ืื ืืฉืืฉ ืืืืืื ืืงืื'ื ืขื ืฉืจืช ืืจืฉืืื. - ืกืื ืืืงืื:
ืื ืืกืืกืื ืฉืจืง ืืืืขื ืืงืืืืชื ื ืฉืจืช ืืจืฉืื'ืึผึฐ. ืื ืืืคืฉืจ ืืื ืืฉืชืฃ ืืืืข ืืืืคื ืคืจืื. - ืงืื ืืืืืช:
ืงืื ืืื ื ืขื ืชืงืืคืช ืชืืงืฃ ืงืฆืจื, ืืฉืจ ืืงืื ืืกืคืง ืฉืจืช ืืจืฉืื'ื ืืชืืืจื ื ืืกืืืื ืืืฉื. - ืืกืืืื ืืืฉื:
ืืืคืชื ืฉืืืงืื ืืฉืชืืฉ ืื ืืื ืืชืงืฉืจ ืืืชื ืฉืจืช ืืฉืืืื'ืืื. ืืขืื ืชื ืื ืืจืืืก ืืคืชื ืืืกืคืง ืืงืืืืฉ ืจืฉืืช ืืืงืฉ ื ืชืื ืื ืื ืืืฆืข ืคืขืืืืช ืขืืืื ืฉืจืช ืืฉืืืืืืฉืื.
ืฉืื ืื: ืืคืขืืื ืฉืจืช ืืืจืฉืืืช ืืฉืจืช ืืืฉืืืื ืื ืืืชื ืฉืจืช. ืขื ืืืช, ืืืงืจืื ืืกืืืืื, ืืื ืขืฉืืืื ืืืืืช ืฉืจืชืื ืฉืื ืื, ืื ืื ืืื ื ืฉืืืืื ืืืืชื ืืจืืื. ืืืืืื, ืฉืจืช ืืืจืฉืืืช ืขืฉืื ืืืืืช ืฉืืจืืช ืฉื ืฆื ืฉืืืฉื ืืืืื ืขื ืืื ืฉืจืช ืืืฉืืืื.
ืืขืช, ืืืืจ ืฉืืืกืื ื ืืช ืืืฉืื ืืืืื ืฉื OAuth 2.0, ืืืื ื ืืืืจ ืืืืืื ืฉืื ื ืื ืกืชืื ืืงืจืื ืขื ืื ืฉืงืืจื ืืืจืืืช OAuth.
- ืืชื, ืืขื ืืฉืืืื, ืืชื ืจืืฆื ืืกืคืง ืืช ืฉืืจืืช ืืฉืืง ืืืืืื ืื ืืจื ืฉื ืืืื (ืืงืืy) ืืืฉื ืืื ืฉื ืืงืฉืจ ืฉืื ืืื ืฉืืืืื ืืฉืืื ืืืื ืืช ืืื ืืืืจืื ืฉืื.
- ืืงืื ืืคื ื ืืช ืืืคืืคื ืืืฃ ืฉืจืช ืืจืฉืื'ื ืืืืืื ืืฉืืืืชื ืืืืื ืืืงืื, ืืคื ืืื ืืืืฉ ืฉื URI, ืกืื ืชืืืื ืืืื ืื ืืืชืจ ืกืงืืคืก (ืืจืฉืืืช) ืฉืืื ืฆืจืื.
- ืฉืจืช ืืจืฉืื ืืืืช ืืืชื, ืืืงืฉ ืฉื ืืฉืชืืฉ ืืกืืกืื ืืืืืช ืืฆืืจื.
- ืฉืจืช ืืจืฉืื ืืฆืื ืืืคืก ืืกืืื (ืืืฉืืจืื) ืขื ืจืฉืืื ืฉื ืืืื ืกืงืืคืกืืืงืฉ ืืงืื'ืืื. ืืชื ืืกืืื ืื ืืกืจื.
- ืฉืจืช ืืจืฉืื ืืคื ื ืืืชื ืืืชืจ ืืงืื'ื, ืืืืฆืขืืช ืืคื ืืื ืืืืฉ ืฉื URI ืขื ืงืื ืืืืืช (ืงืื ืืืืืช).
- ืืงืื ืืชืงืฉืจ ืืฉืืจืืช ืขื ืฉืจืช ืืจืฉืื'ืืืื (ืขืืงืฃ ืืช ืืืคืืคื ืืขื ืืฉืืืื'ื) ืืฉืืื ืืืืื ืืืืื ืืืงืื, ืกืื ืืืงืื ะธ ืงืื ืืืืืช.
- ืฉืจืช ืืจืฉืื ืืืืง ืืช ืื ืชืื ืื ืืืืื ืขื ืืกืืืื ืืืฉื'om (ืืกืืืื ืืืฉื).
- ืขืืฉืื ืืงืื ืืืื ืืืฉืชืืฉ ืืกืืืื ืืืฉื ืืฉืืื ืืงืฉื ืืืื ืฉืจืช ืืฉืืืื ืืื ืืงืื ืจืฉืืื ืฉื ืื ืฉื ืงืฉืจ.
ืืืืื ืืงืื ืืกืื
ืืจืื ืืคื ื ืฉืืจืฉืืช ืืืฉืืง ืืืืืื ืื ืืจื ืฉื ืืืื ืืืฉืช ืืื ืฉื ืืงืฉืจ ืฉืื, ืฉืจืช ืืืงืื ืืืืจืฉืืืช ืืฆืจื ืงืฉืจื ืขืืืื. ืฉืจืช ืืืจืฉืืืช ืืฆืจ ืืช ืืืื ืืืงืื ืืืช ืกืื ืืืงืื (ื ืงืจื ืืคืขืืื App ID ะธ ืกืื ืืืคืืืงืฆืื) ืืฉืืื ืืืชื ืืืงืื ืืืืฉื ืืื ืืจืืงืฆืื ืืชืื OAuth.
"- ืฉืืื! ืืืืชื ืจืืฆื ืืขืืื ืืืชื! - ืืื, ืืื ืืขืื! ืื ื ืืืืื ืืืงืื ืืืกืื ืฉืื!"
ืืฉื ืืจืื ืฉืกืื ืืืงืื ืืืื ืืืืฉืืจ ืืกืื ืื ืฉืจืง ืืืงืื ืืฉืจืช ืืืจืฉืืืช ืืืขื ืืืช. ืืืจื ืืื, ืืขืืจืชื ืฉืจืช ืืืจืฉืืืช ืืืฉืจ ืืช ืืืืชืืช ืืืงืื.
ืืื ืื ืื ืืื... ืื ื ืืจืื ืืื ื-OpenID Connect!
OAuth 2.0 ืืืืขื ืจืง ืขืืืจ ืืจืฉืื - ืืื ืืกืคืง ืืืฉื ืื ืชืื ืื ืืืคืื ืงืฆืืืช ืืืคืืืงืฆืื ืืืช ืืืืจืช.
OpenID Connect ืืืคืฉืจ ืื ืืืืฉื ืชืจืืืฉืื ืฉืืื ื ืืชื ืืืฉืชืืฉ ืืื ืืกื ืืืืืช ืืืกืคืจ ืืืฉืืืื - ืืืฉื ืื ืืืืขื ืื ืืฉื ืื ืืกื ืืืืื (SSO). ืืืืืื, ืืคืืืงืฆืื ืขืฉืืื ืืชืืื ืืฉืืืื SSO ืขื ืจืฉืชืืช ืืืจืชืืืช ืืื ืคืืืกืืืง ืื ืืืืืืจ, ืื ืฉืืืคืฉืจ ืืืฉืชืืฉืื ืืืฉืชืืฉ ืืืฉืืื ืฉืืืจ ืืฉ ืืื ืืืขืืืคืื ืืืฉืชืืฉ ืื.
ืืืจืืื (ืืืจืืื) OpenID Connect ื ืจืืืช ืืื ืืืงืจื ืฉื OAuth. ืืืืื ืืืืื ืืื ืฉืืืงืฉื ืืจืืฉืืช, ืืืืงืฃ ืืกืคืฆืืคื ืื ื ืขืฉื ืฉืืืืฉ ืืื openid
, - ื ืืงืื ืืกืืคื ืฉื ืืืจ ื ืืื ืืื ืืกืืืื ืืืฉืื - ืืกืืืื ืืืื.
ืืืืืง ืืื ืืืจืืืช OAuth, ืืกืืืื ืืืฉื ื-OpenID Connect, ืืื ืขืจื ืืืฉืื ืฉืืื ื ืืจืืจ ืืงืื'ืึผึฐ. ืื ืงืืืช ืืื ืืงืื'ื ืืกืืืื ืืืฉื ืืืืฆื ืืืจืืืช ืชืืืื ืืืืขืืจืช ืืื ืขื ืื ืืงืฉื ืื ืฉืจืช ืืฉืืืื'y, ืฉืงืืืข ืื ืืืกืืืื ืชืงืฃ. ืืกืืืื ืืืื ืืืืฆื ืืืจ ืืืจ ืืืืจื.
ID Token ืืื JWT
ืืกืืืื ืืืื ืืื ืืืจืืืช ืชืืืื ืืคืืจืื ืืืืื ืืืืื ื JSON Web Token ืื JWT (ืืคืขืืื ืืกืืืื ื JWT ืืืืืืื ืืื "ืกืืื ืื"). ืืืฉืงืืคืื ืืืืืฅ, JWT ืืืื ื ืจืื ืืื ื'ืืืจืืฉ ืื ืืืื, ืืื ืืงืื ืืืื ืืืืฅ ืืืืข ืฉืื ื ืื-JWT, ืืืื ืืืื, ืฉื ืืฉืชืืฉ, ืืื ืืชืืืจืืช, ืชืืจืื ืชืคืืื ืืกืืืื ืืืืื, ื ืืืืืชื ืฉื ื ืืกืืื ืืช ืืืคืจืืข ื-JWT. ื ืชืื ืื ืืคื ืื ืืกืืืื ืืืืื ืงืจืืื ืืืฉืืืื [ืืืขื].
ืืืงืจื ืฉื OIDC, ืืฉ ืื ืืจื ืกืื ืืจืืืช ืืคืื ืืงืื ืขืฉืื ืืืงืฉ ืืืืข ื ืืกืฃ ืขื ืืืื [ืืืืช] ื ืฉืจืช ืืจืฉืื', ืืืฉื, ืืชืืืช ืืืืืื ืืืืฆืขืืช ืืกืืืื ืืืฉื.
ืืืืืข ื ืืกืฃ ืขื OAuth ื-OIDC
ืื, ืกืงืจื ื ืืงืฆืจื ืืืฆื ืคืืขืืื OAuth ื- OIDC. ืืืื ืื ืืืคืืจ ืืืชืจ ืืขืืืง? ืื ื ืืฉืืืื ื ืืกืคืื ืฉืืขืืจื ืื ืืืืื ืขืื ืขื OAuth 2.0 ื-OpenID Connect:
-
ืื ืื ืืขืืืื OAuth? -
ืืืฃ ืืื ืื ืืืคืช ื-OAuth ืื OpenID Connect -
ืืืฉื ืืช ืงืื ืืืจืฉืื ืฉื OAuth 2.0 ืขื PKCE Flow -
ืืื ืกืื ืืืขื ืง ืฉื OAuth 2.0? -
OAuth 2.0 ืืฉืืจืช ืืคืงืืื -
ืื ื ืืคืืืงืฆืืืช Node.js ืืืืืืืช ืขื SQL Server
ืืื ืชืืื, ืืชื ืืืืื ืื ืืืืื. ืืื ืืืชืขืืื ืืืืฉืืช ืืืืจืื ืืช ืฉืื ื, ืืืจืฉื ื
ื .ื ืืืืชืจืื
ืงืจื ืื ืืืืื ืฉืื ื:
- ยซ
ื-ABC ืฉื ืืืืื ื-Kubernetes: ืืืืืช, ืืจืฉืื, ืืืงืืจืช "; - ยซ
ืืฉืชืืฉืื ืืืจืฉืืืช RBAC ื-Kubernetes "; - ยซ
33+ ืืื ืืืืื ืฉื Kubernetes "; - ยซ
ืืืืื ืืืืืืืช Docker ".
ืืงืืจ: www.habr.com