OpenID Connect: ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ืคื•ืŸ ื™ื ืขืจืœืขืš ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืคื•ืŸ ืžื ื”ื’ ืฆื• ื ืึธืจืžืึทืœ

ืžื™ื˜ ืขื˜ืœืขื›ืข ื—ื“ืฉื™ื ืฆื•ืจื™ืง, ืื™ืš ื™ืžืคึผืœืึทืžืขื ืึทื“ ืึทืŸ OpenID Connect ืกืขืจื•ื•ืขืจ ืฆื• ืคื™ืจืŸ ืึทืงืกืขืก ืคึฟืึทืจ ื”ื•ื ื“ืขืจื˜ืขืจ ืคื•ืŸ ืื•ื ื“ื–ืขืจ ื™ื ืขืจืœืขืš ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–. ืคึฟื•ืŸ ืื•ื ื“ื–ืขืจ ืื™ื™ื’ืขื ืข ืึทื ื˜ื•ื•ื™ืงืœื•ื ื’, ื‘ืึทืงื•ื•ืขื ืื•ื™ืฃ ืึท ืงืœืขื ืขืจืขืจ ื•ื•ืึธื’, ืžื™ืจ ื”ืึธื‘ืŸ ืืจื™ื‘ืขืจื’ืขืคืืจืŸ ืฆื• ืึท ื‘ื›ืœืœ ืื ื’ืขื ื•ืžืขืŸ ื ืึธืจืžืึทืœ. ืึทืงืกืขืก ื“ื•ืจืš ื“ื™ ื”ื•ื™ืคื˜ ืกืขืจื•ื•ื™ืก ืกื™ืžืคึผืœืึทืคื™ื™ื– ื–ื™ื™ืขืจ ืžืึทื ืึทื˜ืึทื ืึทืก ืึทืคึผืขืจื™ื™ืฉืึทื ื–, ืจืึทื“ื•ืกืึทื– ื“ื™ ืงืึธืก ืคื•ืŸ ื™ืžืคึผืœืึทืžืขื ื™ื ื’ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ, ืึทืœืึทื•ื– ืื™ืจ ืฆื• ื’ืขืคึฟื™ื ืขืŸ ืคื™ืœืข ื’ืจื™ื™ื˜-ื’ืขืžืื›ื˜ ืกืึทืœื•ืฉืึทื ื– ืื•ืŸ ื ื™ืฉื˜ ืึธื ื”ืึทืœื˜ืŸ ื“ื™ื™ืŸ ืกื™ื™ื›ืœ ื•ื•ืขืŸ ืื™ืจ ืึทื ื˜ื•ื•ื™ืงืœืขืŸ ื ื™ื™ึทืข. ืื™ืŸ ื“ืขื ืึทืจื˜ื™ืงืœ, ืื™ืš ื•ื•ืขืœ ืจืขื“ืŸ ื•ื•ืขื’ืŸ ื“ืขื ื™ื‘ืขืจื’ืึทื ื’ ืื•ืŸ ื“ื™ ื‘ืึทืžืคึผืก ื•ื•ืึธืก ืžื™ืจ ื’ืขืจืื˜ืŸ ืฆื• ืคึผืœืึธืžื‘ื™ืจืŸ.

OpenID Connect: ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ืคื•ืŸ ื™ื ืขืจืœืขืš ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืคื•ืŸ ืžื ื”ื’ ืฆื• ื ืึธืจืžืึทืœ

ื ืœืื ื’ืข ืฆืฒื˜ ืฆื•ืจื™ืง... ืฐื™ ืืณื”ืื˜ ื–ื™ืš ืืœืฅ ืื ื’ืขื”ื•ื™ื‘ืŸ

