Π’ соврСмСнной ΠΊΠΎΡ€ΠΏΠΎΡ€Π°Ρ‚ΠΈΠ²Π½ΠΎΠΉ срСдС Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡ‚ΡŒ доступа ΠΊ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½Ρ‹ΠΌ систСмам Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π½Π° ΠΏΠ΅Ρ€Π²Ρ‹ΠΉ ΠΏΠ»Π°Π½. Если Π΅Ρ‰Π΅ Π½Π΅Π΄Π°Π²Π½ΠΎ для Π²Ρ…ΠΎΠ΄Π° Π² 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. Π’ этом случаС Π²Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚Π΅ доступ ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ, Π½ΠΎ Π½Π΅ смоТСтС Π½Π°Π΄Π΅ΠΆΠ½ΠΎ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠ³ΠΎ Ρ‡Π΅Π»ΠΎΠ²Π΅ΠΊΠ°, Ρ‡Ρ‚ΠΎ создаСт Π±Ρ€Π΅ΡˆΡŒ Π² бСзопасности.

πŸ“Š Какой способ Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚Π΅ Π² 1Π‘ Ρ‡Π°Ρ‰Π΅ всСго?
ВстроСнная авторизация 1Π‘
Windows-аутСнтификация
OpenID Connect (SSO)
Π”Ρ€ΡƒΠ³ΠΈΠ΅ внСшниС систСмы

АрхитСктура взаимодСйствия ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ²

ΠŸΡ€ΠΎΡ†Π΅ΡΡ Π²Ρ…ΠΎΠ΄Π° Π² систСму Ρ‡Π΅Ρ€Π΅Π· 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Π‘

Π’Ρ‹ΠΏΠΎΠ»Π½Π΅Π½ΠΎ: 0 / 5

⚠️ Π’Π½ΠΈΠΌΠ°Π½ΠΈΠ΅: Никогда Π½Π΅ Ρ…Ρ€Π°Π½ΠΈΡ‚Π΅ 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Π‘.