OpenID Connect: เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบžเบฒเบเปƒเบ™เบˆเบฒเบเปเบšเบšเบเบณเบ™เบปเบ”เป€เบญเบ‡เป„เบ›เบชเบนเปˆเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™

เบชเบญเบ‡เบชเบฒเบกเป€เบ”เบทเบญเบ™เบเปˆเบญเบ™เบซเบ™เป‰เบฒเบ™เบตเป‰, เบ‚เป‰เบญเบเบเปเบฒเบฅเบฑเบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ OpenID Connect เป€เบžเบทเปˆเบญเบˆเบฑเบ”เบเบฒเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบซเบผเบฒเบเบฎเป‰เบญเบเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบžเบฒเบเปƒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ. เบˆเบฒเบเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป€เบญเบ‡, เบชเบฐเบ”เบงเบเปƒเบ™เบ‚เบฐเบซเบ™เบฒเบ”เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบเป‰เบฒเบเป„เบ›เบชเบนเปˆเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ—เบตเปˆเบเบญเบกเบฎเบฑเบšเป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›. เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เป‚เบ”เบเบœเปˆเบฒเบ™เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบชเบนเบ™เบเบฒเบ‡เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบเป€เบฎเบฑเบ”เปƒเบซเป‰เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™ monotonous เบ‡เปˆเบฒเบเบ”เบฒเบ, เบซเบผเบธเบ”เบœเปˆเบญเบ™เบ„เปˆเบฒเปƒเบŠเป‰เบˆเปˆเบฒเบเปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”, เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบŠเบญเบเบซเบฒเบงเบดเบ—เบตเปเบเป‰เป„เบ‚เบžเป‰เบญเบกเบ—เบตเปˆเบˆเบฐเป€เบฎเบฑเบ”เบซเบผเบฒเบเปเบฅเบฐเบšเปเปˆ rack เบชเบฐเบซเบกเบญเบ‡เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเบเบฒเบ™เบžเบฑเบ”เบ—เบฐเบ™เบฒเปƒเบซเบกเปˆ. เปƒเบ™โ€‹เบšเบปเบ”โ€‹เบ„เบงเบฒเบกโ€‹เบ™เบตเป‰, เบ‚เป‰เบฒโ€‹เบžเบฐโ€‹เป€เบˆเบปเป‰เบฒโ€‹เบˆเบฐโ€‹เป€เบงเบปเป‰เบฒโ€‹เป€เบ–เบดเบ‡โ€‹เบเบฒเบ™โ€‹เบซเบฑเบ™โ€‹เบ›เปˆเบฝเบ™โ€‹เบ™เบตเป‰โ€‹เปเบฅเบฐโ€‹เบ•เปเบฒโ€‹เปเบซเบ™เปˆเบ‡โ€‹เบ—เบตเปˆโ€‹เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เป„เบ”เป‰โ€‹เบˆเบฑเบ”โ€‹เบเบฒเบ™โ€‹เป€เบžเบทเปˆเบญโ€‹เบ•เบทเปˆเบกโ€‹เบ‚เปเป‰โ€‹เบกเบนเบ™โ€‹เปƒเบชเปˆ.

OpenID Connect: เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบžเบฒเบเปƒเบ™เบˆเบฒเบเปเบšเบšเบเบณเบ™เบปเบ”เป€เบญเบ‡เป„เบ›เบชเบนเปˆเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™

เบ”เบปเบ™โ€‹เบ™เบฒเบ™โ€‹เบกเบฒโ€‹เปเบฅเป‰เบง... เบกเบฑเบ™โ€‹เป€เบฅเบตเปˆเบกโ€‹เบ•เบปเป‰เบ™โ€‹เปเบ™เบงโ€‹เปƒเบ”

เบชเบญเบ‡เบชเบฒเบกเบ›เบตเบเปˆเบญเบ™, เป€เบกเบทเปˆเบญเบกเบตเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบžเบฒเบเปƒเบ™เบซเบผเบฒเบเป€เบเบตเบ™เป„เบ›เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ„เบงเบšเบ„เบธเบกเบ„เบนเปˆเบกเบท, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ‚เบฝเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเป€เบžเบทเปˆเบญเบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบžเบฒเบเปƒเบ™เบšเปเบฅเบดเบชเบฑเบ”. เบกเบฑเบ™เป€เบ›เบฑเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ Rails เบ‡เปˆเบฒเบเบ”เบฒเบเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบกเบตเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบžเบฐเบ™เบฑเบเบ‡เบฒเบ™, เบšเปˆเบญเบ™เบ—เบตเปˆเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ•เปˆเบฒเบ‡เป†เป„เบ”เป‰เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒ. เปƒเบ™เบ‚เบฐเบ™เบฐเบ”เบฝเบงเบเบฑเบ™, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบเบปเบ SSO เบ—เปเบฒเบญเบดเบ”, เป€เบŠเบดเปˆเบ‡เบญเบตเบ‡เปƒเบชเปˆเบเบฒเบ™เบเบงเบ”เบชเบญเบš tokens เบˆเบฒเบเบ‚เป‰เบฒเบ‡เบฅเบนเบเบ„เป‰เบฒเปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”, token เป„เบ”เป‰เบ–เบทเบเบ–เปˆเบฒเบเบ—เบญเบ”เปƒเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเบ–เบทเบเป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบ”เป‰เบงเบเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบซเบผเบฒเบเปเบฅเบฐเบเบงเบ”เบชเบญเบšเปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”. เบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบชเบฐเบ”เบงเบเบ—เบตเปˆเบชเบธเบ”, เบ™เบฑเบšเบ•เบฑเป‰เบ‡เปเบ•เปˆเปเบ•เปˆเบฅเบฐเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบžเบฒเบเปƒเบ™เบ•เป‰เบญเบ‡เบญเบฐเบ—เบดเบšเบฒเบเบŠเบฑเป‰เบ™เบ‚เบญเบ‡เป€เบซเบ”เบœเบปเบ™เบขเปˆเบฒเบ‡เบซเบผเบงเบ‡เบซเบผเบฒเบ, เปเบฅเบฐเบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบžเบฐเบ™เบฑเบเบ‡เบฒเบ™เป„เบ”เป‰เบ–เบทเบ synchronized เบขเปˆเบฒเบ‡เบชเบปเบกเบšเบนเบ™เบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”.