ืžื™ื˜ ืขื˜ืœืขื›ืข ื™ืึธืจ ืฆื•ืจื™ืง, ื•ื•ืขืŸ ืขืก ื–ืขื ืขืŸ ื’ืขื•ื•ืขืŸ ืฆื• ืคื™ืœืข ื™ื ืขืจืœืขืš ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืคึฟืึทืจ ืžืึทื ื•ืึทืœ ืงืึธื ื˜ืจืึธืœ, ืžื™ืจ ื’ืขืฉืจื™ื‘ืŸ ืึท ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืฆื• ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืึทืงืกืขืก ืื™ืŸ ื“ื™ ืคื™ืจืžืข. ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ืึท ืคึผืฉื•ื˜ ืจืึทื™ืœ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื•ื•ืึธืก ืื™ื– ืคืืจื‘ื•ื ื“ืŸ ืฆื• ืึท ื“ืึทื˜ืึทื‘ื™ื™ืก ืžื™ื˜ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ืขืžืคึผืœื•ื™ื™ื–, ื•ื•ื• ืึทืงืกืขืก ืฆื• ืคืึทืจืฉื™ื“ืŸ ืคืึทื ื’ืงืฉืึทื ืึทืœื™ื˜ื™ ืื™ื– ืงืึทื ืคื™ื’ื™ืขืจื“. ืื™ืŸ ื“ืขืจ ื–ืขืœื‘ื™ืงืขืจ ืฆื™ื™ื˜, ืžื™ืจ ืื•ื™ืคืฉื˜ื™ื™ืŸ ื“ืขืจ ืขืจืฉื˜ืขืจ SSO, ื•ื•ืึธืก ืื™ื– ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ ื•ื•ืขืจืึทืคืึทืงื™ื™ืฉืึทืŸ ืคื•ืŸ ื˜ืึธืงืขื ืก ืคื•ืŸ ื“ื™ ื–ื™ื™ึทื˜ ืคื•ืŸ ื“ืขื ืงืœื™ืขื ื˜ ืื•ืŸ ื“ื™ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ืกืขืจื•ื•ืขืจ, ื“ื™ ืกื™ืžืขืŸ ืื™ื– ื˜ืจืึทื ืกืžื™ื˜ื˜ืขื“ ืื™ืŸ ื™ื ืงืจื™ืคึผื˜ื™ื“ ืคืึธืจืขื ืžื™ื˜ ืขื˜ืœืขื›ืข ืคึผืึทืจืึทืžืขื˜ืขืจืก ืื•ืŸ ื•ื•ืขืจืึทืคื™ื™ื“ ืื•ื™ืฃ ื“ื™ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ืกืขืจื•ื•ืขืจ. ื“ืึธืก ืื™ื– ื ื™ืฉื˜ ื“ื™ ืžืขืจืกื˜ ื‘ืึทืงื•ื•ืขื ืึธืคึผืฆื™ืข, ื•ื•ื™ื™ึทืœ ื™ืขื“ืขืจ ื™ื ืขืจืœืขืš ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื”ืื˜ ืฆื• ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ืึท ื”ื™ืคึผืฉ ืคึผืœืึทืกื˜ ืคื•ืŸ ืœืึธื’ื™ืง, ืื•ืŸ ื“ื™ ื“ืึทื˜ืึทื‘ื™ื™ืกื™ื– ืคื•ืŸ ืึธื ื’ืขืฉื˜ืขืœื˜ืขืจ ื–ืขื ืขืŸ ื’ืึธืจ ืกื™ื ื’ืงืจืึทื ื™ื™ื–ื“ ืžื™ื˜ ื“ื™ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ืกืขืจื•ื•ืขืจ.

ื ืึธืš ืขื˜ืœืขื›ืข ืžืึธืœ, ืžื™ืจ ื‘ืึทืฉืœืึธืกืŸ ืฆื• ืคืึทืจืคึผืึธืฉืขื˜ืขืจืŸ ื“ื™ ืึทืจื‘ืขื˜ ืคื•ืŸ ืกืขื ื˜ืจืึทืœื™ื™ื–ื“ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ. SSO ืื™ื– ื˜ืจืึทื ืกืคืขืจื“ ืฆื• ื“ื™ ื‘ืึทืœืึทื ืกืขืจ. ืžื™ื˜ ื“ื™ ื”ื™ืœืฃ ืคื•ืŸ OpenResty, ืึท ืžื•ืกื˜ืขืจ ืื™ื– ืฆื•ื’ืขืœื™ื™ื’ื˜ ืฆื• Lua ื•ื•ืึธืก ืึธืคึผื’ืขืฉื˜ืขืœื˜ ื˜ืึธืงืขื ืก, ื’ืขื•ื•ืื•ืกื˜ ื•ื•ืึธืก ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื“ื™ ื‘ืขื˜ืŸ ืื™ื– ื’ืขื’ืื ื’ืขืŸ ืฆื•, ืื•ืŸ ืงืขืŸ ืงืึธื ื˜ืจืึธืœื™ืจืŸ ืื•ื™ื‘ ืขืก ืื™ื– ืึทืงืกืขืก ื“ืึธืจื˜. ื“ืขื ืฆื•ื’ืึทื ื’ ื–ื™ื™ืขืจ ืกื™ืžืคึผืœืึทืคื™ื™ื“ ื“ื™ ืึทืจื‘ืขื˜ ืคื•ืŸ ืงืึทื ื˜ืจืึธื•ืœื™ื ื’ ืึทืงืกืขืก ืฆื• ื™ื ืขืจืœืขืš ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– - ืื™ืŸ ื“ื™ ืงืึธื“ ืคื•ืŸ ื™ืขื“ืขืจ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ, ืขืก ืื™ื– ื ื™ื˜ ืžืขืจ ื ื™ื™ื˜ื™ืง ืฆื• ื‘ืึทืฉืจื™ื™ึทื‘ืŸ ื ืึธืš ืœืึธื’ื™ืง. ื•ื•ื™ ืึท ืจืขื–ื•ืœื˜ืึทื˜, ืžื™ืจ ืคืืจืžืื›ื˜ ื“ื™ ืคืึทืจืงืขืจ ื•ื™ืกื•ื•ื™ื™ื ื™ืง, ืื•ืŸ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ื–ื™ืš ื”ืื˜ ื ื™ืฉื˜ ื•ื•ื™ืกืŸ ืขืคึผืขืก ื•ื•ืขื’ืŸ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ.

