ืืื ืขืืืขืืข ืืืฉืื ืฆืืจืืง, ืืื ืืืคึผืืึทืืขื ืึทื ืึทื OpenID Connect ืกืขืจืืืขืจ ืฆื ืคืืจื ืึทืงืกืขืก ืคึฟืึทืจ ืืื ืืขืจืืขืจ ืคืื ืืื ืืืขืจ ืื ืขืจืืขื ืึทืคึผืืึทืงืืืฉืึทื ื. ืคึฟืื ืืื ืืืขืจ ืืืืืขื ืข ืึทื ืืืืืงืืื ื, ืืึทืงืืืขื ืืืืฃ ืึท ืงืืขื ืขืจืขืจ ืืืึธื, ืืืจ ืืึธืื ืืจืืืขืจืืขืคืืจื ืฆื ืึท ืืืื ืื ืืขื ืืืขื ื ืึธืจืืึทื. ืึทืงืกืขืก ืืืจื ืื ืืืืคื ืกืขืจืืืืก ืกืืืคึผืืึทืคืืื ืืืืขืจ ืืึทื ืึทืืึทื ืึทืก ืึทืคึผืขืจืืืฉืึทื ื, ืจืึทืืืกืึทื ืื ืงืึธืก ืคืื ืืืคึผืืึทืืขื ืื ื ืืขืจืืืืืขื ืืฉ, ืึทืืึทืื ืืืจ ืฆื ืืขืคึฟืื ืขื ืคืืืข ืืจืืื-ืืขืืืื ืกืึทืืืฉืึทื ื ืืื ื ืืฉื ืึธื ืืึทืืื ืืืื ืกืืืื ืืืขื ืืืจ ืึทื ืืืืืงืืขื ื ืืึทืข. ืืื ืืขื ืึทืจืืืงื, ืืื ืืืขื ืจืขืื ืืืขืื ืืขื ืืืขืจืืึทื ื ืืื ืื ืืึทืืคึผืก ืืืึธืก ืืืจ ืืขืจืืื ืฆื ืคึผืืึธืืืืจื.
ื ืืื ืืข ืฆืฒื ืฆืืจืืง... ืฐื ืืณืืื ืืื ืืืฅ ืื ืืขืืืืื
ืืื ืขืืืขืืข ืืึธืจ ืฆืืจืืง, ืืืขื ืขืก ืืขื ืขื ืืขืืืขื ืฆื ืคืืืข ืื ืขืจืืขื ืึทืคึผืืึทืงืืืฉืึทื ื ืคึฟืึทืจ ืืึทื ืืึทื ืงืึธื ืืจืึธื, ืืืจ ืืขืฉืจืืื ืึท ืึทืคึผืืึทืงืืืฉืึทื ืฆื ืงืึธื ืืจืึธืืืจื ืึทืงืกืขืก ืืื ืื ืคืืจืืข. ืขืก ืืื ืืขืืืขื ืึท ืคึผืฉืื ืจืึทืื ืึทืคึผืืึทืงืืืฉืึทื ืืืึธืก ืืื ืคืืจืืื ืื ืฆื ืึท ืืึทืืึทืืืืก ืืื ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขืื ืขืืคึผืืืืื, ืืื ืึทืงืกืขืก ืฆื ืคืึทืจืฉืืื ืคืึทื ืืงืฉืึทื ืึทืืืื ืืื ืงืึทื ืคืืืืขืจื. ืืื ืืขืจ ืืขืืืืงืขืจ ืฆืืื, ืืืจ ืืืืคืฉืืืื ืืขืจ ืขืจืฉืืขืจ SSO, ืืืึธืก ืืื ืืืืืจื ืืืืฃ ืื ืืืขืจืึทืคืึทืงืืืฉืึทื ืคืื ืืึธืงืขื ืก ืคืื ืื ืืืึทื ืคืื ืืขื ืงืืืขื ื ืืื ืื ืืขืจืืืืืขื ืืฉ ืกืขืจืืืขืจ, ืื ืกืืืขื ืืื ืืจืึทื ืกืืืืืขื ืืื ืื ืงืจืืคึผืืื ืคืึธืจืขื ืืื ืขืืืขืืข ืคึผืึทืจืึทืืขืืขืจืก ืืื ืืืขืจืึทืคืืื ืืืืฃ ืื ืืขืจืืืืืขื ืืฉ ืกืขืจืืืขืจ. ืืึธืก ืืื ื ืืฉื ืื ืืขืจืกื ืืึทืงืืืขื ืึธืคึผืฆืืข, ืืืืึทื ืืขืืขืจ ืื ืขืจืืขื ืึทืคึผืืึทืงืืืฉืึทื ืืื ืฆื ืืึทืฉืจืืึทืื ืึท ืืืคึผืฉ ืคึผืืึทืกื ืคืื ืืึธืืืง, ืืื ืื ืืึทืืึทืืืืกืื ืคืื ืึธื ืืขืฉืืขืืืขืจ ืืขื ืขื ืืึธืจ ืกืื ืืงืจืึทื ืืืื ืืื ืื ืืขืจืืืืืขื ืืฉ ืกืขืจืืืขืจ.
ื ืึธื ืขืืืขืืข ืืึธื, ืืืจ ืืึทืฉืืึธืกื ืฆื ืคืึทืจืคึผืึธืฉืขืืขืจื ืื ืึทืจืืขื ืคืื ืกืขื ืืจืึทืืืืื ืืขืจืืืืืขื ืืฉ. SSO ืืื ืืจืึทื ืกืคืขืจื ืฆื ืื ืืึทืืึทื ืกืขืจ. ืืื ืื ืืืืฃ ืคืื OpenResty, ืึท ืืืกืืขืจ ืืื ืฆืืืขืืืืื ืฆื Lua ืืืึธืก ืึธืคึผืืขืฉืืขืื ืืึธืงืขื ืก, ืืขืืืืืกื ืืืึธืก ืึทืคึผืืึทืงืืืฉืึทื ืื ืืขืื ืืื ืืขืืื ืืขื ืฆื, ืืื ืงืขื ืงืึธื ืืจืึธืืืจื ืืืื ืขืก ืืื ืึทืงืกืขืก ืืึธืจื. ืืขื ืฆืืืึทื ื ืืืืขืจ ืกืืืคึผืืึทืคืืื ืื ืึทืจืืขื ืคืื ืงืึทื ืืจืึธืืืื ื ืึทืงืกืขืก ืฆื ืื ืขืจืืขื ืึทืคึผืืึทืงืืืฉืึทื ื - ืืื ืื ืงืึธื ืคืื ืืขืืขืจ ืึทืคึผืืึทืงืืืฉืึทื, ืขืก ืืื ื ืื ืืขืจ ื ืืืืืง ืฆื ืืึทืฉืจืืึทืื ื ืึธื ืืึธืืืง. ืืื ืึท ืจืขืืืืืึทื, ืืืจ ืคืืจืืืื ืื ืคืึทืจืงืขืจ ืืืกืืืืื ืืง, ืืื ืื ืึทืคึผืืึทืงืืืฉืึทื ืืื ืืื ื ืืฉื ืืืืกื ืขืคึผืขืก ืืืขืื ืืขืจืืืืืขื ืืฉ.
ืืืขืจ ืืืื ืคืจืืืืขื ืืื ืืขืืืืื ืื ืืืืกืืขืืืืื. ืืืึธืก ืืืขืื ืึทืคึผืืึทืงืืืฉืึทื ื ืืืึธืก ืืึทืจืคึฟื ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขืื ืขืืคึผืืืืื? ืขืก ืืื ืืขืืืขื ืืขืืืขื ืฆื ืฉืจืืึทืื ืึทื ืึทืคึผื ืคึฟืึทืจ ืื ืืขืจืืืืืขื ืืฉ ืืื ืกื, ืึธืืขืจ ืืขืืึธืื ืืืจ ืืืึธืื ืืึธืื ืฆื ืืืืื ื ืึธื ืืึธืืืง ืคึฟืึทืจ ืืขืืขืจ ืึทืืึท ืึทืคึผืืึทืงืืืฉืึทื. ืืื ืึทืืืฉืึทื, ืืืจ ืืขืืืืื ืฆื ืืึทืงืืืขื ืืึทืคืจืืึทืขื ืคืื ืื ืึธืคืขื ืืืงืืึทื ืืืืฃ ืืืื ืขืจ ืคืื ืืื ืืืขืจ ืืื-ืืขืฉืจืืื ืึทืคึผืืึทืงืืืฉืึทื ื, ืืืึธืก ืืืึธืื ืฉืคึผืขืืขืจ ืืืื ืืืืขืจืืขืืขืฆื ืืื OpenSource, ืืืืฃ ืืื ืืืขืจ ืื ืขืจืืขื ืืขืจืืืืืขื ืืฉ ืกืขืจืืืขืจ. ืืืจ ืืืขืื ืจืขืื ืืืขืื ืืื ืขืืืขืืข ืืึธื. ืื ืืืืืื ื ืฆื ืืืืืข ืคึผืจืึธืืืขืืก ืืื ืืขืืืขื OAuth.
ืฆื ืคึผืจืึธืกื ืกืืึทื ืืึทืจืืก
OAuth ืืื ืึท ืคืึทืจืฉืืืืืง, ืืืื ืื ืืขื ืืืขื ืืขืจืืืืืขื ืืฉ ื ืึธืจืืึทื, ืึธืืขืจ ืืื ื ืืืืื ืืืึทื ืคืึทื ืืงืฉืึทื ืึทืืืื ืืื ื ืืฉื ืืขื ืื, ืืื ืืื ืื ืืขืืืืื ืฆื ืืึทืืจืึทืืื OpenID Connect (OIDC). OIDC ืืื ืืื ืื ืืจืื ืืืคึผืืึทืืขื ืืืืฉืึทื ืคืื ืื ืึธืคึฟื ืึธืืขื ืืึทืงืืืฉืึทื ื ืึธืจืืึทื, ืืืึธืก ืืื ืคืืึธืื ืืื ืึทื ืึทืืืฉืึทื ืืืืขืจ ืื OAuth 2.0 ืคึผืจืึธืืึธืงืึธื (ืึทื ืึธืคึฟื ืืขืจืืืืืขื ืืฉ ืคึผืจืึธืืึธืงืึธื). ืืขื ืืืืืื ื ืงืืึธืืืื ืื ืคึผืจืึธืืืขื ืคืื ืคืขืื ืคืื ืืึทืื ืืืขืื ืื ืกืืฃ ืืึทื ืืฆืขืจ, ืืื ืืืื ืืืื ืขืก ืืขืืืขื ืฆื ืืืืฉื ืื ืืขืจืืืืืขื ืืฉ ืฉืคึผืืึทืืขืจ.
ืึธืืขืจ, ืืืจ ืืึธืื ื ืืฉื ืืืืกืืขืจืืืืืื ืึท ืกืคึผืขืฆืืคืืฉ ืฉืคึผืืึทืืขืจ ืืื ืืึทืฉืืึธืกื ืฆื ืืืืื ืื ืึทืืจืืืฉืึทื ืืื OIDC ืคึฟืึทืจ ืืื ืืืขืจ ืืืืืกืืื ื ืืขืจืืืืืขื ืืฉ ืกืขืจืืืขืจ. ืืื ืืืืืืข ืคืื โโโโืืขื ืืึทืฉืืืก ืืื ืืขืืืขื ืืขืจ ืคืึทืงื ืึทื OIDC ืืื ืืืืขืจ ืคืืขืงืกืึทืืึทื ืืื ืืขืจืืื ืขื ืคืื ืืขืจ ืืขืจืืืืืขื ืืฉ ืคืื ืืขืจ ืกืืฃ ืืึทื ืืฆืขืจ. ืืืื, ืขืก ืืื ืืขืืืขื ืืขืืืขื ืฆื ืื ืกืืจืืืขื ื OIDC ืฉืืืฆื ืืืืฃ ืืืื ืงืจืึทื ื ืืขืจืืืืืขื ืืฉ ืกืขืจืืืขืจ.
ืืื ืืืขืจ ืืืขื ืคืื ืืืคึผืืึทืืขื ืื ื ืืื ืืืขืจ ืืืืืขื ืข OIDC ืกืขืจืืืขืจ
1) ืืขืืจืืื ืื ืืึทืื ืฆื ืื ืืขืืขืื ืคืึธืจืขื
ืฆื ืืืกืฉืืืืขื OIDC, ืขืก ืืื ื ืืืืืง ืฆื ืืจืขื ืืขื ืื ืงืจืึทื ื ืืึทื ืืฆืขืจ ืืึทืื ืืื ืึท ืคืึธืจืขื ืืืึธืก ืืื ืคืึทืจืฉืืืืืง ืืืจื ืื ื ืึธืจืืึทื. ืืื OIDC, ืืึธืก ืืื ืืขืจืืคื ืงืืืืื. ืงืืืืื ืืขื ืขื ืืืืกืืงืื ืืขืฆื ืคืขืืืขืจ ืืื ืื ืืึทื ืืฆืขืจ ืืึทืืึทืืืืก (ื ืึธืืขื, E- ืืจืืื, ืืขืืขืคืึธื, ืืื"ื ื). ืขืงืืืกืืืจื
ืื ืืจืืคึผืข ืคืื โโืืึทืืืึทืจืงืก ืืื ืงืึทืืืืื ื ืืื ืื ืคืืืืขื ืืข ืกืึทืืกืขื - ืคืึทืจื ืขื. ืืขืฉืึทืก ืืขืจืืืืืขื ืืฉ, ืึทืงืกืขืก ืืื ืคืืจืืื ืื ื ืืฉื ืฆื ืกืคึผืขืฆืืคืืฉ ืืจืึทื ืื, ืึธืืขืจ ืฆื ืกืงืึธืคึผืขืก, ืืคืืื ืืืื ืขืืืขืืข ืคืื โโโโืื ืืจืึทื ืื ืคืื ืื ืคืึทืจื ืขื ืืขื ืขื ื ืืฉื ืืืจืฃ.
2 ) ืืืคึผืืขืืขื ืืขื ืื ื ืืืืืง ืืจืึทื ืฅ
ืืขืจ ืืืืึทืืขืจ ืืืื ืคืื OIDC ืื ืึทืืจืืืฉืึทื ืืื ืื ืกืขืืขืงืฆืืข ืืื ืืืคึผืืึทืืขื ืืืืฉืึทื ืคืื ืืขืจืืืืืขื ืืฉ ืืืืคึผืก, ืื ืึทืืื ืืขืจืืคืขื ืข ืืจืึทื ืฅ. ืืขืจ ืืืืึทืืขืจ ืกืฆืขื ืึทืจ ืคืื ืื ืืขืจืึทืงืฉืึทื ืฆืืืืฉื ืื ืืืืกืืขืงืืืื ืึทืคึผืืึทืงืืืฉืึทื ืืื ืื ืืขืจืืืืืขื ืืฉ ืกืขืจืืืขืจ ืืืขื ืึธืคืขื ืืขื ืืืืฃ ืื ืืืืกืืขืงืืืื ืฉืขื ืงืขื. ืึท ืืืืขืืคึผืืขืจื ืกืืขืืข ืคึฟืึทืจ ืืฉืืืื ื ืื ืจืขืื ืฉืขื ืงืขื ืืื ืืขืืืืื ืืื ืื ืคืืืืจ ืืื ืื.
ืคึฟืึทืจ ืืื ืืืขืจ ืขืจืฉืืขืจ ืึทืคึผืืึทืงืืืฉืึทื, ืืืจ ืืขืืืืื ื ืื ืืขืจืกื ืคึผืจืึธืกื ืฉืขื ืงืขื, ืื ืึทืืืืึธืจืืืึทืืืึธื ืงืึธืื. ืืืึทื ืืืืืง ืคืื ืื ืืขืจืข ืืื ืึทื ืขืก ืืื ืึท ืืจืื-ืฉืจืื, ื.ื. ืืื ืึทื ืืขืจืืึธืืื ื ื ืึธื ืืขืกืืื ื. ืขืจืฉืืขืจ, ืืขืจ ืืึทื ืืฆืขืจ ืืืื ืึท ืืงืฉื ืคึฟืึทืจ ืืขืจืืืืืขื ืืฉ ืืขืจืืืืืขื ืืฉ, ืืืงืืื ืึท ืกืืืขื - ืึทืืืืึธืจืืืึทืืืึธื ืงืึธืื, ืืขืืึธืื ืืื ืืขื ืกืืืขื, ืืื ืืืื ืืื ืึท ืืืืขื ืคึฟืึทืจ ืึทืจืืืคืึธืจื, ืจืืงืืืขืก ืึท ืึทืงืกืขืก ืกืืืขื. ืึทืืข ืื ืืืืคึผื ืื ืืขืจืึทืงืฉืึทื ืคืื ืืขื ืืขืจืืืืืขื ืืฉ ืฉืจืืคื ืืื ืืืืืจื ืืืืฃ ืจืืืขืจืขืงืฅ ืฆืืืืฉื ืื ืึทืคึผืืึทืงืืืฉืึทื ืืื ืื ืืขืจืืืืืขื ืืฉ ืกืขืจืืืขืจ. ืืืจ ืงืขื ื ืืืืขื ืขื ืืขืจ ืืืขืื ืืขื ืฉืขื ืงืขื
OAuth ืึทืืืืจื ืฆื ืืขืจ ืืึทืืจืืฃ ืึทื ืึทืงืกืขืก ืืึธืงืขื ืก ืืืงืืืขื ื ืึธื ืืขืจืืืืืขื ืืฉ ืืึธื ืืืื ืฆืืึทืืืืืึทืืืง ืืื ืืึธื ืืืืฉื, ืคึผืจืขืคืขืจืึทืืื ืืขืืขืจ 10 ืืื ืื ืืื ืืืจืืฉื ืืืืขื. ืืขืจ ืืขืจืืืืืขื ืืฉ ืงืึธืื ืฉืขื ืงืขื ืืื ืึท ืืจืื-ืฉืจืื ืืืขืจืึทืคืึทืงืืืฉืึทื ืืืจื ืจืืืขืจืขืงืฅ, ืืขืืขืจ 10 ืืื ืื ืฆื ืืืขื ืื ืึทืืึท ืึท ืฉืจืื, ืคืจืึทื ืืงืื, ืืื ื ืืฉื ืื ืืขืจืกื ืึธื ืืขื ืขื ืึทืจืืขื ืคึฟืึทืจ ืื ืืืืื. ืฆื ืกืึธืืืืข ืืขื ืคึผืจืึธืืืขื, ืขืก ืืื ืื ืื ืืขืจ ืฉืขื ืงืขื - Refresh Token, ืืืึธืก ืืืจ ืืืื ืืขืืืืื ื ืืื ืืื ืืืขืจ ืืึทื ื. ืึทืืฅ ืืื ืืึธ ืืจืื ืืขืจ. ืืขืฉืึทืก ืืืขืจืึทืคืึทืงืืืฉืึทื ืคืื ืื ืื ืืขืจ ืฉืขื ืงืขื, ืืื ืึทืืืฉืึทื ืฆื ืื ืืืืคึผื ืึทืงืกืขืก ืืึธืงืขื, ืื ืื ืืขืจ ืืืื ืขืจ ืืื ืืจืืืก - Refresh Token, ืืืึธืก ืงืขื ืขื ืืืื ืืขืืืืื ื ืืืืื ืึทืืึธื ืืื ืืืื ืืขืื ืืื ืืืืฉืึทืืืึทืื ืคืื ืืขืจ. ืืื ืืขื ืจืขืคืจืขืฉ ืืึธืงืขื, ืืืขื ืื TTL (ืฆืืื ืฆื ืืขืื) ืคืื ืื ืืืืคึผื ืึทืงืกืขืก ืกืืืขื ืขื ืืก, ืื ืืขืื ืคึฟืึทืจ ืึท ื ืืึท ืึทืงืกืขืก ืกืืืขื ืืืขื ืงืืืขื ืฆื ืื ืขื ืืคึผืืื ื ืคืื ืื ืื ืืขืจ ืฉืขื ืงืขื. ืื ืืขืืืืื ื ืจืขืคืจืขืฉ ืืึธืงืขื ืืื ืืื ืืึทืฉืืขืืืง ืฆื ื ืื. ืืขื ืืฉืขืง ืืื ืฆืืืื-ืฉืจืื ืืื ืงืขื ืขื ืืืื ืืืจืืืขืงืึธืื ืืื ืืขืจ ืืื ืืขืจืืจืื ื, ืืืคึผืขืจืกืขืคึผืืืืื ืฆื ืืขืจ ืืึทื ืืฆืขืจ.
3) ืฉืืขืื ืึทืจืืืฃ ืื ืื ืืึทืื ืจืขืืืืืึทื ืคึฟืึธืจืืึทืืืจืื ืืขื
ื ืึธื ืืืคึผืืึทืืขื ืึทื ืื ืืืืกืืขืงืืืื ืืจืึทื ืฅ, ืืขืจืืืืืขื ืืฉ ืึทืจืืขื, ืขืก ืืื ืืืขืจื ืืขืจืืึธื ืขื ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขืื ืื ืกืืฃ ืืึทื ืืฆืขืจ. OIDC ืืื ืึท ืืึทืืื ืืขืจ ืขื ืืคึผืืื ื ืคึฟืึทืจ ืืขื, ืืื ืืืจ ืงืขื ืขื ืืขืื ืืึทื ืืฆืขืจ ืืึทืื ืืื ืืืื ืงืจืึทื ื ืึทืงืกืขืก ืกืืืขื ืืื ืืืื ืขืก ืืื ืืขืจืืืึทื ืืืงื. ืืื ืืืื ืืขืจ ืืึทื ืืฆืขืจ 'ืก ืืึทืื ืืึธื ื ืื ืืืืฉื ืึทืืื ืึธืคื, ืืื ืืืจ ืืึทืจืคึฟื ืฆื ื ืึธืืคืึธืืื ืื ืืืฆืืืงืข ืคืืืข ืืึธื, ืืืจ ืงืขื ืขื ืงืืืขื ืฆื ืึทืืึท ืึท ืืืืืื ื ืืื JWT ืืึธืงืขื ืก. ืื ืืึธืงืขื ืก ืืขื ืขื ืืืื ืืขืฉืืืฆื ืืืจื ืื ืกืืึทื ืืึทืจื. ืื JWT ืกืืืขื ืืื ืืืฉืืืื ืคืื ืืจืื ืคึผืึทืจืฅ: ืืขืืขืจ (ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขืื ืืขื ืกืืืขื), ืคึผืืืืึธืื (ืงืืื ื ืืืืืง ืืึทืื) ืืื ืืกืืืข (ืืกืืืข, ืื ืกืืืขื ืืื ืืขืืชืืขื ืืืจื ืื ืกืขืจืืืขืจ ืืื ืืืจ ืงืขื ืขื ืฉืคึผืขืืขืจ ืงืึธื ืืจืึธืืืจื ืื ืืงืืจ ืคืื ืืืื ืืกืืืข).
ืืื ืื OIDC ืืืคึผืืึทืืขื ืืืืฉืึทื, ืื JWT ืืึธืงืขื ืืื ืืขืจืืคื id_token. ืขืก ืงืขื ืขื ืืืื ืืขืืขืื ืฆืืืืืขื ืืื ืึท ืจืขืืืืขืจ ืึทืงืกืขืก ืกืืืขื ืืื ืึทืืข ืืืึธืก ืืื ืืื ืงืก ืืื ืฆื ืืึทืฉืืขืืืงื ืื ืืกืืืข. ืืขืจ ืืขืจืืืืืขื ืืฉ ืกืขืจืืืขืจ ืืื ืึท ืืึทืืื ืืขืจ ืขื ืืคึผืืื ื ืคึฟืึทืจ ืืขื ืืื ืึท ืืื ืื ืคืื ืฆืืืืจ ืฉืืืกืืขื ืืื ืืขื ืคึฟืึธืจืืึทื
ืืืฉื ืืืืฃ ืืืื:
{
"issuer": "https://accounts.google.com",
"authorization_endpoint": "https://accounts.google.com/o/oauth2/v2/auth",
"device_authorization_endpoint": "https://oauth2.googleapis.com/device/code",
"token_endpoint": "https://oauth2.googleapis.com/token",
"userinfo_endpoint": "https://openidconnect.googleapis.com/v1/userinfo",
"revocation_endpoint": "https://oauth2.googleapis.com/revoke",
"jwks_uri": "https://www.googleapis.com/oauth2/v3/certs",
"response_types_supported": [
"code",
"token",
"id_token",
"code token",
"code id_token",
"token id_token",
"code token id_token",
"none"
],
"subject_types_supported": [
"public"
],
"id_token_signing_alg_values_supported": [
"RS256"
],
"scopes_supported": [
"openid",
"email",
"profile"
],
"token_endpoint_auth_methods_supported": [
"client_secret_post",
"client_secret_basic"
],
"claims_supported": [
"aud",
"email",
"email_verified",
"exp",
"family_name",
"given_name",
"iat",
"iss",
"locale",
"name",
"picture",
"sub"
],
"code_challenge_methods_supported": [
"plain",
"S256"
],
"grant_types_supported": [
"authorization_code",
"refresh_token",
"urn:ietf:params:oauth:grant-type:device_code",
"urn:ietf:params:oauth:grant-type:jwt-bearer"
]
}
ืืืื, ื ืืฆื id_token, ืืืจ ืงืขื ืขื ืึทืจืืืขืจืคืืจื ืึทืืข ืื ื ืืืืืง ืืึทืืืึทืจืงืก ืฆื ืื ืคึผืืืืึธืื ืคืื ืื ืกืืืขื ืืื ื ืืฉื ืงืึธื ืืึทืงื ืื ืืขืจืืืืืขื ืืฉ ืกืขืจืืืขืจ ืืขืืขืจ ืืึธื ืฆื ืืขืื ืืึทื ืืฆืขืจ ืืึทืื. ืื ืืืกืึธืจื ืคืื ืืขื ืฆืืืึทื ื ืืื ืึทื ืืขืจ ืขื ืืขืจืื ื ืืื ืืึทื ืืฆืขืจ ืืึทืื ืคืื ืื ืกืขืจืืืขืจ ืงืืื ื ืืฉื ืืื, ืึธืืขืจ ืฆืืืืืขื ืืื ืึท ื ืืึท ืึทืงืกืขืก ืกืืืขื.
ืืืคึผืืขืืขื ืืึทืืืึธื ืจืขืืืืืึทืื
ืึทืืื, ื ืึธื ืืืคึผืืึทืืขื ืื ื ืืื ืืืขืจ ืืืืืขื ืข OIDC ืกืขืจืืืขืจ ืืื ืงืึทื ืคืืืืขืจืื ื ืงืึทื ืขืงืฉืึทื ื ืฆื ืขืก ืืืืฃ ืื ืึทืคึผืืึทืงืืืฉืึทื ืืืึทื, ืืืจ ืกืึทืืืื ืื ืคึผืจืึธืืืขื ืคืื ืืจืึทื ืกืคืขืจืื ื ืืื ืคึฟืึธืจืืึทืฆืืข ืืืขืื ืืืืขืจื.
ืืื ื OIDC ืืื ืึทื ืึธืคึฟื ื ืึธืจืืึทื, ืืืจ ืืึธืื ืื ืึธืคึผืฆืืข ืฆื ืงืืืึทืื ืึทื ืืืืืกืืื ื ืฉืคึผืืึทืืขืจ ืึธืืขืจ ืกืขืจืืืขืจ ืืืคึผืืึทืืขื ืืืืฉืึทื. ืืืจ ืืขืคืจืืืื Keycloak, ืืืึธืก ืืื ืืขืืืขื ืืืืขืจ ืืึทืงืืืขื ืฆื ืงืึทื ืคืืืืขืจ, ื ืึธื ืืึทืฉืืขืืืงื ืืื ืืฉืึทื ืืื ื ืงืึทื ืคืืืืขืจืืืฉืึทื ื ืืืืฃ ืื ืึทืคึผืืึทืงืืืฉืึทื ืืืึทื, ืขืก ืืื ืืจืืื ืฆื ืืืื. ืืืืฃ ืื ืึทืคึผืืึทืงืืืฉืึทื ืืืึทื, ืึทืืข ืืืึธืก ืืืืืื ืืื ืฆื ืืืืฉื ืื ืงืึทื ืคืืืืขืจืืืฉืึทื ื.
ืืขืจืขืื ืืืขืื ืืืืืกืืื ื ืกืึทืืืฉืึทื ื
ืืื ืืื ืืืขืจ ืึธืจืืึทื ืืืึทืฆืืข, ืืื ืืขืจ ืขืจืฉืืขืจ OIDC ืกืขืจืืืขืจ, ืืืจ ืคืืจืืืืื ืืื ืืืขืจ ืืืืืขื ืข ืืืคึผืืึทืืขื ืืืืฉืึทื, ืืืึธืก ืืื ืืขืืืขื ืกืึทืคึผืืึทืืขื ืืึทื ืืื ื ืืืืืง. ื ืึธื ืึท ืืืืืืื ืึธืคึผืฉืึทืฆืื ื ืคืื ืื ืืขืจืข ืคืึทืจืืืง ืกืึทืืืฉืึทื ื, ืืืจ ืงืขื ืขื ืืึธืื ืึทื ืืึธืก ืืื ืึท ืืืงืืึธืจ ืคืื ื. ืืื ืืืืืืข ืคืื โโืื ืืึทืฉืืืก ืฆื ืื ืกืืจืืืขื ื ืืืืขืจ ืืืืืขื ืข ืกืขืจืืืขืจ, ืขืก ืืขื ืขื ืืขืืืขื ืงืึทื ืกืขืจื ื ืคืื ืื ืคึผืจืึทืืืืืืขืจื ืืื ืืขืจ ืึทืืืขืง ืคืื ืื ื ืืืืืง ืคืึทื ืืงืฉืึทื ืึทืืืื, ืืื ืืขืืื ื ืืื ืื ืืืึทืืืึทื ืคืื ืึทื ืึทืื ืกืืกืืขื ืืื ืืืึธืก ืขืก ืืขื ืขื ืืขืืืขื ืคืึทืจืฉืืืขื ืข ืื ืื ืืขืจืืืืืขื ืืฉ ืคึฟืึทืจ ืขืืืขืืข ืืึทืืื ืื ืืก ืืื ืืึทื ืฅ ืึท ืคึผืืึทืฅ. ืคืื ืืึทืื ืืืขืื ืขืืคึผืืืืื ืืื ืฉืืื ืกืืึธืจื. ืึธืืขืจ, ืืื ืคืึทืจืืืง ืืืคึผืืึทืืึทื ืฅ, ืขืก ืืขื ืขื ืงืึทื ืืืื ืืึทื ืกืื ืคึฟืึทืจ ืื ืึทืืจืืืฉืึทื. ืคึฟืึทืจ ืืืึทืฉืคึผืื, Keycloak ืืื ืืืื ืืืืืขื ืข ืืึทื ืืฆืขืจ ืคืึทืจืืืึทืืืื ื ืกืืกืืขื ืืื ืืึทืื ืืขื ืขื ืกืืึธืจื ืืืืึทื ืืื ืขืก, ืืื ืขืก ืืืขื ื ืืฉื ืืืื ืฉืืืขืจ ืฆื ืืืขืจืืึธืื ืืืื ืืืืขืจื ืืึธืจื. ืฆื ืืึธื ืืึธืก, Keycloak ืืื ืึทื ืึทืคึผื ืืืึธืก ืึทืืึทืื ืืืจ ืฆื ืืืจืืคืืจื ืึทืืข ืื ื ืืืืืง ืึทืจืืืขืจืคืืจื ืึทืงืฉืึทื ื.
ืื ืื ืืขืจ ืืืืฉืคึผืื ืคืื ืึท ืกืขืจืืึทืคืืื, ืืฉืืงืึทืืืข, ืืื ืืืื ืืืื ืื ื, ืืืคึผืืึทืืขื ืืืืฉืึทื ืืื Ory Hydra. ืขืก ืืื ืืฉืืงืึทืืืข ืืืืึทื ืขืก ืืืฉืืืื ืคืื ืคืึทืจืฉืืืขื ืข ืงืึทืืคึผืึธืื ืึทื ืฅ. ืฆื ืืืกืฉืืืืขื, ืืืจ ืืืขื ืืึทืจืคึฟื ืฆื ืคึฟืึทืจืืื ืืื ื ืืืื ืืึทื ืืฆืขืจ ืคืึทืจืืืึทืืืื ื ืืื ืกื ืฆื ืืืืขืจ ืืขืจืืืืืขื ืืฉ ืืื ืกื ืืื ืคืึทืจืืจืืืืขืจื ืืื ืืืจืฃ.
Keycloak ืืื Ory Hydra ืืขื ืขื ื ืืฉื ืื ืืืืื ืึทืืืขืง-ืืขื-ืคึผืึธืืืฆืข ืกืึทืืืฉืึทื ื. ืขืก ืืื ืืขืกืืขืจ ืฆื ืงืืืึทืื ืึท ืืืคึผืืึทืืขื ืืืืฉืึทื ืกืขืจืืึทืคืืื ืืืจื ืื OpenID ืืืืงืืคึผืขืืืข. ืื ืกืึทืืืฉืึทื ื ืืืืฉืึทืืืึทืื ืืึธืื ืึทื OpenID Certification ืึธืคึผืฆืืืื.
ืืืื ืืึธื ื ืื ืคืึทืจืืขืกื ืืืขืื ืืืืืกืืื ื ืืึทืฆืึธืื ืคึผืจืึทืืืืืืขืจื ืืืื ืืืจ ืืึธื ื ืืฉื ืืืขืื ืฆื ืืึทืืื ืืืื OIDC ืกืขืจืืืขืจ. ืืืึทื ื ืขืก ืืขื ืขื ืคืืืข ืืื ืึธืคึผืฆืืขืก.
ืืืึธืก ืก ืืืืึทืืขืจ
ืืื ืืขื ืืขืื ืฆืืงืื ืคึฟื, ืืืจ ืืืขืื ืคืึทืจืืึทืื ืคืึทืจืงืขืจ ืฆื ืื ืขืจืืขื ืืึทืืื ืื ืืก ืืืืฃ ืึท ืึทื ืืขืจืฉ ืืืขื. ืืืจ ืคึผืืึทื ืฆื ืึทืจืืืขืจืคืืจื ืืื ืืืขืจ ืงืจืึทื ื SSO ืืืืฃ ืื ืืึทืืึทื ืกืขืจ ื ืืฆื OpenResty ืฆื ืึท ืคึผืจืึทืงืกื ืืืืืจื ืืืืฃ OAuth. ืขืก ืืขื ืขื ืฉืืื ืคืืืข ืคืึทืจืืืง ืกืึทืืืฉืึทื ื ืืึธ, ืืืฉื:
ื ืึธื ืืึทืืขืจืืึทืืก
ืืงืืจ: www.habr.com