เบซเบผเบฑเบ‡เบˆเบฒเบเป€เบงเบฅเบฒเปƒเบ”เบซเบ™เบถเปˆเบ‡, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบงเบฝเบเบ‡เบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เบชเบนเบ™เบเบฒเบ‡เบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™. SSO เบ–เบทเบเป‚เบญเบ™เป„เบ›เบซเบฒเบœเบนเป‰เบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡. เบ”เป‰เบงเบเบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบ‚เบญเบ‡ OpenResty, เปเบกเปˆเปเบšเบšเป„เบ”เป‰เบ–เบทเบเป€เบžเบตเปˆเบกเปƒเบชเปˆ Lua เบ—เบตเปˆเบเบงเบ”เป€เบšเบดเปˆเบ‡ tokens, เบฎเบนเป‰เบงเปˆเบฒเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เปƒเบ”เบ—เบตเปˆเบฎเป‰เบญเบ‡เบ‚เปเป„เบ›, เปเบฅเบฐเบชเบฒเบกเบฒเบ”เบเบงเบ”เป€เบšเบดเปˆเบ‡เบงเปˆเบฒเบกเบตเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบšเปˆเบญเบ™เบ™เบฑเป‰เบ™เบซเบผเบทเบšเปเปˆ. เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เป€เบฎเบฑเบ”เปƒเบซเป‰เบงเบฝเบเบ‡เบฒเบ™เบ„เบงเบšเบ„เบธเบกเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบžเบฒเบเปƒเบ™เบ‡เปˆเบฒเบเบ”เบฒเบเบซเบผเบฒเบ - เปƒเบ™เบฅเบฐเบซเบฑเบ”เบ‚เบญเบ‡เปเบ•เปˆเบฅเบฐเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™, เบกเบฑเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบญเบฐเบ—เบดเบšเบฒเบเป€เบซเบ”เบœเบปเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบ›เบดเบ”เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบžเบฒเบเบ™เบญเบ, เปเบฅเบฐเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เป€เบญเบ‡เบเปเปˆเบšเปเปˆเบฎเบนเป‰เบซเบเบฑเบ‡เบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”.

เบขเปˆเบฒเบ‡เปƒเบ”เบเปเบ•เบฒเบก, เบšเบฑเบ™เบซเบฒเบซเบ™เบถเปˆเบ‡เบเบฑเบ‡เบšเปเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚. เบˆเบฐเป€เบ›เบฑเบ™เปเบ™เบงเปƒเบ”เบเปˆเบฝเบงเบเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบžเบฐเบ™เบฑเบเบ‡เบฒเบ™? เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบ‚เบฝเบ™ API เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”, เปเบ•เปˆเบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เป€เบžเบตเปˆเบกเป€เบซเบ”เบœเบปเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบชเปเบฒเบฅเบฑเบšเปเบ•เปˆเบฅเบฐเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ”เบฑเปˆเบ‡เบเปˆเบฒเบง. เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบžเบงเบเป€เบฎเบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เบเปเบฒเบˆเบฑเบ”เบเบฒเบ™เป€เบžเบดเปˆเบ‡เบžเบฒเบญเบฒเป„เบชเบซเบ™เบถเปˆเบ‡เปƒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเบ‚เบฝเบ™เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡, เป€เบŠเบดเปˆเบ‡เบ•เปเปˆเบกเบฒเบˆเบฐเบ–เบทเบเปเบ›เป€เบ›เบฑเบ™ OpenSource, เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เบžเบฒเบเปƒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ. เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบกเบฑเบ™เบšเบฒเบ‡เป€เบงเบฅเบฒ. เบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบฑเบ‡เบชเบญเบ‡เบšเบฑเบ™เบซเบฒเปเบกเปˆเบ™ OAuth.

เบเบฑเบšเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ—เบปเปˆเบงเป„เบ›

OAuth เปเบกเปˆเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเปƒเบˆเป„เบ”เป‰, เบเบญเบกเบฎเบฑเบšเป‚เบ”เบเบ—เบปเปˆเบงเป„เบ›, เปเบ•เปˆเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบžเบฝเบ‡เปเบ•เปˆเบเบฒเบ™เบ—เปเบฒเบ‡เบฒเบ™เบ‚เบญเบ‡เบกเบฑเบ™เบšเปเปˆเบžเบฝเบ‡เบžเป, เป€เบ‚เบปเบฒเป€เบˆเบปเป‰เบฒเบˆเบถเปˆเบ‡เป€เบฅเบตเปˆเบกเบžเบดเบˆเบฒเบฅเบฐเบ™เบฒ OpenID Connect (ODC). ODC เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡เปเบกเปˆเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเบชเบฒเบกเบ‚เบญเบ‡เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบเบฒเบ™เบžเบดเบชเบนเบ”เบขเบทเบ™เบขเบฑเบ™เปเบšเบšเป€เบ›เบตเบ”, เป€เบŠเบดเปˆเบ‡เป„เบ”เป‰เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบชเปˆเบงเบ™เป€เบชเบตเบกเบœเปˆเบฒเบ™เป‚เบ›เบฃเป‚เบ•เบ„เป OAuth 2.0 (เป‚เบ›เป‚เบ•เบ„เบญเบ™เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เปเบšเบšเป€เบ›เบตเบ”). เบเบฒเบ™เปเบเป‰เป„เบ‚เบ™เบตเป‰เบ›เบดเบ”เบšเบฑเบ™เบซเบฒเบ‚เบญเบ‡เบเบฒเบ™เบ‚เบฒเบ”เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบœเบนเป‰เปƒเบŠเป‰เบชเบธเบ”เบ—เป‰เบฒเบ, เปเบฅเบฐเบเบฑเบ‡เป€เบฎเบฑเบ”เปƒเบซเป‰เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบ›เปˆเบฝเบ™เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”.

เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เบžเบงเบเป€เบฎเบปเบฒเบšเปเปˆเป„เบ”เป‰เป€เบฅเบทเบญเบเบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เบชเบฐเป€เบžเบฒเบฐ เปเบฅเบฐเบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเป€เบžเบตเปˆเบกเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡เบเบฑเบš ODC เบชเปเบฒเบฅเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบงเบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ. เปƒเบ™เบ„เบงเบฒเบกเป‚เบ›เบ”เบ›เบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ™เบตเป‰เปเบกเปˆเบ™เบ„เบงเบฒเบกเบˆเบดเบ‡เบ—เบตเปˆเบงเปˆเบฒ ODC เบกเบตเบ„เบงเบฒเบกเบเบทเบ”เบซเบเบธเปˆเบ™เบซเบผเบฒเบเปƒเบ™เปเบ‡เปˆเบ‚เบญเบ‡เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เบชเบธเบ”เบ—เป‰เบฒเบ. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบกเบฑเบ™เป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ—เบตเปˆเบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ ODC เปƒเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™.

OpenID Connect: เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบžเบฒเบเปƒเบ™เบˆเบฒเบเปเบšเบšเบเบณเบ™เบปเบ”เป€เบญเบ‡เป„เบ›เบชเบนเปˆเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™

เบงเบดเบ—เบตเบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ ODC เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป€เบญเบ‡

1) เป„เบ”เป‰เบ™เปเบฒเป€เบญเบปเบฒเบ‚เปเป‰เบกเบนเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เปเบšเบšเบŸเบญเบกเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™

เป€เบžเบทเปˆเบญเบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™ ODDC, เบกเบฑเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ™เปเบฒเป€เบญเบปเบฒเบ‚เปเป‰เบกเบนเบ™เบœเบนเป‰เปƒเบŠเป‰เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เป€เบ‚เบปเป‰เบฒเป„เบ›เปƒเบ™เบฎเบนเบšเปเบšเบšเบ—เบตเปˆเป€เบ‚เบปเป‰เบฒเปƒเบˆเป„เบ”เป‰เป‚เบ”เบเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™. เปƒเบ™ OIDC เบ™เบตเป‰เป€เบญเบตเป‰เบ™เบงเปˆเบฒเบเบฒเบ™เบฎเบฝเบเบฎเป‰เบญเบ‡. เบเบฒเบ™เบฎเบฝเบเบฎเป‰เบญเบ‡เปเบกเปˆเบ™เบ‚เบปเบ‡เป€เบ‚เบ”เบชเบธเบ”เบ—เป‰เบฒเบเปƒเบ™เบ–เบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบœเบนเป‰เปƒเบŠเป‰ (เบŠเบทเปˆ, เบญเบตเป€เบกเบง, เป‚เบ—เบฅเบฐเบชเบฑเบš, เปเบฅเบฐเบญเบทเปˆเบ™เป†). เบกเบตเบขเบนเปˆ เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบ‚เบญเบ‡เบชเบฐเปเบ•เบก, เปเบฅเบฐเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบ—เบตเปˆเบšเปเปˆเป„เบ”เป‰เบฅเบงเบกเบขเบนเปˆเปƒเบ™เบšเบฑเบ™เบŠเบตเบฅเบฒเบเบŠเบทเปˆเบ™เบตเป‰เปเบกเปˆเบ™เบ–เบทเบงเปˆเบฒเป€เบ›เบฑเบ™เบ›เบฐเป€เบžเบ™เบต. เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบˆเบธเบ”เบ—เปเบฒเบญเบดเบ”เบ—เบตเปˆเบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป€เบญเบปเบฒเปƒเบˆเปƒเบชเปˆเบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบฅเบทเบญเบเบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™ ODC เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบงเปเบกเปˆเบ™เบ„เบงเบฒเบกเป€เบ›เบฑเบ™เป„เบ›เป„เบ”เป‰เบ‚เบญเบ‡เบเบฒเบ™เบ›เบฑเบšเปเบ•เปˆเบ‡เบเบตเปˆเบซเปเป‰เปƒเบซเบกเปˆเบ—เบตเปˆเบชเบฐเบ”เบงเบเบชเบฐเบšเบฒเบ.

เบเบธเปˆเบกเบ‚เบญเบ‡เป€เบ„เบทเปˆเบญเบ‡เบซเบกเบฒเบเบ–เบทเบเบฅเบงเบกเป€เบ‚เบปเป‰เบฒเป€เบ›เบฑเบ™เบŠเบธเบ”เบเปˆเบญเบเบ•เปเปˆเป„เบ›เบ™เบตเป‰ - เบ‚เบญเบšเป€เบ‚เบ”. เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”, เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เปเบกเปˆเบ™เบฎเป‰เบญเบ‡เบ‚เปเบšเปเปˆเปƒเบซเป‰เบเบตเปˆเบซเปเป‰เบชเบฐเป€เบžเบฒเบฐ, เปเบ•เปˆเบ‚เบญเบšเป€เบ‚เบ”, เป€เบ–เบดเบ‡เปเบกเปˆเบ™เบงเปˆเบฒเบšเบฒเบ‡เบเบตเปˆเบซเปเป‰เบˆเบฒเบเบ‚เบญเบšเป€เบ‚เบ”เปเบกเปˆเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™.

2) เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบฅเบทเบญเบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™

เบชเปˆเบงเบ™เบ•เปเปˆเป„เบ›เบ‚เบญเบ‡เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡ ODC เปเบกเปˆเบ™เบเบฒเบ™เบ„เบฑเบ”เป€เบฅเบทเบญเบเปเบฅเบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ›เบฐเป€เบžเบ”เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”, เบญเบฑเบ™เบ—เบตเปˆเป€เบญเบตเป‰เบ™เบงเปˆเบฒเบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบฅเป‰เบฒ. เบชเบฐเบ–เบฒเบ™เบฐเบเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบ‚เบญเบ‡เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบฅเบฐเบซเบงเปˆเบฒเบ‡เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ—เบตเปˆเป€เบฅเบทเบญเบเปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เบˆเบฐเบ‚เบถเป‰เบ™เบเบฑเบšเบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบ—เบตเปˆเป€เบฅเบทเบญเบ. เป‚เบ„เบ‡เบเบฒเบ™เบ—เบตเปˆเป€เบ›เบฑเบ™เบ•เบปเบงเบขเปˆเบฒเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบฅเบทเบญเบเบ—เบถเบ™เบ—เบตเปˆเป€เบซเบกเบฒเบฐเบชเบปเบกเปเบกเปˆเบ™เบชเบฐเปเบ”เบ‡เบขเบนเปˆเปƒเบ™เบฎเบนเบšเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰.

OpenID Connect: เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบžเบฒเบเปƒเบ™เบˆเบฒเบเปเบšเบšเบเบณเบ™เบปเบ”เป€เบญเบ‡เป„เบ›เบชเบนเปˆเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™

เบชเปเบฒเบฅเบฑเบšเบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบเบ„เบฑเป‰เบ‡เบ—เปเบฒเบญเบดเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบ™เปเบฒเปƒเบŠเป‰เบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบฅเป‰เบฒเบ—เบปเปˆเบงเป„เบ›เบ—เบตเปˆเบชเบธเบ”, เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”. เบ„เบงเบฒเบกเปเบ•เบเบ•เปˆเบฒเบ‡เบ‚เบญเบ‡เบกเบฑเบ™เบˆเบฒเบเบ„เบปเบ™เบญเบทเปˆเบ™เปเบกเปˆเบ™เบงเปˆเบฒเบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบฒเบกเบ‚เบฑเป‰เบ™เบ•เบญเบ™, i.e. เบเปเบฒเบฅเบฑเบ‡เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเป€เบžเบตเปˆเบกเป€เบ•เบตเบก. เบซเบ™เป‰เบฒเบ—เปเบฒเบญเบดเบ”, เบœเบนเป‰เปƒเบŠเป‰เป€เบฎเบฑเบ”เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”, เป„เบ”เป‰เบฎเบฑเบš token - เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบเบฑเบš token เบ™เบตเป‰, เบ„เบทเบเบฑเบšเบงเปˆเบฒเบกเบตเบ›เบตเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ”เบตเบ™เบ—เบฒเบ‡, เบฎเป‰เบญเบ‡เบ‚เปเปƒเบซเป‰เบกเบต token เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡. เบเบฒเบ™เป‚เบ•เป‰เบ•เบญเบšเบ•เบปเป‰เบ™เบ•เปเบ‚เบญเบ‡เบชเบฐเบ„เบดเบšเบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เบ™เบตเป‰เปเบกเปˆเบ™เบญเบตเบ‡เปƒเบชเปˆเบเบฒเบ™เบ›เปˆเบฝเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡เบฅเบฐเบซเบงเปˆเบฒเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เปเบฅเบฐเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”. เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบญเปˆเบฒเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบกเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบฅเป‰เบฒเบ™เบตเป‰ เบ—เบตเปˆเบ™เบตเป‰.