ืื‘ืขืจ ืื™ื™ืŸ ืคืจืื‘ืœืขื ืื™ื– ื’ืขื‘ืœื™ื‘ืŸ ืืŸ ืื•ื™ืกื’ืขืœื™ื™ื–ื˜. ื•ื•ืึธืก ื•ื•ืขื’ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ื•ื•ืึธืก ื“ืึทืจืคึฟืŸ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ืขืžืคึผืœื•ื™ื™ื–? ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ืžืขื’ืœืขืš ืฆื• ืฉืจื™ื™ึทื‘ืŸ ืึทืŸ ืึทืคึผื™ ืคึฟืึทืจ ื“ื™ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ื“ื™ื ืกื˜, ืึธื‘ืขืจ ื“ืขืžืึธืœื˜ ืื™ืจ ื•ื•ืึธืœื˜ ื”ืึธื‘ืŸ ืฆื• ืœื™ื™ื’ืŸ ื ืึธืš ืœืึธื’ื™ืง ืคึฟืึทืจ ื™ืขื“ืขืจ ืึทื–ืึท ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ. ืื™ืŸ ืึทื“ื™ืฉืึทืŸ, ืžื™ืจ ื’ืขื•ื•ืืœื˜ ืฆื• ื‘ืึทืงื•ืžืขืŸ ื‘ืึทืคืจื™ื™ึทืขืŸ ืคื•ืŸ ื“ื™ ืึธืคืขื ื’ื™ืงื™ื™ึทื˜ ืื•ื™ืฃ ืื™ื™ื ืขืจ ืคื•ืŸ ืื•ื ื“ื–ืขืจ ื–ื™ืš-ื’ืขืฉืจื™ื‘ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื–, ื•ื•ืึธืก ื•ื•ืึธืœื˜ ืฉืคึผืขื˜ืขืจ ื–ื™ื™ืŸ ืื™ื‘ืขืจื’ืขื–ืขืฆื˜ ืื™ืŸ OpenSource, ืื•ื™ืฃ ืื•ื ื“ื–ืขืจ ื™ื ืขืจืœืขืš ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ืกืขืจื•ื•ืขืจ. ืžื™ืจ ื•ื•ืขืœืŸ ืจืขื“ืŸ ื•ื•ืขื’ืŸ ืื™ื ืขื˜ืœืขื›ืข ืžืึธืœ. ื“ื™ ืœื™ื™ื–ื•ื ื’ ืฆื• ื‘ื™ื™ื“ืข ืคึผืจืึธื‘ืœืขืžืก ืื™ื– ื’ืขื•ื•ืขืŸ OAuth.

ืฆื• ืคึผืจืึธืกื˜ ืกื˜ืึทื ื“ืึทืจื“ืก

OAuth ืื™ื– ืึท ืคืึทืจืฉื˜ื™ื™ื™ืง, ื‘ื›ืœืœ ืื ื’ืขื ื•ืžืขืŸ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ื ืึธืจืžืึทืœ, ืึธื‘ืขืจ ื–ื™ื ื˜ ื‘ืœื•ื™ื– ื–ื™ื™ึทืŸ ืคืึทื ื’ืงืฉืึทื ืึทืœื™ื˜ื™ ืื™ื– ื ื™ืฉื˜ ื’ืขื ื•ื’, ื–ื™ื™ ืžื™ื“ ืื ื’ืขื”ื•ื™ื‘ืŸ ืฆื• ื‘ืึทื˜ืจืึทื›ื˜ืŸ OpenID Connect (OIDC). OIDC ื–ื™ืš ืื™ื– ื“ื™ ื“ืจื™ื˜ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ืึธืคึฟืŸ ืึธื˜ืขื ื˜ืึทืงื™ื™ืฉืึทืŸ ื ืึธืจืžืึทืœ, ื•ื•ืึธืก ืื™ื– ืคืœืึธื•ื“ ืื™ืŸ ืึทืŸ ืึทื“ื™ืฉืึทืŸ ืื™ื‘ืขืจ ื“ื™ OAuth 2.0 ืคึผืจืึธื˜ืึธืงืึธืœ (ืึทืŸ ืึธืคึฟืŸ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ืคึผืจืึธื˜ืึธืงืึธืœ). ื“ืขื ืœื™ื™ื–ื•ื ื’ ืงืœืึธื•ื–ื™ื– ื“ื™ ืคึผืจืึธื‘ืœืขื ืคื•ืŸ ืคืขืœืŸ ืคื•ืŸ ื“ืึทื˜ืŸ ื•ื•ืขื’ืŸ ื“ื™ ืกื•ืฃ ื‘ืึทื ื™ืฆืขืจ, ืื•ืŸ ืื•ื™ืš ืžืื›ื˜ ืขืก ืžืขื’ืœืขืš ืฆื• ื˜ื•ื™ืฉืŸ ื“ื™ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ืฉืคึผื™ื™ึทื–ืขืจ.

