Π ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎΠΉ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΠΎΠΉ ΡΡΠ΅Π΄Π΅ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΡΠΌ ΡΠΈΡΡΠ΅ΠΌΠ°ΠΌ Π²ΡΡ ΠΎΠ΄ΠΈΡ Π½Π° ΠΏΠ΅ΡΠ²ΡΠΉ ΠΏΠ»Π°Π½. ΠΡΠ»ΠΈ Π΅ΡΠ΅ Π½Π΅Π΄Π°Π²Π½ΠΎ Π΄Π»Ρ Π²Ρ ΠΎΠ΄Π° Π² 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π±ΡΠ»ΠΎ Π·Π½Π°ΡΡ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ, ΡΠΎ ΡΠ΅Π³ΠΎΠ΄Π½Ρ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ ΠΊ Π·Π°ΡΠΈΡΠ΅ Π΄Π°Π½Π½ΡΡ Π΄ΠΈΠΊΡΡΡΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ². ΠΠ΄Π½ΠΈΠΌ ΠΈΠ· ΡΠ°ΠΊΠΈΡ ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ² ΡΡΠ°Π» OpenID Connect, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°ΡΡ Π΅Π΄ΠΈΠ½ΡΡ ΡΠΎΡΠΊΡ Π²Ρ ΠΎΠ΄Π° (SSO) Π΄Π»Ρ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ² ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ.
ΠΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ ΡΡΠΎΠ³ΠΎ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° Ρ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΎΠΉ 1Π‘ ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ Π½ΠΎΠ²ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄Π»Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΠΎΠ² ΠΈ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΎΠ². ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΡΡΠ΅ΡΠ½ΡΠΌΠΈ Π·Π°ΠΏΠΈΡΡΠΌΠΈ, Π½Π΅ ΡΠΎΠ·Π΄Π°Π²Π°Ρ Π΄ΡΠ±Π»ΠΈΡΡΡΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π²Π½ΡΡΡΠΈ ΡΠ°ΠΌΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ. ΠΡΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠΏΡΠΎΡΠ°Π΅Ρ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, Π½ΠΎ ΠΈ ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΏΠΎΠ²ΡΡΠ°Π΅Ρ ΡΡΠΎΠ²Π΅Π½Ρ Π·Π°ΡΠΈΡΠ΅Π½Π½ΠΎΡΡΠΈ ΠΏΠ΅ΡΠΈΠΌΠ΅ΡΡΠ° Π²Π°ΡΠ΅ΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ ΡΠΈΡΡΠ΅ΠΌΡ ΠΎΡ Π½Π΅ΡΠ°Π½ΠΊΡΠΈΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ°.
ΠΠ½ΠΎΠ³ΠΈΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΡ ΠΏΡΡΠ°ΡΡ ΡΡΠΎΡ ΡΡΠ°Π½Π΄Π°ΡΡ Ρ Π΅Π³ΠΎ ΠΏΡΠ΅Π΄ΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΈΠΊΠΎΠΌ ΠΈΠ»ΠΈ ΡΡΠΈΡΠ°ΡΡ Π΅Π³ΠΎ ΠΈΠ·Π»ΠΈΡΠ½Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΌ Π² ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ. ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π±Π°Π·ΠΎΠ²ΡΡ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΎΠ² ΡΠ°Π±ΠΎΡΡ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π²Π½Π΅Π΄ΡΠΈΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π±ΡΡΡΡΠΎΠΉ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ Π·Π° ΡΡΠΈΡΠ°Π½Π½ΡΠ΅ ΡΠ°ΡΡ. Π ΡΡΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΌΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°Π·Π±Π΅ΡΠ΅ΠΌ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΡ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΠΎΡΠ»ΠΈΡΠΈΡ ΠΎΡ ΡΠΌΠ΅ΠΆΠ½ΡΡ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ ΠΈ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΡΠ°Π³ΠΈ ΠΏΠΎ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ ΠΎΠ±ΠΌΠ΅Π½Π° Π΄Π°Π½Π½ΡΠΌΠΈ ΠΌΠ΅ΠΆΠ΄Ρ Π²Π°ΡΠΈΠΌ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΠΈ Π±Π°Π·ΠΎΠΉ Π΄Π°Π½Π½ΡΡ 1Π‘.
Π‘ΡΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π° ΠΈ ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ OAuth 2.0
Π§Π°ΡΡΠΎ Π²ΠΎΠ·Π½ΠΈΠΊΠ°Π΅Ρ ΠΏΡΡΠ°Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΠΏΠΎΠ½ΡΡΠΈΡΠΌΠΈ OAuth 2.0 ΠΈ OpenID Connect (OIDC). ΠΠ°ΠΆΠ½ΠΎ ΡΠ΅ΡΠΊΠΎ ΡΠ°Π·Π³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡ ΡΡΠΈ ΡΠ΅Ρ Π½ΠΎΠ»ΠΎΠ³ΠΈΠΈ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ ΡΠ΅ΡΠ°ΡΡ ΡΠ°Π·Π½ΡΠ΅ Π·Π°Π΄Π°ΡΠΈ, Ρ ΠΎΡΡ ΠΈ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π² ΡΠ²ΡΠ·ΠΊΠ΅. OAuth 2.0 β ΡΡΠΎ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Π΄Π»Ρ Π΄Π΅Π»Π΅Π³ΠΈΡΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΎΡΡΡΠΏΠ°, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡΠΈΠΉ ΠΎΠ΄Π½ΠΎΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ΅ΡΡΡΡΠ°ΠΌ Π΄ΡΡΠ³ΠΎΠ³ΠΎ ΠΎΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Ρ Π΅ΠΌΡ Π»ΠΎΠ³ΠΈΠ½ ΠΈ ΠΏΠ°ΡΠΎΠ»Ρ.
Π ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ Π½Π΅Π³ΠΎ, OpenID Connect β ΡΡΠΎ ΡΠ»ΠΎΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΠΏΠΎΡΡΡΠΎΠ΅Π½Π½ΡΠΉ ΠΏΠΎΠ²Π΅ΡΡ OAuth 2.0. ΠΠ³ΠΎ Π³Π»Π°Π²Π½Π°Ρ ΡΠ΅Π»Ρ β ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΡ Π»ΠΈΡΠ½ΠΎΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ (Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ), Π° Π½Π΅ ΠΏΡΠΎΡΡΠΎ Π΄Π°ΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΡΠ°ΠΉΠ»Π°ΠΌ. ΠΠΎΠ³Π΄Π° Π²Ρ Π½Π°ΡΡΡΠ°ΠΈΠ²Π°Π΅ΡΠ΅ Π²Ρ ΠΎΠ΄ Π² 1Π‘ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΠΉ ΠΏΠΎΡΡΠ°Π», Π²Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ OIDC Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½Π½ΠΎΠΉ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠΎΠΌ, ΠΊΡΠΎ ΡΠ΅ΠΉΡΠ°Ρ ΡΠΈΠ΄ΠΈΡ Π·Π° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠΎΠΌ.
ΠΠ»ΡΡΠ΅Π²ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ Π·Π΄Π΅ΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ID-ΡΠΎΠΊΠ΅Π½. ΠΡΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΡΠΎΡΠΌΠ°Ρ Π΄Π°Π½Π½ΡΡ (ΠΎΠ±ΡΡΠ½ΠΎ JWT), ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅. Π‘Π΅ΡΠ²Π΅Ρ 1Π‘, ΠΏΠΎΠ»ΡΡΠΈΠ² ΡΡΠΎΡ ΡΠΎΠΊΠ΅Π½, ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·Π²Π»Π΅ΡΡ ΠΈΠ· Π½Π΅Π³ΠΎ ΠΈΠΌΡ, email, ΡΠΎΠ»Ρ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ, Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°Π²Π°Ρ ΡΠ΅Π°Π½Ρ ΡΠ°Π±ΠΎΡΡ Π±Π΅Π· ΡΡΡΠ½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° ΡΡΠ΅ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ .
- π OAuth 2.0 ΠΎΡΠ²Π΅ΡΠ°Π΅Ρ Π·Π° ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ ΡΠ΅ΡΡΡΡΠ°ΠΌ (Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΡ).
- π OpenID Connect Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ ΡΠ»ΠΎΠΉ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ Π»ΠΈΡΠ½ΠΎΡΡΠΈ (Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ).
- π ID-ΡΠΎΠΊΠ΅Π½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ Π² ΡΠΎΡΠΌΠ°ΡΠ΅ JSON.
- π ΠΡΠΎΡΠΎΠΊΠΎΠ» ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠ΅ HTTP-Π·Π°ΠΏΡΠΎΡΡ Π΄Π»Ρ ΠΎΠ±ΠΌΠ΅Π½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠ΅ΠΉ.
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΠ΅ ΠΏΡΡΠ°ΠΉΡΠ΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΈΡΡΡΠΉ OAuth 2.0 Π΄Π»Ρ Π²Ρ ΠΎΠ΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π² ΡΠΈΡΡΠ΅ΠΌΡ Π±Π΅Π· ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΡ OpenID Connect. Π ΡΡΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π²Ρ ΠΏΠΎΠ»ΡΡΠΈΡΠ΅ Π΄ΠΎΡΡΡΠΏ ΠΊ Π΄Π°Π½Π½ΡΠΌ, Π½ΠΎ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΡΠ΅ Π½Π°Π΄Π΅ΠΆΠ½ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°ΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅Π»ΠΎΠ²Π΅ΠΊΠ°, ΡΡΠΎ ΡΠΎΠ·Π΄Π°Π΅Ρ Π±ΡΠ΅ΡΡ Π² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ.
ΠΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²
ΠΡΠΎΡΠ΅ΡΡ Π²Ρ ΠΎΠ΄Π° Π² ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅ΡΠ΅Π· OpenID Connect Π² ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ΅ 1Π‘ involves Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠ°ΡΡΠ½ΠΈΠΊΠΎΠ². ΠΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΈΡ ΡΠΎΠ»Π΅ΠΉ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΠΎ Π΄Π»Ρ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ ΠΎΡΠ»Π°Π΄ΠΊΠΈ ΡΠΎΠ΅Π΄ΠΈΠ½Π΅Π½ΠΈΠΉ. ΠΡΠ½ΠΎΠ²Π½ΡΠΌΠΈ Π΄Π΅ΠΉΡΡΠ²ΡΡΡΠΈΠΌΠΈ Π»ΠΈΡΠ°ΠΌΠΈ ΡΠ²Π»ΡΡΡΡΡ ΠΠ»ΠΈΠ΅Π½Ρ (Π²Π°ΡΠ° Π±Π°Π·Π° 1Π‘), Π‘Π΅ΡΠ²Π΅Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ (Identity Provider) ΠΈ ΠΊΠΎΠ½Π΅ΡΠ½ΡΠΉ ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
Π‘Ρ Π΅ΠΌΠ° ΡΠ°Π±ΠΎΡΡ ΡΡΡΠΎΠΈΡΡΡ Π½Π° ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡΡ . ΠΠΎΠ³Π΄Π° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π·Π°ΠΏΡΡΠΊΠ°Π΅Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΎΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅Ρ Π±ΡΠ°ΡΠ·Π΅Ρ Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ Π²Ρ ΠΎΠ΄Π° ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ. ΠΠΎΡΠ»Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ Π²Π²ΠΎΠ΄Π° ΡΡΠ΅ΡΠ½ΡΡ Π΄Π°Π½Π½ΡΡ ΡΠ°ΠΌ, ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎΠ±ΡΠ°ΡΠ½ΠΎ Π² 1Π‘, ΠΏΡΠΈΠΊΡΠ΅ΠΏΠΈΠ² ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ ΠΊΠΎΠ΄ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ Π² URL-Π°Π΄ΡΠ΅ΡΠ΅.
ΠΠ°Π»Π΅Π΅ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ ΡΠ΅ΡΠ²Π΅Ρ-ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠ΅ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅. ΠΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ 1Π‘ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΡΡΠΎΡ ΠΊΠΎΠ΄ Π²ΠΌΠ΅ΡΡΠ΅ ΡΠΎ ΡΠ²ΠΎΠΈΠΌ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΠΌ ΠΊΠ»ΡΡΠΎΠΌ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ, ΡΡΠΎΠ±Ρ ΠΎΠ±ΠΌΠ΅Π½ΡΡΡ Π΅Π³ΠΎ Π½Π° ΡΠΎΠΊΠ΅Π½Ρ Π΄ΠΎΡΡΡΠΏΠ°. ΠΡΠΎΡ ΡΡΠ°ΠΏ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ Π² ΡΠΎΠ½Π΅ ΠΈ Π½Π΅ Π²ΠΈΠ΄Π΅Π½ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Ρ Π²ΡΡΠΎΠΊΡΡ ΡΠΊΠΎΡΠΎΡΡΡ Π²Ρ ΠΎΠ΄Π° ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ.
Π§ΡΠΎ ΡΠ°ΠΊΠΎΠ΅ JWT ΡΠΎΠΊΠ΅Π½?
JWT (JSON Web Token) β ΡΡΠΎ ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΡΠΉ ΡΠΏΠΎΡΠΎΠ± Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΠΉ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΡΠΎΡΠΎΠ½Π°ΠΌΠΈ Π² Π²ΠΈΠ΄Π΅ JSON-ΠΎΠ±ΡΠ΅ΠΊΡΠ°. Π ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ OIDC ΠΎΠ½ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½ ΡΠΈΡΡΠΎΠ²ΠΎΠΉ ΠΏΠΎΠ΄ΠΏΠΈΡΡΡ ΡΠ΅ΡΠ²Π΅ΡΠ°, ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ 1Π‘ ΡΠ±Π΅Π΄ΠΈΡΡΡΡ, ΡΡΠΎ ΡΠΎΠΊΠ΅Π½ Π½Π΅ Π±ΡΠ» ΠΏΠΎΠ΄Π΄Π΅Π»Π°Π½ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΠΎΠΌ ΠΏΠΎ ΠΏΡΡΠΈ.
ΠΠ»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΡΠ΅Π½Π°ΡΠΈΡ Π² ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅ 8.3 ΠΈ Π²ΡΡΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π²ΡΡΡΠΎΠ΅Π½Π½ΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ ΡΠ°Π±ΠΎΡΡ Ρ HTTP-ΡΠ΅ΡΠ²ΠΈΡΠ°ΠΌΠΈ ΠΈ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΠ΅ΠΉ. ΠΠ°ΠΌ Π½Π΅ Π½ΡΠΆΠ½ΠΎ ΠΏΠΈΡΠ°ΡΡ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Ρ Π½ΡΠ»Ρ, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠ° ΡΡΠ°Π½Π΄Π°ΡΡΠΎΠ² ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΡΠ°Π±ΠΎΡΡ Ρ JSON ΡΠΆΠ΅ Π²ΡΡΡΠΎΠ΅Π½Π° Π² ΡΠ΄ΡΠΎ ΡΠΈΡΡΠ΅ΠΌΡ.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ Π² 1Π‘:ΠΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΠ΅
ΠΡΠΎΡΠ΅ΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ Π½Π°ΡΠΈΠ½Π°Π΅ΡΡΡ Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ° ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Keycloak, Auth0 ΠΈΠ»ΠΈ Active Directory Federation Services). ΠΠ°ΠΌ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ°, ΡΠΊΠ°Π·Π°ΡΡ Π°Π΄ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ (Redirect URI) ΠΈ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΏΠ°ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ: Client ID ΠΈ Client Secret.
Π ΡΠ°ΠΌΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ 1Π‘ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΡΠΎΠ·Π΄Π°ΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠ΅ΡΡ Π²Ρ ΠΎΠ΄Π°. ΠΠ±ΡΡΠ½ΠΎ ΡΡΠΎ Π΄Π΅Π»Π°Π΅ΡΡΡ ΡΠ΅ΡΠ΅Π· ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Ρ ΡΠΈΠΏΠΎΠΌ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ "OpenID Connect" ΠΈΠ»ΠΈ ΡΠ΅ΡΠ΅Π· ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΡΠΉ Π²Π½Π΅ΡΠ½ΠΈΠΉ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ Π²Ρ ΠΎΠ΄Π°. Π ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°Ρ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ ΡΠΊΠ°Π·ΡΠ²Π°ΡΡΡΡ URL-Π°Π΄ΡΠ΅ΡΠ° ΡΠ½Π΄ΠΏΠΎΠΈΠ½ΡΠΎΠ² ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ°.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ = ΠΠΎΠ²ΡΠΉ Π‘ΡΡΡΠΊΡΡΡΠ°;
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.ΠΡΡΠ°Π²ΠΈΡΡ("Issuer", "https://auth.company.com");
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.ΠΡΡΠ°Π²ΠΈΡΡ("ClientId", "1c-enterprise-app");
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.ΠΡΡΠ°Π²ΠΈΡΡ("ClientSecret", "SuperSecretKey123");
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΡ.ΠΡΡΠ°Π²ΠΈΡΡ("Scope", "openid profile email");
ΠΠ°ΠΆΠ½ΠΎ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Π½Π°ΡΡΡΠΎΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ ΠΎΠ±Π»Π°ΡΡΠ΅ΠΉ Π²ΠΈΠ΄ΠΈΠΌΠΎΡΡΠΈ (Scopes). ΠΠΌΠ΅Π½Π½ΠΎ ΠΎΠ½ΠΈ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ Π·Π°ΠΏΡΠΎΡΠΈΡ ΡΠΈΡΡΠ΅ΠΌΠ° 1Π‘. ΠΠΈΠ½ΠΈΠΌΠ°Π»ΡΠ½ΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠΉ Π½Π°Π±ΠΎΡ ΠΎΠ±ΡΡΠ½ΠΎ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ openid Π΄Π»Ρ Π±Π°Π·ΠΎΠ²ΠΎΠΉ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΈ profile Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠΌΠ΅Π½ΠΈ ΠΈ ΡΠ°ΠΌΠΈΠ»ΠΈΠΈ.
βοΈ Π§Π΅ΠΊ-Π»ΠΈΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ OIDC Π² 1Π‘
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ Ρ ΡΠ°Π½ΠΈΡΠ΅
Client SecretΠ² ΠΎΡΠΊΡΡΡΠΎΠΌ Π²ΠΈΠ΄Π΅ Π² ΠΊΠΎΠ΄Π΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ, Π΄ΠΎΡΡΡΠΏΠ½ΠΎΠΌ Π΄Π»Ρ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΎΠ±ΡΡΠ½ΡΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ. ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΡ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΡ Π΄Π°Π½Π½ΡΡ ΠΈΠ»ΠΈ Π²ΡΠ½ΠΎΡΠΈΡΠ΅ ΡΠ΅ΠΊΡΠ΅ΡΡ Π²ΠΎ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΡΠ°ΠΉΠ»Ρ Π½Π°ΡΡΡΠΎΠ΅ΠΊ Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΡΠΌ Π΄ΠΎΡΡΡΠΏΠΎΠΌ.
Π‘ΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΠΈ ΡΠΎΠ»Π΅ΠΉ
ΠΠ΄Π½ΠΎΠΉ ΠΈΠ· ΡΠ°ΠΌΡΡ ΡΠ»ΠΎΠΆΠ½ΡΡ Π·Π°Π΄Π°Ρ ΠΏΡΠΈ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠΈ OpenID Connect ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΌΠ°ΠΏΠΏΠΈΠ½Π³ (ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅) Π²Π½Π΅ΡΠ½ΠΈΡ ΡΡΠ΅ΡΠ½ΡΡ Π·Π°ΠΏΠΈΡΠ΅ΠΉ Ρ Π²Π½ΡΡΡΠ΅Π½Π½ΠΈΠΌΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌΠΈ 1Π‘. Π‘ΠΈΡΡΠ΅ΠΌΠ° Π΄ΠΎΠ»ΠΆΠ½Π° ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ, ΠΊΠ°ΠΊΠΎΠΌΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΡ Π² Π±Π°Π·Π΅ 1Π‘ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΠ΅Ρ Π²ΠΎΡΠ΅Π΄ΡΠΈΠΉ ΡΠ΅ΡΠ΅Π· SSO ΡΠ΅Π»ΠΎΠ²Π΅ΠΊ.
Π‘ΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΉ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ. Π‘Π°ΠΌΠ°Ρ Π½Π°Π΄Π΅ΠΆΠ½Π°Ρ β ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΡΠ½ΠΈΠΊΠ°Π»ΡΠ½ΠΎΠΌΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, sub ΠΈΠ»ΠΈ email). ΠΡΠΈ ΠΏΠ΅ΡΠ²ΠΎΠΌ Π²Ρ
ΠΎΠ΄Π΅ ΡΠΈΡΡΠ΅ΠΌΠ° ΠΌΠΎΠΆΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠΎΠ·Π΄Π°ΡΡ Π½ΠΎΠ²ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² Π±Π°Π·Π΅ 1Π‘, Π΅ΡΠ»ΠΈ ΠΎΠ½ Π΅ΡΠ΅ Π½Π΅ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ, ΠΈ Π½Π°Π·Π½Π°ΡΠΈΡΡ Π΅ΠΌΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΠΉ ΠΏΡΠΎΡΠΈΠ»Ρ Π΄ΠΎΡΡΡΠΏΠ°.
ΠΠΎΠ»Π΅Π΅ ΡΠ»ΠΎΠΆΠ½ΡΠΉ ΡΡΠ΅Π½Π°ΡΠΈΠΉ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ»Π΅ΠΉ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ claims (ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠΉ) Π² ΡΠΎΠΊΠ΅Π½Π΅. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ Π² ΡΠΎΠΊΠ΅Π½Π΅ Π΅ΡΡΡ ΠΏΠΎΠ»Π΅ department: sales, ΡΠΊΡΠΈΠΏΡ 1Π‘ ΠΌΠΎΠΆΠ΅Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ Π²ΡΠ΄Π°ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΎΠ»Ρ "ΠΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ ΠΏΠΎ ΠΏΡΠΎΠ΄Π°ΠΆΠ°ΠΌ". ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π³ΠΈΠ±ΠΊΠΎ ΡΠΏΡΠ°Π²Π»ΡΡΡ ΠΏΡΠ°Π²Π°ΠΌΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎ.
| ΠΠΎΠ»Π΅ Π² ΡΠΎΠΊΠ΅Π½Π΅ (Claim) | Π’ΠΈΠΏ Π΄Π°Π½Π½ΡΡ | ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π² 1Π‘ | ΠΡΠΈΠΌΠ΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ |
|---|---|---|---|
sub |
Π‘ΡΡΠΎΠΊΠ° | Π£Π½ΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΊΠ»ΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ | 5f8d2a1b-3c4e... |
preferred_username |
Π‘ΡΡΠΎΠΊΠ° | ΠΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΠΌΠΎΠ΅ ΠΈΠΌΡ Π² ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ΅ | ivanov_ii |
email |
Π‘ΡΡΠΎΠΊΠ° | ΠΠ»Ρ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ ΠΈ ΡΠ²ΡΠ·ΠΈ | ivanov@company.com |
groups |
ΠΠ°ΡΡΠΈΠ² | ΠΠ°Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ»Π΅ΠΉ Π΄ΠΎΡΡΡΠΏΠ° | ["Admins", "Users"] |
Π Π΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π»ΠΎΠ³ΠΈΠΊΠΈ ΠΌΠ°ΠΏΠΏΠΈΠ½Π³Π° ΡΡΠ΅Π±ΡΠ΅Ρ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΡ ΠΊΠΎΠ΄Π° Π½Π° Π²ΡΡΡΠΎΠ΅Π½Π½ΠΎΠΌ ΡΠ·ΡΠΊΠ΅ 1Π‘. ΠΠ°ΠΌ ΠΏΠΎΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ°ΡΡ Π²Ρ ΠΎΠ΄ΡΡΠΈΠΉ JSON-ΠΎΡΠ²Π΅Ρ ΠΎΡ ΡΠ΅ΡΠ²Π΅ΡΠ° Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ, Π½Π°ΠΉΡΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ Π·Π°ΠΏΠΈΡΡ Π² ΡΠ΅Π³ΠΈΡΡΡΠ΅ ΡΠ²Π΅Π΄Π΅Π½ΠΈΠΉ ΠΈΠ»ΠΈ ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ΅ "ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ" ΠΈ Π°ΠΊΡΠΈΠ²ΠΈΡΠΎΠ²Π°ΡΡ ΡΠ΅Π°Π½Ρ.
ΠΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΏΠΎΠ»Π΅ "ΠΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΉ" ΠΈΠ»ΠΈ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΡΠ²ΠΎΠΉΡΡΠ²ΠΎ ΠΎΠ±ΡΠ΅ΠΊΡΠ° ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² 1Π‘ Π΄Π»Ρ Ρ ΡΠ°Π½Π΅Π½ΠΈΡ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ° (sub). ΠΡΠΎ ΡΡΠΊΠΎΡΠΈΡ ΠΏΠΎΠΈΡΠΊ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΠΏΡΠΈ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΡ Π²Ρ ΠΎΠ΄Π°Ρ ΠΈ ΠΈΠ·Π±Π°Π²ΠΈΡ ΠΎΡ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΠΈ ΠΏΠ°ΡΡΠΈΡΡ email ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π·.
Π’ΠΈΠΏΠΎΠ²ΡΠ΅ ΠΎΡΠΈΠ±ΠΊΠΈ ΠΈ ΠΌΠ΅ΡΠΎΠ΄Ρ ΠΎΡΠ»Π°Π΄ΠΊΠΈ
ΠΡΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΠΈ OpenID Connect Ρ 1Π‘ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ ΡΠ°ΡΡΠΎ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ Ρ ΡΡΠ΄ΠΎΠΌ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. Π‘Π°ΠΌΠ°Ρ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½Π½Π°Ρ ΠΈΠ· Π½ΠΈΡ β ΠΎΡΠΈΠ±ΠΊΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΡΠΎΠΊΠ΅Π½Π°. ΠΡΠΎ ΠΏΡΠΎΠΈΡΡ ΠΎΠ΄ΠΈΡ, Π΅ΡΠ»ΠΈ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ 1Π‘ Π½Π΅ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ ΡΠ΅ΠΌΠΈ, ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΡΠ²Π°Π΅Ρ ΡΠΎΠΊΠ΅Π½Ρ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ.
ΠΡΠ΅ ΠΎΠ΄Π½Π° ΡΠ°ΡΡΠ°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° ΡΠ²ΡΠ·Π°Π½Π° Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΎΠΉ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ. ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠΎΠΊΠ΅Π½Ρ ΠΈΠΌΠ΅ΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½Π½ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΆΠΈΠ·Π½ΠΈ ΠΈ Π·Π°Π²ΠΈΡΡΡ ΠΎΡ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
ΠΌΠ΅ΡΠΎΠΊ, ΡΠ°ΡΡΠΈΠ½Ρ
ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ ΡΠ°ΡΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ 1Π‘ ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠΎΠΌ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ Π΄Π°ΠΆΠ΅ Π½Π° Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΌΠΈΠ½ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ ΠΎΡΠΊΠ°Π·Ρ Π² Π΄ΠΎΡΡΡΠΏΠ΅ Ρ ΠΎΡΠΈΠ±ΠΊΠΎΠΉ invalid_token ΠΈΠ»ΠΈ token_expired.
ΠΠ»Ρ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΠΆΡΡΠ½Π°Π»Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ 1Π‘ ΠΈ Π»ΠΎΠ³ΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ° Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ. ΠΠΊΠ»ΡΡΠΈΡΠ΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎΠ΅ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ HTTP-Π·Π°ΠΏΡΠΎΡΠΎΠ², ΡΡΠΎΠ±Ρ Π²ΠΈΠ΄Π΅ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π°Π½Π½ΡΠ΅ ΡΡ
ΠΎΠ΄ΡΡ ΠΈ ΠΏΡΠΈΡ
ΠΎΠ΄ΡΡ. Π§Π°ΡΡΠΎ ΠΎΡΠΈΠ±ΠΊΠ° ΠΊΡΠΎΠ΅ΡΡΡ Π² Π½Π΅Π²Π΅ΡΠ½ΠΎ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌ Redirect URI ΠΈΠ»ΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠΈ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ Scope.
- π ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠΈΠ½Ρ ΡΠΎΠ½ΠΈΠ·Π°ΡΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ Π½Π° Π²ΡΠ΅Ρ ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ.
- π Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ ΠΊΠΎΡΠ½Π΅Π²ΡΠ΅ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ Π΄ΠΎΠ²Π΅ΡΠΈΡ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Ρ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ΅ 1Π‘.
- π ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ ΠΏΠΎΡΡΠΎΠ² ΠΈ ΠΎΡΡΡΡΡΡΠ²ΠΈΠ΅ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΎΠΊ ΡΠ°Π΅ΡΠ²ΠΎΠ»ΠΎΠΌ.
- π Π‘Π²Π΅ΡΡΡΠ΅ ΡΠΎΡΠ½ΠΎΠ΅ Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠ΅ URL-Π°Π΄ΡΠ΅ΡΠΎΠ² (ΡΡΠ²ΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΊ ΡΠ΅Π³ΠΈΡΡΡΡ).
β οΈ ΠΠ½ΠΈΠΌΠ°Π½ΠΈΠ΅: ΠΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ (Keycloak, ADFS) ΠΈ Π²Π΅ΡΡΠΈΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΡ 1Π‘ ΠΌΠΎΠ³ΡΡ ΠΎΠ±Π½ΠΎΠ²Π»ΡΡΡΡΡ. ΠΠ»Π³ΠΎΡΠΈΡΠΌΡ ΡΠΈΡΡΠΎΠ²Π°Π½ΠΈΡ ΠΈ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² ΠΌΠΎΠ³ΡΡ ΠΌΠ΅Π½ΡΡΡΡΡ. ΠΡΠ΅Π³Π΄Π° ΡΠ²Π΅ΡΡΠΉΡΠ΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΡ Π² ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ ΠΏΠΎΡΡΠ°Π²ΡΠΈΠΊΠ° ΠΠ ΠΏΠ΅ΡΠ΅Π΄ Π½Π°ΡΠ°Π»ΠΎΠΌ ΡΠ°Π±ΠΎΡ.
90% ΠΎΡΠΈΠ±ΠΎΠΊ ΠΏΡΠΈ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅ OIDC ΡΠ²ΡΠ·Π°Π½Ρ Π½Π΅ Ρ ΠΊΠΎΠ΄ΠΎΠΌ 1Π‘, Π° Ρ Π½Π΅Π²Π΅ΡΠ½ΠΎΠΉ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠ΅ΠΉ ΡΠ΅ΡΠ΅Π²ΠΎΠ³ΠΎ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΡ, ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ² ΠΈΠ»ΠΈ Π²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ Π·ΠΎΠ½ Π½Π° ΡΠ΅ΡΠ²Π΅ΡΠ°Ρ .
ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΏΠΎ ΡΠΊΡΠΏΠ»ΡΠ°ΡΠ°ΡΠΈΠΈ
ΠΠ½Π΅Π΄ΡΠ΅Π½ΠΈΠ΅ Π΅Π΄ΠΈΠ½ΠΎΠ³ΠΎ Π²Ρ ΠΎΠ΄Π° Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΠΏΠΎΠ²ΡΡΠ°Π΅Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ, Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎΠΉ Π½Π°ΡΡΡΠΎΠΉΠΊΠ΅. ΠΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ» HTTPS Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΊΠ°Π½Π°Π»ΠΎΠ² ΡΠ²ΡΠ·ΠΈ. ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° ΡΠΎΠΊΠ΅Π½ΠΎΠ² ΠΈ ΡΠ΅ΠΊΡΠ΅ΡΠ½ΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ ΠΏΠΎ Π½Π΅Π·Π°ΡΠΈΡΡΠΎΠ²Π°Π½Π½ΠΎΠΌΡ HTTP Π½Π΅Π΄ΠΎΠΏΡΡΡΠΈΠΌΠ°, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊΠ°ΠΌ ΠΏΠ΅ΡΠ΅Ρ Π²Π°ΡΠΈΡΡ ΡΠ΅ΡΡΠΈΡ.
Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ Π½Π°ΡΡΡΠΎΠΈΡΡ ΠΊΠΎΡΠΎΡΠΊΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΆΠΈΠ·Π½ΠΈ ΡΠΎΠΊΠ΅Π½ΠΎΠ² Π΄ΠΎΡΡΡΠΏΠ° (Access Tokens) ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ² (Refresh Tokens). ΠΡΠΎ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡΡΠ΅Ρ ΡΠΈΡΠΊΠΈ Π² ΡΠ»ΡΡΠ°Π΅ ΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠ°ΡΠΈΠΈ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΠΈΠ· ΡΠΎΠΊΠ΅Π½ΠΎΠ². Π’Π°ΠΊΠΆΠ΅ ΡΡΠΎΠΈΡ Π²Π½Π΅Π΄ΡΠΈΡΡ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΠΉ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΉ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π΄Π»Ρ ΠΊΡΠΈΡΠΈΡΠ΅ΡΠΊΠΈ Π²Π°ΠΆΠ½ΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΉ.
Π Π΅Π³ΡΠ»ΡΡΠ½ΠΎ ΠΏΡΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅ Π°ΡΠ΄ΠΈΡ Π²ΡΠ΄Π°Π½Π½ΡΡ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ°. ΠΠ²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ ΡΠ΄ΠΎΠ±Π½ΠΎ, Π½ΠΎ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½Π΅ΠΌ Π² Π±Π°Π·Π΅ ΠΌΠΎΠ³ΡΡ Π½Π°ΠΊΠΎΠΏΠΈΡΡΡΡ "ΠΌΠ΅ΡΡΠ²ΡΠ΅ Π΄ΡΡΠΈ" β ΡΡΠ΅ΡΠ½ΡΠ΅ Π·Π°ΠΏΠΈΡΠΈ ΡΠ²ΠΎΠ»Π΅Π½Π½ΡΡ ΡΠΎΡΡΡΠ΄Π½ΠΈΠΊΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΎΡΡΠ°Π»ΠΈΡΡ Π°ΠΊΡΠΈΠ²Π½ΡΠΌΠΈ Π² ΡΠΏΡΠ°Π²ΠΎΡΠ½ΠΈΠΊΠ΅ 1Π‘, Ρ ΠΎΡΡ Π² Π΄ΠΎΠΌΠ΅Π½Π΅ ΠΎΠ½ΠΈ ΡΠΆΠ΅ Π·Π°Π±Π»ΠΎΠΊΠΈΡΠΎΠ²Π°Π½Ρ.
ΠΠΎΠΆΠ½ΠΎ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ OpenID Connect Π² ΠΎΠ±Π»Π°ΡΠ½ΠΎΠΉ 1Π‘?
ΠΠ°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ OIDC Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ Π² ΠΎΠ±Π»Π°ΡΠ½ΡΡ Π²Π΅ΡΡΠΈΡΡ , ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅Ρ, ΡΡΠΎΠ±Ρ Π²Π°Ρ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π±ΡΠ» Π΄ΠΎΡΡΡΠΏΠ΅Π½ ΠΈΠ·Π²Π½Π΅ (ΠΈΠΌΠ΅Π» ΠΏΡΠ±Π»ΠΈΡΠ½ΡΠΉ URL). Π Π½Π΅ΠΊΠΎΡΠΎΡΡΡ ΡΠ»ΡΡΠ°ΡΡ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΡΡΠ΅Π±ΠΎΠ²Π°ΡΡΡΡ Π½Π°ΡΡΡΠΎΠΉΠΊΠ° VPN-ΡΡΠ½Π½Π΅Π»Ρ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΡ ΡΠ»ΡΠ·ΠΎΠ² Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΡΡ Ρ ΠΎΡΡΠΈΠ½Π³-ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠΎΠΌ.
Π§ΡΠΎ Π΄Π΅Π»Π°ΡΡ, Π΅ΡΠ»ΠΈ ΡΠ΅ΡΠ²Π΅Ρ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ΅Π½?
ΠΠ΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠ΅Π΄ΡΡΠΌΠΎΡΡΠ΅ΡΡ Π°Π²Π°ΡΠΈΠΉΠ½ΡΠΉ ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌ Π²Ρ ΠΎΠ΄Π°. Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΡΡΡ ΠΎΡΡΠ°Π²ΠΈΡΡ Ρ ΠΎΡΡ Π±Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΡΠΏΠ΅ΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Ρ ΠΊΠ»Π°ΡΡΠΈΡΠ΅ΡΠΊΠΎΠΉ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠ΅ΠΉ (Π»ΠΎΠ³ΠΈΠ½/ΠΏΠ°ΡΠΎΠ»Ρ 1Π‘), ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΡΠ°Π½ΠΈΡΡΡ Π»ΠΎΠΊΠ°Π»ΡΠ½ΠΎ. ΠΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠ°ΡΠΎΡΡ Π²ΠΎΠΉΡΠΈ Π² ΡΠΈΡΡΠ΅ΠΌΡ Π΄Π»Ρ Π΄ΠΈΠ°Π³Π½ΠΎΡΡΠΈΠΊΠΈ Π΄Π°ΠΆΠ΅ ΠΏΡΠΈ ΠΏΠ°Π΄Π΅Π½ΠΈΠΈ Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ° SSO.
ΠΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π»ΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ 1Π‘ ΡΡΠΎΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»?
Π‘ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠ΅ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠ΅ ΠΊΠ»ΠΈΠ΅Π½ΡΡ 1Π‘ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π²Π½Π΅ΡΠ½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, Π½ΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΎΡΠ»ΠΈΡΠ°ΡΡΡΡ ΠΎΡ Π΄Π΅ΡΠΊΡΠΎΠΏΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ. Π§Π°ΡΡΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΡ Π΅ΠΌΡ URL (custom URL scheme) Π΄Π»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° ΠΈΠ· Π±ΡΠ°ΡΠ·Π΅ΡΠ° Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠΎΠ²Π΅ΡΡΡΠ΅ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΉ Π²Π΅ΡΡΠΈΠΈ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° Ρ Π²Π°ΡΠΈΠΌ IDP.
ΠΠ°ΠΊ ΠΎΠ±Π½ΠΎΠ²ΠΈΡΡ ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΡ Π±Π΅Π· ΠΎΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΡΠ°Π±ΠΎΡΡ?
ΠΠΎΠ»ΡΡΠΈΠ½ΡΡΠ²ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠΎΠ² Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ ΡΠΎΡΠ°ΡΠΈΡ ΠΊΠ»ΡΡΠ΅ΠΉ. ΠΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ (1Π‘) Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΌΠ΅ΡΡ Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°ΡΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠΉ Π½Π°Π±ΠΎΡ ΠΎΡΠΊΡΡΡΡΡ ΠΊΠ»ΡΡΠ΅ΠΉ (JWKS) ΠΏΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΌΡ ΡΠ½Π΄ΠΏΠΎΠΈΠ½ΡΡ. ΠΠ°ΡΡΡΠΎΠΉΡΠ΅ ΠΏΠ΅ΡΠΈΠΎΠ΄ΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΠΊΡΡΠ° ΠΊΠ»ΡΡΠ΅ΠΉ Π² Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠ΄Π΅, ΡΡΠΎΠ±Ρ Π½Π΅ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ ΡΡΡΠ½ΠΎΠ³ΠΎ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠ΅ΡΡΠΈΡΠΈΠΊΠ°ΡΠΎΠ².
Π ΡΠ΅ΠΌ ΡΠ°Π·Π½ΠΈΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ Access Token ΠΈ ID Token?
ID Token ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π»Ρ ΠΈΠ½ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΠΊΠ»ΠΈΠ΅Π½ΡΠ° ΠΎ ΡΠΎΠΌ, ΠΊΡΠΎ ΠΏΡΠΎΡΠ΅Π» Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ (ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΏΡΠΎΡΠΈΠ»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ). Access Token ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π·Π°ΡΠΈΡΠ΅Π½Π½ΡΠΌ ΡΠ΅ΡΡΡΡΠ°ΠΌ (API). ΠΠΈΠΊΠΎΠ³Π΄Π° Π½Π΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ID Token Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ API, ΡΠ°ΠΊ ΠΊΠ°ΠΊ ΡΠ΅ΡΠ²Π΅Ρ ΡΠ΅ΡΡΡΡΠΎΠ² ΠΌΠΎΠΆΠ΅Ρ Π΅Π³ΠΎ Π½Π΅ ΠΏΡΠΈΠ½ΡΡΡ.
ΠΠΎΡΠ΅ΠΌΡ Π½Π΅Π»ΡΠ·Ρ Π΄ΠΎΠ²Π΅ΡΡΡΡ Π΄Π°Π½Π½ΡΠΌ ΠΈΠ· ΡΠΎΠΊΠ΅Π½Π° Π±Π΅Π· ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈ?
Π₯ΠΎΡΡ ΡΠΎΠΊΠ΅Π½Ρ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Ρ, Π·Π»ΠΎΡΠΌΡΡΠ»Π΅Π½Π½ΠΈΠΊ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΏΡΡΠ°ΡΡΡΡ ΠΏΠΎΠ΄ΠΌΠ΅Π½ΠΈΡΡ Π°Π»Π³ΠΎΡΠΈΡΠΌ ΠΏΠΎΠ΄ΠΏΠΈΡΠΈ ΠΈΠ»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΊΡΠ°Π΄Π΅Π½Π½ΡΠΉ ΡΠΎΠΊΠ΅Π½. ΠΡΠ΅Π³Π΄Π° ΠΏΡΠΎΠ²Π΅ΡΡΠΉΡΠ΅ ΠΏΠΎΠ΄ΠΏΠΈΡΡ ΡΠΎΠΊΠ΅Π½Π° Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΎΡΠΊΡΡΡΠΎΠ³ΠΎ ΠΊΠ»ΡΡΠ° ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ° ΠΈ ΡΠ²Π΅ΡΡΠΉΡΠ΅ ΠΏΠΎΠ»Π΅ "aud" (Π°ΡΠ΄ΠΈΡΠΎΡΠΈΡ), ΡΡΠΎΠ±Ρ ΡΠΎΠΊΠ΅Π½ Π±ΡΠ» ΠΏΡΠ΅Π΄Π½Π°Π·Π½Π°ΡΠ΅Π½ ΠΈΠΌΠ΅Π½Π½ΠΎ Π΄Π»Ρ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ 1Π‘.