OAuth เบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเปเบ™เบงเบ„เบงเบฒเบกเบ„เบดเบ”เบ—เบตเปˆเป‚เบ—เป€เบ„เบฑเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เบ„เบงเบ™เบˆเบฐเป€เบ›เบฑเบ™เบเบฒเบ™เบŠเบปเปˆเบงเบ„เบฒเบง เปเบฅเบฐเบ„เบงเบ™เบˆเบฐเบกเบตเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡, เป‚เบ”เบเบชเบฐเป€เบฅเปˆเบเบ—เบธเบเป† 10 เบ™เบฒเบ—เบต. เบเบฒเบ™เปƒเบซเป‰เบฅเบฐเบซเบฑเบ”เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เปเบกเปˆเบ™เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบชเบฒเบกเบ‚เบฑเป‰เบ™เบ•เบญเบ™เป‚เบ”เบเบœเปˆเบฒเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เป€เบชเบฑเป‰เบ™เบ—เบฒเบ‡, เบ—เบธเบเป† 10 เบ™เบฒเบ—เบตเป€เบžเบทเปˆเบญเบซเบฑเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบง, เบเบปเบ‡เป„เบ›เบเบปเบ‡เบกเบฒ, เบšเปเปˆเปเบกเปˆเบ™เบงเบฝเบเบ—เบตเปˆเบซเบ™เป‰เบฒเบžเปเปƒเบˆเบ—เบตเปˆเบชเบธเบ”เบชเปเบฒเบฅเบฑเบšเบ•เบฒ. เป€เบžเบทเปˆเบญเปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบ™เบตเป‰, เบกเบตเบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบฅเป‰เบฒเบญเบตเบ - Refresh Token, เป€เบŠเบดเปˆเบ‡เบžเบงเบเป€เบฎเบปเบฒเบเบฑเบ‡เปƒเบŠเป‰เปƒเบ™เบ›เบฐเป€เบ—เบ”เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ. เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™เบ‡เปˆเบฒเบเบ‚เบถเป‰เบ™เบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰. เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบขเบฑเป‰เบ‡เบขเบทเบ™เบˆเบฒเบเบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบฅเป‰เบฒเบญเบทเปˆเบ™, เบ™เบญเบเป€เบซเบ™เบทเบญเบˆเบฒเบ token เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ•เบปเป‰เบ™เบ•เป, เบญเบตเบเบญเบฑเบ™เบซเบ™เบถเปˆเบ‡เปเบกเปˆเบ™เบญเบญเบ - Refresh Token, เป€เบŠเบดเปˆเบ‡เบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เป„เบ”เป‰เบžเบฝเบ‡เปเบ•เปˆเบ„เบฑเป‰เบ‡เบ”เบฝเบงเปเบฅเบฐเบ•เบฐเบซเบผเบญเบ”เบŠเบตเบงเบดเบ”เบ‚เบญเบ‡เบกเบฑเบ™เปเบกเปˆเบ™เบ›เบปเบเบเบฐเบ•เบดเบซเบผเบฒเบเบ•เปเปˆเป„เบ›เบญเบตเบเปเบฅเป‰เบง. เบ”เป‰เบงเบ Refresh Token เบ™เบตเป‰, เป€เบกเบทเปˆเบญ TTL (Time to Live) เบ‚เบญเบ‡เป‚เบ—เป€เบ„เบฑเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบซเบผเบฑเบเบชเบดเป‰เบ™เบชเบธเบ”เบฅเบปเบ‡, เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเปƒเบซเป‰เป‚เบ—เป€เบ„เบฑเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เปƒเปเปˆเบˆเบฐเบกเบฒเบฎเบญเบ”เบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เบ‚เบญเบ‡เบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบญเบทเปˆเบ™. Token Refresh เบ—เบตเปˆเบ™เบณเปƒเบŠเป‰เปเบฅเป‰เบงเบˆเบฐเบ–เบทเบเบฃเบตเป€เบŠเบฑเบ”เป€เบ›เบฑเบ™เบชเบนเบ™เปƒเบ™เบ—เบฑเบ™เบ—เบต. เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ™เบตเป‰เปเบกเปˆเบ™เบชเบญเบ‡เบ‚เบฑเป‰เบ™เบ•เบญเบ™เปเบฅเบฐเบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เป„เบ”เป‰เปƒเบ™เบžเบทเป‰เบ™เบซเบฅเบฑเบ‡, imperceptibly เบเบฑเบšเบœเบนเป‰เปƒเบŠเป‰.

3) เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบฎเบนเบšเปเบšเบšเบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ‚เปเป‰เบกเบนเบ™เปเบšเบšเบเบณเบ™เบปเบ”เป€เบญเบ‡

เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบฅเป‰เบฒเบ—เบตเปˆเป€เบฅเบทเบญเบเป„เบ”เป‰เบ–เบทเบเบ›เบฐเบ•เบดเบšเบฑเบ”, เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เป€เบฎเบฑเบ”เบงเบฝเบ, เบกเบฑเบ™เป€เบ›เบฑเบ™เบกเบนเบ™เบ„เปˆเบฒเบเบฒเบ™เบเปˆเบฒเบงเป€เบ–เบดเบ‡เบเบฒเบ™เป„เบ”เป‰เบฎเบฑเบšเบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบœเบนเป‰เปƒเบŠเป‰เบชเบธเบ”เบ—เป‰เบฒเบ. ODC เบกเบตเบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบตเป‰, เบšเปˆเบญเบ™เบ—เบตเปˆเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบฎเป‰เบญเบ‡เบ‚เปเบ‚เปเป‰เบกเบนเบ™เบœเบนเป‰เปƒเบŠเป‰เบเบฑเบš token เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ›เบฐเบˆเบธเบšเบฑเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เปเบฅเบฐเบ–เป‰เบฒเบซเบฒเบเบงเปˆเบฒเบกเบฑเบ™เป€เบ–เบดเบ‡เบงเบฑเบ™เบ—เบต. เปเบฅเบฐเบ–เป‰เบฒเบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เบšเปเปˆเบ›เปˆเบฝเบ™เปเบ›เบ‡เป€เบฅเบทเป‰เบญเบเป†, เปเบฅเบฐเบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบ•เบดเบ”เบ•เบฒเบกเบ‚เปเป‰เบกเบนเบ™เปƒเบ™เบ›เบฐเบˆเบธเบšเบฑเบ™เบซเบผเบฒเบเบ„เบฑเป‰เบ‡, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป€เบ‚เบปเป‰เบฒเบกเบฒเปƒเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เป€เบŠเบฑเปˆเบ™ JWT tokens. tokens เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบเบฑเบ‡เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™เป‚เบ”เบเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™. JWT token เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบชเบฒเบกเบชเปˆเบงเบ™: header (เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบš token), payload (เบ‚เปเป‰เบกเบนเบ™เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เปƒเบ”เป†) เปเบฅเบฐเบฅเบฒเบเป€เบŠเบฑเบ™ (เบฅเบฒเบเป€เบŠเบฑเบ™, token เปเบกเปˆเบ™เป€เบŠเบฑเบ™เป‚เบ”เบเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเปเบฅเบฐเบ•เปเปˆเบกเบฒเบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเบงเบ”เป€เบšเบดเปˆเบ‡เปเบซเบผเปˆเบ‡เบ‚เบญเบ‡เบฅเบฒเบเป€เบŠเบฑเบ™เบ‚เบญเบ‡เบกเบฑเบ™).