ืึธื‘ืขืจ, ืžื™ืจ ื”ืึธื‘ืŸ ื ื™ืฉื˜ ืื•ื™ืกื“ืขืจื•ื•ื™ื™ืœื˜ ืึท ืกืคึผืขืฆื™ืคื™ืฉ ืฉืคึผื™ื™ึทื–ืขืจ ืื•ืŸ ื‘ืึทืฉืœืึธืกืŸ ืฆื• ืœื™ื™ื’ืŸ ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ ืžื™ื˜ OIDC ืคึฟืึทืจ ืื•ื ื“ื–ืขืจ ื™ื’ื–ื™ืกื˜ื™ื ื’ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ืกืขืจื•ื•ืขืจ. ืื™ืŸ ื˜ื•ื™ื•ื•ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ืขื ื‘ืึทืฉืœื•ืก ืื™ื– ื’ืขื•ื•ืขืŸ ื“ืขืจ ืคืึทืงื˜ ืึทื– OIDC ืื™ื– ื–ื™ื™ืขืจ ืคืœืขืงืกืึทื‘ืึทืœ ืื™ืŸ ื˜ืขืจืžื™ื ืขืŸ ืคื•ืŸ ื“ืขืจ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ืคื•ืŸ ื“ืขืจ ืกื•ืฃ ื‘ืึทื ื™ืฆืขืจ. ืื–ื•ื™, ืขืก ืื™ื– ื’ืขื•ื•ืขืŸ ืžืขื’ืœืขืš ืฆื• ื™ื ืกื˜ืจื•ืžืขื ื˜ OIDC ืฉื˜ื™ืฆืŸ ืื•ื™ืฃ ื“ื™ื™ืŸ ืงืจืึทื ื˜ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ืกืขืจื•ื•ืขืจ.

OpenID Connect: ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ืคื•ืŸ ื™ื ืขืจืœืขืš ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืคื•ืŸ ืžื ื”ื’ ืฆื• ื ืึธืจืžืึทืœ

ืื•ื ื“ื–ืขืจ ื•ื•ืขื’ ืคื•ืŸ ื™ืžืคึผืœืึทืžืขื ื™ื ื’ ืื•ื ื“ื–ืขืจ ืื™ื™ื’ืขื ืข OIDC ืกืขืจื•ื•ืขืจ

1) ื’ืขื‘ืจืื›ื˜ ื“ื™ ื“ืึทื˜ืŸ ืฆื• ื“ื™ ื’ืขื‘ืขื˜ืŸ ืคืึธืจืขื

ืฆื• ื•ื™ืกืฉื˜ื™ืžืขืŸ OIDC, ืขืก ืื™ื– ื ื™ื™ื˜ื™ืง ืฆื• ื‘ืจืขื ื’ืขืŸ ื“ื™ ืงืจืึทื ื˜ ื‘ืึทื ื™ืฆืขืจ ื“ืึทื˜ืŸ ืื™ืŸ ืึท ืคืึธืจืขื ื•ื•ืึธืก ืื™ื– ืคืึทืจืฉื˜ื™ื™ื™ืง ื“ื•ืจืš ื“ื™ ื ืึธืจืžืึทืœ. ืื™ืŸ OIDC, ื“ืึธืก ืื™ื– ื’ืขืจื•ืคืŸ ืงืœื™ื™ืžื–. ืงืœื™ื™ืžื– ื–ืขื ืขืŸ ื‘ื™ื™ืกื™ืงืœื™ ืœืขืฆื˜ ืคืขืœื“ืขืจ ืื™ืŸ ื“ื™ ื‘ืึทื ื™ืฆืขืจ ื“ืึทื˜ืึทื‘ื™ื™ืก (ื ืึธืžืขืŸ, E- ื‘ืจื™ื•ื•, ื˜ืขืœืขืคืึธืŸ, ืืื–"ื• ื•). ืขืงื–ื™ืกื˜ื™ืจื˜ ื ืึธืจืžืึทืœ ืจืฉื™ืžื” ืคื•ืŸ ืกื˜ืึทืžืคึผืก, ืื•ืŸ ืึทืœืฅ ื•ื•ืึธืก ืื™ื– ื ื™ืฉื˜ ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ืื™ืŸ ื“ืขื ืจืฉื™ืžื” ืื™ื– ื’ืขื”ืืœื˜ืŸ ืžื ื”ื’. ื“ืขืจื™ื‘ืขืจ, ื“ืขืจ ืขืจืฉื˜ืขืจ ืคื•ื ื˜ ื•ื•ืึธืก ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื‘ืึทืฆืึธืœืŸ ื•ืคืžืขืจืงื–ืึทืžืงื™ื™ื˜ ืฆื• ืื•ื™ื‘ ืื™ืจ ื•ื•ื™ืœืŸ ืฆื• ืงืœื™ื™ึทื‘ืŸ ืึทืŸ ื™ื’ื–ื™ืกื˜ื™ื ื’ OIDC ืฉืคึผื™ื™ึทื–ืขืจ ืื™ื– ื“ื™ ืžืขื’ืœืขื›ืงื™ื™ื˜ ืคื•ืŸ ื‘ืึทืงื•ื•ืขื ืงื•ืกื˜ืึธืžื™ื–ืึทื˜ื™ืึธืŸ ืคื•ืŸ ื ื™ื™ึทืข ื‘ืจืึทื ื“ื–.

ื“ื™ ื’ืจื•ืคึผืข ืคื•ืŸ โ€‹โ€‹ื›ืึทืœืžืึทืจืงืก ืื™ื– ืงืึทืžื‘ื™ื™ื ื“ ืื™ืŸ ื“ื™ ืคืืœื’ืขื ื“ืข ืกืึทื‘ืกืขื˜ - ืคืึทืจื ืขื. ื‘ืขืฉืึทืก ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ, ืึทืงืกืขืก ืื™ื– ืคืืจืœืื ื’ื˜ ื ื™ืฉื˜ ืฆื• ืกืคึผืขืฆื™ืคื™ืฉ ื‘ืจืึทื ื“ื–, ืึธื‘ืขืจ ืฆื• ืกืงืึธืคึผืขืก, ืืคื™ืœื• ืื•ื™ื‘ ืขื˜ืœืขื›ืข ืคื•ืŸ โ€‹โ€‹โ€‹โ€‹ื“ื™ ื‘ืจืึทื ื“ื– ืคื•ืŸ ื“ื™ ืคืึทืจื ืขื ื–ืขื ืขืŸ ื ื™ืฉื˜ ื“ืืจืฃ.

2 ) ื™ืžืคึผืœืขืžืขื ื˜ืขื“ ื“ื™ ื ื•ื™ื˜ื™ืง ื’ืจืึทื ืฅ

ื“ืขืจ ื•ื•ื™ื™ึทื˜ืขืจ ื˜ื™ื™ืœ ืคื•ืŸ OIDC ื™ื ืึทื’ืจื™ื™ืฉืึทืŸ ืื™ื– ื“ื™ ืกืขืœืขืงืฆื™ืข ืื•ืŸ ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ื˜ื™ื™ืคึผืก, ื“ื™ ืึทื–ื•ื™ ื’ืขืจื•ืคืขื ืข ื’ืจืึทื ืฅ. ื“ืขืจ ื•ื•ื™ื™ึทื˜ืขืจ ืกืฆืขื ืึทืจ ืคื•ืŸ ื™ื ื˜ืขืจืึทืงืฉืึทืŸ ืฆื•ื•ื™ืฉืŸ ื“ื™ ืื•ื™ืกื’ืขืงืœื™ื‘ืŸ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืื•ืŸ ื“ื™ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ืกืขืจื•ื•ืขืจ ื•ื•ืขื˜ ืึธืคืขื ื’ืขืŸ ืื•ื™ืฃ ื“ื™ ืื•ื™ืกื’ืขืงืœื™ื‘ืŸ ืฉืขื ืงืขืŸ. ืึท ื™ื’ื–ืขืžืคึผืœืขืจื™ ืกื›ืขืžืข ืคึฟืึทืจ ื˜ืฉื•ื–ื™ื ื’ ื“ื™ ืจืขื›ื˜ ืฉืขื ืงืขืŸ ืื™ื– ื’ืขื•ื•ื™ื–ืŸ ืื™ืŸ ื“ื™ ืคื™ื’ื•ืจ ืื•ื ื˜ืŸ.

OpenID Connect: ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ืคื•ืŸ ื™ื ืขืจืœืขืš ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืคื•ืŸ ืžื ื”ื’ ืฆื• ื ืึธืจืžืึทืœ

ืคึฟืึทืจ ืื•ื ื“ื–ืขืจ ืขืจืฉื˜ืขืจ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ, ืžื™ืจ ื’ืขื•ื•ื™ื™ื ื˜ ื“ื™ ืžืขืจืกื˜ ืคึผืจืึธืกื˜ ืฉืขื ืงืขืŸ, ื“ื™ ืึทื•ื˜ื”ืึธืจื™ื–ืึทื˜ื™ืึธืŸ ืงืึธื•ื“. ื–ื™ื™ึทืŸ ื—ื™ืœื•ืง ืคื•ืŸ ืื ื“ืขืจืข ืื™ื– ืึทื– ืขืก ืื™ื– ืึท ื“ืจื™ื™-ืฉืจื™ื˜, ื“.ื”. ืื™ื– ืึทื ื“ืขืจื’ืึธื•ื™ื ื’ ื ืึธืš ื˜ืขืกื˜ื™ื ื’. ืขืจืฉื˜ืขืจ, ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ ืžืื›ื˜ ืึท ื‘ืงืฉื” ืคึฟืึทืจ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ, ื‘ืืงื•ืžื˜ ืึท ืกื™ืžืขืŸ - ืึทื•ื˜ื”ืึธืจื™ื–ืึทื˜ื™ืึธืŸ ืงืึธื•ื“, ื“ืขืžืึธืœื˜ ืžื™ื˜ ื“ืขื ืกื™ืžืขืŸ, ื•ื•ื™ ืื•ื™ื‘ ืžื™ื˜ ืึท ื‘ื™ืœืขื˜ ืคึฟืึทืจ ืึทืจื•ืžืคืึธืจืŸ, ืจื™ืงื•ื•ืขืก ืึท ืึทืงืกืขืก ืกื™ืžืขืŸ. ืึทืœืข ื“ื™ ื”ื•ื™ืคึผื˜ ื™ื ื˜ืขืจืึทืงืฉืึทืŸ ืคื•ืŸ ื“ืขื ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ืฉืจื™ืคื˜ ืื™ื– ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ืจื™ื“ืขืจืขืงืฅ ืฆื•ื•ื™ืฉืŸ ื“ื™ ืึทืคึผืœืึทืงื™ื™ืฉืึทืŸ ืื•ืŸ ื“ื™ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ืกืขืจื•ื•ืขืจ. ืื™ืจ ืงืขื ื˜ ืœื™ื™ืขื ืขืŸ ืžืขืจ ื•ื•ืขื’ืŸ ื“ืขื ืฉืขื ืงืขืŸ ื“ืึธ.