เปƒเบ™เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ” ODC, JWT token เป€เบญเบตเป‰เบ™เบงเปˆเบฒ id_token. เบกเบฑเบ™เบชเบฒเบกเบฒเบ”เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบžเป‰เบญเบกเบเบฑเบš token เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เบ›เบปเบเบเบฐเบ•เบดเปเบฅเบฐเบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเป€เบซเบผเบทเบญเปเบกเปˆเบ™เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบฅเบฒเบเป€เบŠเบฑเบ™. เป€เบŠเบตเบšเป€เบงเบตเบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เบกเบตเบˆเบธเบ”เบชเบดเป‰เบ™เบชเบธเบ”เปเบเบเบ•เปˆเบฒเบ‡เบซเบฒเบเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เบตเป‰เบ”เป‰เบงเบเบเบฐเปเบˆเบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐเบซเบผเบฒเบเบฎเบนเบšเปเบšเบš J.W.K.. เปเบฅเบฐเบเบฒเบ™เป€เบงเบปเป‰เบฒเป€เบฅเบทเปˆเบญเบ‡เบ™เบตเป‰, เบกเบฑเบ™เป€เบ›เบฑเบ™เบกเบนเบ™เบ„เปˆเบฒเบ—เบตเปˆเบเปˆเบฒเบงเป€เบ–เบดเบ‡เบงเปˆเบฒเบกเบตเบˆเบธเบ”เบชเบธเบ”เบ—เป‰เบฒเบเบญเบตเบ, เป€เบŠเบดเปˆเบ‡เบญเบตเบ‡เปƒเบชเปˆเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ RFC5785 เบชเบฐเบ—เป‰เบญเบ™เป€เบ–เบดเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ‚เบญเบ‡เป€เบŠเบตเบšเป€เบงเบต ODC. เบกเบฑเบ™เบกเบตเบ—เบตเปˆเบขเบนเปˆเบ›เบฒเบเบ—เบฒเบ‡เบ—เบฑเบ‡เปเบปเบ” (เบฎเบงเบกเบ—เบฑเบ‡เบ—เบตเปˆเบขเบนเปˆเบ‚เบญเบ‡เบเบฐเปเบˆเบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐเบ—เบตเปˆเปƒเบŠเป‰เบชเบณเบฅเบฑเบšเบเบฒเบ™เป€เบŠเบฑเบ™), เบเบตเปˆเบซเปเป‰ เปเบฅเบฐเบ‚เบญเบšเป€เบ‚เบ”เบ—เบตเปˆเบฎเบญเบ‡เบฎเบฑเบš, เบ‚เบฑเป‰เบ™เบ•เบญเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบ—เบตเปˆเปƒเบŠเป‰เปเบฅเป‰เบง, เบเบฒเบ™เบŠเปˆเบงเบเป€เบซเบผเบทเบญเบฅเป‰เบฒ, เปเบฅเบฐเบญเบทเปˆเบ™เป†.

เบ•เบปเบงเบขเปˆเบฒเบ‡เปƒเบ™ Google:

{
 "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, เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เป‚เบญเบ™เป€เบ„เบทเปˆเบญเบ‡เบซเบกเบฒเบเบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เปƒเบซเป‰เบเบฑเบš payload เบ‚เบญเบ‡ token เปเบฅเบฐเบšเปเปˆเบ•เบดเบ”เบ•เปเปˆเบเบฑเบšเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบ™เปเบ•เปˆเบฅเบฐเบ„เบฑเป‰เบ‡เป€เบžเบทเปˆเบญเบฎเป‰เบญเบ‡เบ‚เปเบ‚เปเป‰เบกเบนเบ™เบœเบนเป‰เปƒเบŠเป‰. เบ‚เปเป‰เป€เบชเบเบ‚เบญเบ‡เบงเบดเบ—เบตเบเบฒเบ™เบ™เบตเป‰เปเบกเปˆเบ™เบงเปˆเบฒเบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบ‚เปเป‰เบกเบนเบ™เบœเบนเป‰เปƒเบŠเป‰เบˆเบฒเบเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบšเปเปˆเป„เบ”เป‰เบกเบฒเบ—เบฑเบ™เบ—เบต, เปเบ•เปˆเบžเป‰เบญเบกเบเบฑเบš token เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเป€เบ–เบดเบ‡เปƒเบซเบกเปˆ.

เบœเบปเบ™เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”

เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™, เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ ODC เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป€เบญเบ‡เปเบฅเบฐเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฑเบšเบกเบฑเบ™เปƒเบ™เบ”เป‰เบฒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ, เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เปเบเป‰เป„เบ‚เบšเบฑเบ™เบซเบฒเบเบฒเบ™เป‚เบญเบ™เบ‚เปเป‰เบกเบนเบ™เบเปˆเบฝเบงเบเบฑเบšเบœเบนเป‰เปƒเบŠเป‰.
เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบ OIDC เป€เบ›เบฑเบ™เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เป€เบ›เบตเบ”, เบžเบงเบเป€เบฎเบปเบฒเบกเบตเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบˆเบฐเป€เบฅเบทเบญเบเป€เบญเบปเบฒเบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบงเบซเบผเบทเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ. เบžเบงเบเป€เบฎเบปเบฒเป„เบ”เป‰เบžเบฐเบเบฒเบเบฒเบก Keycloak, เป€เบŠเบดเปˆเบ‡เป„เบ”เป‰เบเบฒเบเป€เบ›เบฑเบ™เบชเบฐเบ”เบงเบเบซเบผเบฒเบเปƒเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ, เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบฅเบฐเบ›เปˆเบฝเบ™เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเปƒเบ™เบ”เป‰เบฒเบ™เบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™, เบกเบฑเบ™เบžเป‰เบญเบกเบ—เบตเปˆเบˆเบฐเป„เบ›. เปƒเบ™เบ”เป‰เบฒเบ™เบ„เปเบฒเบฎเป‰เบญเบ‡เบชเบฐเบซเบกเบฑเบ, เบ—เบฑเบ‡เบซเบกเบปเบ”เบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญเปเบกเปˆเบ™เบเบฒเบ™เบ›เปˆเบฝเบ™เปเบ›เบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆ.

เป€เบงเบปเป‰เบฒเบเปˆเบฝเบงเบเบฑเบšเบเบฒเบ™เปเบเป‰เป„เบ‚เบ—เบตเปˆเบกเบตเบขเบนเปˆเปเบฅเป‰เบง

เบžเบฒเบเปƒเบ™เบญเบปเบ‡เบเบฒเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ, เป€เบ›เบฑเบ™เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡ ODC เบ—เปเบฒเบญเบดเบ”, เบžเบงเบเป€เบฎเบปเบฒเบ›เบฐเบเบญเบšเบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ›เบฐเบ•เบดเบšเบฑเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเป€เบญเบ‡, เป€เบŠเบดเปˆเบ‡เป„เบ”เป‰เบ–เบทเบเป€เบชเบตเบกเบ•เบฒเบกเบ„เบงเบฒเบกเบˆเปเบฒเป€เบ›เบฑเบ™. เบซเบผเบฑเบ‡เบˆเบฒเบเบเบฒเบ™เบ—เบปเบšเบ—เบงเบ™เบ„เบทเบ™เบขเปˆเบฒเบ‡เบฅเบฐเบญเบฝเบ”เบ‚เบญเบ‡เบงเบดเบ—เบตเปเบเป‰เป„เบ‚เบ—เบตเปˆเบเบฝเบกเบžเป‰เบญเบกเบญเบทเปˆเบ™เป†, เบžเบงเบเป€เบฎเบปเบฒเบชเบฒเบกเบฒเบ”เป€เบงเบปเป‰เบฒเป„เบ”เป‰เบงเปˆเบฒเบ™เบตเป‰เปเบกเปˆเบ™เบˆเบธเบ”เบ—เบตเปˆเบซเบ™เป‰เบฒเบžเปเปƒเบˆ. เปƒเบ™เบ„เบงเบฒเบกเป‚เบ›เบ”เบ›เบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ•เบฑเบ”เบชเบดเบ™เปƒเบˆเบ—เบตเปˆเบˆเบฐเบ›เบฐเบ•เบดเบšเบฑเบ”เป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบเบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡, เบกเบตเบ„เบงเบฒเบกเบเบฑเบ‡เบงเบปเบ™เบขเบนเปˆเปƒเบ™เบžเบฒเบเบชเปˆเบงเบ™เบ‚เบญเบ‡เบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เปƒเบ™เบเบฒเบ™เบ‚เบฒเบ”เบเบฒเบ™เป€เบฎเบฑเบ”เบงเบฝเบเบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเบเบฒเบ™เบ›เบฐเบเบปเบ”เบ•เบปเบงเบ‚เบญเบ‡เบฅเบฐเบšเบปเบšเป€เบเบปเปˆเบฒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™เบชเปเบฒเบฅเบฑเบšเบšเบฒเบ‡เบšเปเบฅเบดเบเบฒเบ™เปเบฅเบฐเบ‚เป‰เบญเบ™เบ‚เป‰เบฒเบ‡เบซเบผเบฒเบ. เบ‚เปเป‰เบกเบนเบ™เบ‚เบญเบ‡เบžเบฐเบ™เบฑเบเบ‡เบฒเบ™เป„เบ”เป‰เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เปเบฅเป‰เบง. เบขเปˆเบฒเบ‡เปƒเบ”เบเปเปˆเบ•เบฒเบก, เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเบเบฝเบกเบžเป‰เบญเบก, เบกเบตเบ„เบงเบฒเบกเบชเบฐเบ”เบงเบเปƒเบ™เบเบฒเบ™เป€เบŠเบทเปˆเบญเบกเป‚เบเบ‡. เบ•เบปเบงเบขเปˆเบฒเบ‡, Keycloak เบกเบตเบฅเบฐเบšเบปเบšเบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เบ‚เบญเบ‡เบ•เบปเบ™เป€เบญเบ‡เปเบฅเบฐเบ‚เปเป‰เบกเบนเบ™เบ–เบทเบเป€เบเบฑเบšเป„เบงเป‰เป‚เบ”เบเบเบปเบ‡เปƒเบ™เบกเบฑเบ™, เปเบฅเบฐเบกเบฑเบ™เบˆเบฐเบšเปเปˆเบเบฒเบเบ—เบตเปˆเบˆเบฐ overtake เบœเบนเป‰เปƒเบŠเป‰เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบขเบนเปˆเบ—เบตเปˆเบ™เบฑเป‰เบ™. เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰, Keycloak เบกเบต API เบ—เบตเปˆเบˆเบฐเบŠเปˆเบงเบเปƒเบซเป‰เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป‚เบญเบ™เบเป‰เบฒเบเบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”.

เบ•เบปเบงเบขเปˆเบฒเบ‡เบญเบตเบเบญเบฑเบ™เบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เบเบฒเบ™เบฎเบฑเบšเบฎเบญเบ‡, เบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆ, เปƒเบ™เบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™เบ‚เบญเบ‡เบ‚เป‰เบญเบ, เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เปเบกเปˆเบ™ Ory Hydra. เบกเบฑเบ™เบซเบ™เป‰เบฒเบชเบปเบ™เปƒเบˆเป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบงเปˆเบฒเบกเบฑเบ™เบ›เบฐเบเบญเบšเบ”เป‰เบงเบเบญเบปเบ‡เบ›เบฐเบเบญเบšเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เป€เบžเบทเปˆเบญเบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™, เบ—เปˆเบฒเบ™เบˆเบฐเบ•เป‰เบญเบ‡เป€เบŠเบทเปˆเบญเบกเบ•เปเปˆเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ„เบธเป‰เบกเบ„เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบเบฑเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เบ‚เบญเบ‡เบžเบงเบเป€เบ‚เบปเบฒเปเบฅเบฐเบ‚เบฐเบซเบเบฒเบเบ•เบฒเบกเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™.

Keycloak เปเบฅเบฐ Ory Hydra เบšเปเปˆเปเบกเปˆเบ™เบเบฒเบ™เปเบเป‰เป„เบ‚เบ™เบญเบเบŠเบฑเป‰เบ™เบงเบฒเบ‡เป€เบ—เบปเปˆเบฒเบ™เบฑเป‰เบ™. เบกเบฑเบ™เป€เบ›เบฑเบ™เบชเบดเปˆเบ‡เบ—เบตเปˆเบ”เบตเบ—เบตเปˆเบชเบธเบ”เบ—เบตเปˆเบˆเบฐเป€เบฅเบทเบญเบเป€เบญเบปเบฒเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบฎเบฑเบšเบฎเบญเบ‡เป‚เบ”เบ OpenID Foundation. เบงเบดเบ—เบตเปเบเป‰เป„เบ‚เป€เบซเบผเบปเปˆเบฒเบ™เบตเป‰เบ›เบปเบเบเบฐเบ•เบดเปเบฅเป‰เบงเบกเบตเบ›เป‰เบฒเบเบเบฒเบ™เบขเบฑเป‰เบ‡เบขเบทเบ™ OpenID.

OpenID Connect: เบเบฒเบ™เบญเบฐเบ™เบธเบเบฒเบ”เบ‚เบญเบ‡เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบžเบฒเบเปƒเบ™เบˆเบฒเบเปเบšเบšเบเบณเบ™เบปเบ”เป€เบญเบ‡เป„เบ›เบชเบนเปˆเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบขเปˆเบฒเบฅเบทเบกเบเปˆเบฝเบงเบเบฑเบšเบœเบนเป‰เปƒเบซเป‰เบšเปเบฅเบดเบเบฒเบ™เบˆเปˆเบฒเบเบ—เบตเปˆเบกเบตเบขเบนเปˆเบ–เป‰เบฒเบ—เปˆเบฒเบ™เบšเปเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบฎเบฑเบเบชเบฒเป€เบ„เบทเปˆเบญเบ‡เปเบกเปˆเบ‚เปˆเบฒเบ ODC เบ‚เบญเบ‡เบ—เปˆเบฒเบ™. เบกเบทเป‰เบ™เบตเป‰เบกเบตเบซเบผเบฒเบเบ—เบฒเบ‡เป€เบฅเบทเบญเบเบ—เบตเปˆเบ”เบต.

เบกเบตเบซเบเบฑเบ‡เบ•เปเปˆเป„เบ›

เปƒเบ™เบญเบฐเบ™เบฒเบ„เบปเบ”เบญเบฑเบ™เปƒเบเป‰เบ™เบตเป‰, เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบ›เบดเบ”เบเบฒเบ™เบˆเบฐเบฅเบฒเบˆเบญเบ™เบเบฑเบšเบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบžเบฒเบเปƒเบ™เบ”เป‰เบงเบเบงเบดเบ—เบตเบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เบžเบงเบเป€เบฎเบปเบฒเบงเบฒเบ‡เปเบœเบ™เบ—เบตเปˆเบˆเบฐเป‚เบญเบ™ SSO เปƒเบ™เบ›เบฑเบ”เบˆเบธเบšเบฑเบ™เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒเบขเบนเปˆเปƒเบ™เบ•เบปเบงเบ”เบธเปˆเบ™เบ”เปˆเบฝเบ‡เป‚เบ”เบเปƒเบŠเป‰ OpenResty เป„เบ›เบซเบฒเบ•เบปเบงเปเบ—เบ™เป‚เบ”เบเบญเบตเบ‡เปƒเบชเปˆ OAuth. เบกเบตเบซเบผเบฒเบเบงเบดเบ—เบตเปเบเป‰เป„เบ‚เบ—เบตเปˆเบเบฝเบกเบžเป‰เบญเบกเปเบฅเป‰เบงเบขเบนเปˆเบ—เบตเปˆเบ™เบตเป‰, เบ•เบปเบงเบขเปˆเบฒเบ‡:
github.com/bitly/oauth2_proxy
github.com/ory/oathkeeper
github.com/keycloak/keycloak-gatekeeper

เบญเบธเบ›เบฐเบเบญเบ™เป€เบžเบตเปˆเบกเป€เบ•เบตเบก

jwt.io - เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เบ—เบตเปˆเบ”เบตเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบเบงเบ”เบชเบญเบš JWT tokens
openid.net/developers/certified - เบšเบฑเบ™โ€‹เบŠเบตโ€‹เบฅเบฒเบโ€‹เบŠเบทเปˆโ€‹เบ‚เบญเบ‡โ€‹เบเบฒเบ™โ€‹เบ›เบฐโ€‹เบ•เบดโ€‹เบšเบฑเบ” OIDC เบฎเบฑเบšโ€‹เบฎเบญเบ‡โ€‹

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™