OAuth ืึทื“ื›ื™ืจื– ืฆื• ื“ืขืจ ื‘ืึทื’ืจื™ืฃ ืึทื– ืึทืงืกืขืก ื˜ืึธืงืขื ืก ื‘ืืงื•ืžืขืŸ ื ืึธืš ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ื–ืึธืœ ื–ื™ื™ืŸ ืฆื™ื™ึทื˜ื•ื•ื™ื™ึทืœื™ืง ืื•ืŸ ื–ืึธืœ ื˜ื•ื™ืฉืŸ, ืคึผืจืขืคืขืจืึทื‘ืœื™ ื™ืขื“ืขืจ 10 ืžื™ื ื•ื˜ ืื™ืŸ ื“ื•ืจื›ืฉื ื™ื˜ืœืขืš. ื“ืขืจ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ืงืึธื•ื“ ืฉืขื ืงืขืŸ ืื™ื– ืึท ื“ืจื™ื™-ืฉืจื™ื˜ ื•ื•ืขืจืึทืคืึทืงื™ื™ืฉืึทืŸ ื“ื•ืจืš ืจื™ื“ืขืจืขืงืฅ, ื™ืขื“ืขืจ 10 ืžื™ื ื•ื˜ ืฆื• ื•ื•ืขื ื“ืŸ ืึทื–ืึท ืึท ืฉืจื™ื˜, ืคืจืึทื ื’ืงืœื™, ืื™ื– ื ื™ืฉื˜ ื“ื™ ืžืขืจืกื˜ ืึธื ื’ืขื ืขื ืึทืจื‘ืขื˜ ืคึฟืึทืจ ื“ื™ ืื•ื™ื’ืŸ. ืฆื• ืกืึธืœื•ื•ืข ื“ืขื ืคึผืจืึธื‘ืœืขื, ืขืก ืื™ื– ืืŸ ืื ื“ืขืจ ืฉืขื ืงืขืŸ - Refresh Token, ื•ื•ืึธืก ืžื™ืจ ืื•ื™ืš ื’ืขื•ื•ื™ื™ื ื˜ ืื™ืŸ ืื•ื ื“ื–ืขืจ ืœืึทื ื“. ืึทืœืฅ ืื™ื– ื“ืึธ ื’ืจื™ื ื’ืขืจ. ื‘ืขืฉืึทืก ื•ื•ืขืจืึทืคืึทืงื™ื™ืฉืึทืŸ ืคื•ืŸ ืืŸ ืื ื“ืขืจ ืฉืขื ืงืขืŸ, ืื™ืŸ ืึทื“ื™ืฉืึทืŸ ืฆื• ื“ื™ ื”ื•ื™ืคึผื˜ ืึทืงืกืขืก ื˜ืึธืงืขืŸ, ืืŸ ืื ื“ืขืจ ืื™ื™ื ืขืจ ืื™ื– ืืจื•ื™ืก - Refresh Token, ื•ื•ืึธืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื•ื•ื™ื™ื ื˜ ื‘ืœื•ื™ื– ืึทืžืึธืœ ืื•ืŸ ื–ื™ื™ืŸ ืœืขื‘ืŸ ืื™ื– ื™ื•ื–ืฉืึทื•ื•ืึทืœื™ ืคื™ืœ ืžืขืจ. ืžื™ื˜ ื“ืขื ืจืขืคืจืขืฉ ื˜ืึธืงืขืŸ, ื•ื•ืขืŸ ื“ื™ TTL (ืฆื™ื™ื˜ ืฆื• ืœืขื‘ืŸ) ืคื•ืŸ ื“ื™ ื”ื•ื™ืคึผื˜ ืึทืงืกืขืก ืกื™ืžืขืŸ ืขื ื“ืก, ื“ื™ ื‘ืขื˜ืŸ ืคึฟืึทืจ ืึท ื ื™ื™ึท ืึทืงืกืขืก ืกื™ืžืขืŸ ื•ื•ืขื˜ ืงื•ืžืขืŸ ืฆื• ื“ื™ ืขื ื“ืคึผื•ื™ื ื˜ ืคื•ืŸ ืืŸ ืื ื“ืขืจ ืฉืขื ืงืขืŸ. ื“ื™ ื’ืขื•ื•ื™ื™ื ื˜ ืจืขืคืจืขืฉ ื˜ืึธืงืขืŸ ืื™ื– ืžื™ื“ ื‘ืึทืฉื˜ืขื˜ื™ืง ืฆื• ื ื•ืœ. ื“ืขื ื˜ืฉืขืง ืื™ื– ืฆื•ื•ื™ื™-ืฉืจื™ื˜ ืื•ืŸ ืงืขื ืขืŸ ื–ื™ื™ืŸ ื“ื•ืจื›ื’ืขืงืึธื›ื˜ ืื™ืŸ ื“ืขืจ ื”ื™ื ื˜ืขืจื’ืจื•ื ื˜, ื™ืžืคึผืขืจืกืขืคึผื˜ื™ื‘ืœื™ ืฆื• ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ.

3) ืฉื˜ืขืœืŸ ืึทืจื•ื™ืฃ ืžื ื”ื’ ื“ืึทื˜ืŸ ืจืขื–ื•ืœื˜ืึทื˜ ืคึฟืึธืจืžืึทื˜ื™ืจื•ื ื’ืขืŸ

ื ืึธืš ื™ืžืคึผืœืึทืžืขื ืึทื“ ื“ื™ ืื•ื™ืกื’ืขืงืœื™ื‘ืŸ ื’ืจืึทื ืฅ, ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ืึทืจื‘ืขื˜, ืขืก ืื™ื– ื•ื•ืขืจื˜ ื“ืขืจืžืึธื ืขืŸ ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื“ื™ ืกื•ืฃ ื‘ืึทื ื™ืฆืขืจ. OIDC ื”ืื˜ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ืขื ื“ืคึผื•ื™ื ื˜ ืคึฟืึทืจ ื“ืขื, ื•ื•ื• ืื™ืจ ืงืขื ืขืŸ ื‘ืขื˜ืŸ ื‘ืึทื ื™ืฆืขืจ ื“ืึทื˜ืŸ ืžื™ื˜ ื“ื™ื™ืŸ ืงืจืึทื ื˜ ืึทืงืกืขืก ืกื™ืžืขืŸ ืื•ืŸ ืื•ื™ื‘ ืขืก ืื™ื– ื“ืขืจื”ื™ื™ึทื ื˜ื™ืงื˜. ืื•ืŸ ืื•ื™ื‘ ื“ืขืจ ื‘ืึทื ื™ืฆืขืจ 'ืก ื“ืึทื˜ืŸ ื˜ืึธืŸ ื ื™ื˜ ื˜ื•ื™ืฉืŸ ืึทื–ื•ื™ ืึธืคื˜, ืื•ืŸ ืื™ืจ ื“ืึทืจืคึฟืŸ ืฆื• ื ืึธื›ืคืึธืœื’ืŸ ื“ื™ ืื™ืฆื˜ื™ืงืข ืคื™ืœืข ืžืึธืœ, ืื™ืจ ืงืขื ืขืŸ ืงื•ืžืขืŸ ืฆื• ืึทื–ืึท ืึท ืœื™ื™ื–ื•ื ื’ ื•ื•ื™ JWT ื˜ืึธืงืขื ืก. ื“ื™ ื˜ืึธืงืขื ืก ื–ืขื ืขืŸ ืื•ื™ืš ื’ืขืฉื˜ื™ืฆื˜ ื“ื•ืจืš ื“ื™ ืกื˜ืึทื ื“ืึทืจื˜. ื“ื™ JWT ืกื™ืžืขืŸ ื–ื™ืš ื‘ืืฉื˜ื™ื™ื˜ ืคื•ืŸ ื“ืจื™ื™ ืคึผืึทืจืฅ: ื›ืขื“ืขืจ (ืื™ื ืคึฟืึธืจืžืึทืฆื™ืข ื•ื•ืขื’ืŸ ื“ืขื ืกื™ืžืขืŸ), ืคึผื™ื™ืœืึธื•ื“ (ืงื™ื™ืŸ ื ื™ื™ื˜ื™ืง ื“ืึทื˜ืŸ) ืื•ืŸ ื›ืกื™ืžืข (ื›ืกื™ืžืข, ื“ื™ ืกื™ืžืขืŸ ืื™ื– ื’ืขื—ืชืžืขื˜ ื“ื•ืจืš ื“ื™ ืกืขืจื•ื•ืขืจ ืื•ืŸ ืื™ืจ ืงืขื ืขืŸ ืฉืคึผืขื˜ืขืจ ืงืึธื ื˜ืจืึธืœื™ืจืŸ ื“ื™ ืžืงื•ืจ ืคื•ืŸ ื–ื™ื™ืŸ ื›ืกื™ืžืข).

ืื™ืŸ ื“ื™ OIDC ื™ืžืคึผืœืึทืžืขื ื˜ื™ื™ืฉืึทืŸ, ื“ื™ JWT ื˜ืึธืงืขืŸ ืื™ื– ื’ืขืจื•ืคืŸ id_token. ืขืก ืงืขื ืขืŸ ื–ื™ื™ืŸ ื’ืขื‘ืขื˜ืŸ ืฆื•ื–ืืžืขืŸ ืžื™ื˜ ืึท ืจืขื’ื•ืœืขืจ ืึทืงืกืขืก ืกื™ืžืขืŸ ืื•ืŸ ืึทืœืข ื•ื•ืึธืก ืื™ื– ืœื™ื ืงืก ืื™ื– ืฆื• ื‘ืึทืฉื˜ืขื˜ื™ืงืŸ ื“ื™ ื›ืกื™ืžืข. ื“ืขืจ ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ืกืขืจื•ื•ืขืจ ื”ืื˜ ืึท ื‘ืึทื–ื•ื ื“ืขืจ ืขื ื“ืคึผื•ื™ื ื˜ ืคึฟืึทืจ ื“ืขื ืžื™ื˜ ืึท ื‘ื™ื ื˜ืœ ืคื•ืŸ ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœืขืŸ ืื™ืŸ ื“ืขื ืคึฟืึธืจืžืึทื˜ J.W.K.. ืื•ืŸ ื’ืขืจืขื“ื˜ ืคื•ืŸ ื“ืขื, ืขืก ืื™ื– ื•ื•ืขืจื˜ ื“ืขืจืžืึธื ืขืŸ ืึทื– ืขืก ืื™ื– ืืŸ ืื ื“ืขืจ ืขื ื“ืคึผื•ื™ื ื˜, ื•ื•ืึธืก, ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ ื“ื™ ื ืึธืจืžืึทืœ RFC5785 ืจื™ืคืœืขืงืก ื“ื™ ืงืจืึทื ื˜ ืงืึทื ืคื™ื’ื™ืขืจื™ื™ืฉืึทืŸ ืคื•ืŸ ื“ื™ ืึธื™ื“ืง ืกืขืจื•ื•ืขืจ. ืขืก ื›ึผื•ืœืœ ืึทืœืข ืขื ื“ืคึผื•ื™ื ื˜ ืึทื“ืจืขืกืขืก (ืึทืจื™ื™ึทื ื’ืขืจืขื›ื ื˜ ื“ื™ ืึทื“ืจืขืก ืคื•ืŸ ื“ื™ ืฆื™ื‘ื•ืจ ืฉืœื™ืกืœ ืจื™ื ื’ ื’ืขื ื™ืฆื˜ ืคึฟืึทืจ ืกื™ื™ื ื™ื ื’), ื’ืขืฉื˜ื™ืฆื˜ ื‘ืจืึทื ื“ื– ืื•ืŸ ืกืงืึธืคึผืขืก, ื’ืขื•ื•ื™ื™ื ื˜ ืขื ืงืจื™ืคึผืฉืึทืŸ ืึทืœื’ืขืจื™ื“ืึทืžื–, ื’ืขืฉื˜ื™ืฆื˜ ื’ืจืึทื ืฅ, ืขื˜ืง.

ืœืžืฉืœ ืื•ื™ืฃ ื’ื•ื’ืœ:

{
 "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 ืึธืคึผืฆื™ื™ื›ืŸ.

OpenID Connect: ื“ืขืจืœื•ื™ื‘ืขื ื™ืฉ ืคื•ืŸ ื™ื ืขืจืœืขืš ืึทืคึผืœืึทืงื™ื™ืฉืึทื ื– ืคื•ืŸ ืžื ื”ื’ ืฆื• ื ืึธืจืžืึทืœ

ืื•ื™ืš ื˜ืึธืŸ ื ื™ื˜ ืคืึทืจื’ืขืกืŸ ื•ื•ืขื’ืŸ ื™ื’ื–ื™ืกื˜ื™ื ื’ ื‘ืึทืฆืึธืœื˜ ืคึผืจืึทื•ื•ื™ื™ื“ืขืจื– ืื•ื™ื‘ ืื™ืจ ื˜ืึธืŸ ื ื™ืฉื˜ ื•ื•ืขืœืŸ ืฆื• ื”ืึทืœื˜ืŸ ื“ื™ื™ืŸ OIDC ืกืขืจื•ื•ืขืจ. ื”ื™ื™ึทื ื˜ ืขืก ื–ืขื ืขืŸ ืคื™ืœืข ื’ื•ื˜ ืึธืคึผืฆื™ืขืก.

ื•ื•ืึธืก ืก ื•ื•ื™ื™ึทื˜ืขืจ

ืื™ืŸ ื“ืขื ืœืขื‘ืŸ ืฆื•ืงื•ื ืคึฟื˜, ืžื™ืจ ื•ื•ืขืœืŸ ืคืึทืจืžืึทื›ืŸ ืคืึทืจืงืขืจ ืฆื• ื™ื ืขืจืœืขืš ื‘ืึทื“ื™ื ื•ื ื’ืก ืื•ื™ืฃ ืึท ืึทื ื“ืขืจืฉ ื•ื•ืขื’. ืžื™ืจ ืคึผืœืึทืŸ ืฆื• ืึทืจื™ื‘ืขืจืคื™ืจืŸ ืื•ื ื“ื–ืขืจ ืงืจืึทื ื˜ SSO ืื•ื™ืฃ ื“ื™ ื‘ืึทืœืึทื ืกืขืจ ื ื™ืฆืŸ OpenResty ืฆื• ืึท ืคึผืจืึทืงืกื™ ื‘ืื–ื™ืจื˜ ืื•ื™ืฃ OAuth. ืขืก ื–ืขื ืขืŸ ืฉื•ื™ืŸ ืคื™ืœืข ืคืึทืจื˜ื™ืง ืกืึทืœื•ืฉืึทื ื– ื“ืึธ, ืœืžืฉืœ:
github.com/bitly/oauth2_proxy
github.com/ory/oathkeeper
github.com/keycloak/keycloak-gatekeeper

ื ืึธืš ืžืึทื˜ืขืจื™ืึทืœืก

jwt.io - ื’ื•ื˜ ื“ื™ื ืกื˜ ืคึฟืึทืจ ื•ื•ืึทืœืึทื“ื™ื™ื˜ื™ื ื’ JWT ื˜ืึธืงืขื ืก
openid.net/developers/certified - ืจืฉื™ืžื” ืคื•ืŸ ืกืขืจื˜ืึทืคื™ื™ื“ ืึธื™ื“ืง ื™ืžืคึผืœืึทืžืึทื ืฅ

ืžืงื•ืจ: www.habr.com

ืœื™ื™ื’ืŸ ืึท ื‘ืึทืžืขืจืงื•ื ื’