401 Unauthorized: Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΈ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ
Open in Telegram
ΠΠ°Π½Π°Π» ΠΏΡΠΎ IAM ΠΈ Π²ΡΠ΅, ΡΡΠΎ ΡΡΠ΄ΠΎΠΌ: - Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ - session management - access control ΠΠΎΠ·ΠΌΠΎΠΆΠ½Ρ ΡΠ°ΠΊΠΆΠ΅ ΠΏΠΎΡΡΡ ΠΏΡΠΎ API ΠΈ InfoSec Π§Π°Ρ: @unauthz401 ΠΠ²ΡΠΎΡ: @andreukuznetsov
Show more349
Subscribers
No data24 hours
+47 days
+2430 days
Data loading in progress...
Similar Channels
No data
Any problems? Please refresh the page or contact our support manager.
Tags Cloud
Incoming and Outgoing Mentions
---
---
---
---
---
---
Attracting Subscribers
May '25
May '25
+13
in 0 channels
April '25
+50
in 0 channels
Get PRO
March '25
+144
in 1 channels
Get PRO
February '250
in 0 channels
Get PRO
January '25
+3
in 0 channels
Get PRO
December '240
in 0 channels
Get PRO
November '240
in 0 channels
Get PRO
October '24
+13
in 0 channels
Get PRO
September '240
in 0 channels
Get PRO
August '24
+33
in 0 channels
Get PRO
July '240
in 0 channels
Get PRO
June '24
+22
in 0 channels
Get PRO
May '240
in 0 channels
Get PRO
April '240
in 0 channels
Get PRO
March '24
+63
in 0 channels
Get PRO
February '240
in 0 channels
Get PRO
January '24
+12
in 0 channels
| Date | Subscriber Growth | Mentions | Channels | |
| 14 May | 0 | |||
| 13 May | +4 | |||
| 12 May | 0 | |||
| 11 May | 0 | |||
| 10 May | 0 | |||
| 09 May | +1 | |||
| 08 May | +1 | |||
| 07 May | 0 | |||
| 06 May | +2 | |||
| 05 May | +1 | |||
| 04 May | +2 | |||
| 03 May | 0 | |||
| 02 May | +1 | |||
| 01 May | +1 |
Channel Posts
RAID_OAuch_Exploring_Security_Compliance_in_the_OAuth_2_0_Ecosystem.pdf8.80 KB
| 2 | OAuch
OAuch - ΡΡΠΎ open-source ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ, ΠΏΡΠΎΠ²Π΅ΡΡΡΡΠΈΠΉ ΡΠΎΠ±Π»ΡΠ΄Π΅Π½ΠΈΠ΅ Π»ΡΡΡΠΈΡ
ΠΏΡΠ°ΠΊΡΠΈΠΊ Π² ΠΎΠ±Π»Π°ΡΡΠΈ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π΄Π»Ρ OAuth 2.0/OIDC-ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΡΡ
IdP (ΡΠΈΡΠ°ΠΉ - authorization server), ΡΠ΅ΠΌ ΡΠ°ΠΌΡΠΌ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΈΠ²Π°Ρ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠ΅ ΡΠ³ΡΠΎΠ·Ρ. ΠΠ½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ ΡΠΎΠ²ΠΌΠ΅ΡΡΠΈΠΌΠΎΡΡΡ IdP Ρ ΡΠ°ΠΌΠΈΠΌ OAuth-ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠΎΠΌ, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ IdP ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠ΅ ΡΠ°Π·Π½ΠΎΠΉ ΡΡΠ΅ΠΏΠ΅Π½ΠΈ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΠΈ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ ΠΈ ΠΈΠ· ΡΡΠ΄Π° Π΄ΡΡΠ³ΠΈΡ
Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠΎΠ².
Π£ Π°Π²ΡΠΎΡΠΎΠ² Π΅ΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΡ
ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΉ, ΡΠ΅ΡΠΈΠ» ΠΈΡ
ΠΈΠ·ΡΡΠΈΡΡ.
ΠΠ΅ΡΠ²Π°Ρ ΠΏΠΎ Ρ
ΡΠΎΠ½ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΡΡΠ°ΡΡΡ - ΡΡΠΎ βOAuch: Exploring Security Compliance in the OAuth 2.0 Ecosystemβ, ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π° ΠΎΠ½Π° Π±ΡΠ»Π° Π΅ΡΠ΅ ΠΎΡΠ΅Π½ΡΡ 2022 Π³ΠΎΠ΄Π°, Π° ΡΡΠΈΡΡΠ²Π°Ρ, ΡΡΠΎ Π°Π²ΡΠΎΡΡ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ»ΠΈ ΡΡΠΎΠΊ Π² 1 Π³ΠΎΠ΄ Π΄Π»Ρ ΠΈΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ, ΡΠ°ΠΌΠΎ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΎ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ Π³ΠΎΠ΄ΠΎΠΌ ΡΠ°Π½Π΅Π΅.
ΠΡΠΎ ΠΏΠ΅ΡΠ²Π°Ρ ΡΠ°Π±ΠΎΡΠ° ΠΎΡ Π°Π²ΡΠΎΡΠΎΠ², Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΠ½ΠΈ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ
IdP, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΠΏΠΈΡΡΠ²Π°ΡΡ ΡΠ°ΠΌ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ, Π½Π° ΠΊΠΎΡΠΎΡΡΡ
ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΠ°. ΠΠ²ΡΠΎΡΡ ΠΏΠΎΡΡΠ°Π²ΠΈΠ»ΠΈ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π°ΠΌΠ±ΠΈΡΠΈΠΎΠ·Π½ΡΡ ΡΠ΅Π»Ρ - ΡΠ»ΡΡΡΠ΅Π½ΠΈΠ΅ OAuth-Π»Π°Π½Π΄ΡΠ°ΡΡΠ° Π·Π° ΡΡΠ΅Ρ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ Π°ΡΠ΄ΠΈΡΠ° ΠΏΡΠ±Π»ΠΈΡΠ½ΡΡ
IdP Π½Π° ΠΏΡΠ΅Π΄ΠΌΠ΅Ρ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡΠΌ OAuth Π² ΡΠ°ΡΡΠΈ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΠΌ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠΎΠ² ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ IdP.
ΠΠ²ΡΠΎΡΡ Π²Π·ΡΠ»ΠΈ Π΄Π»Ρ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ 100 ΠΏΡΠ±Π»ΠΈΡΠ½ΠΎ Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
IdP, Π²ΡΠ΄Π΅Π»ΠΈΠ² 75 ΠΈΠ· ΠΏΠ΅ΡΠ²ΡΡ
10 000, Π° ΠΎΡΡΠ°Π²ΡΠΈΠ΅ΡΡ 25 - ΠΈΠ· ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ 1 000 000 ΡΠΏΠΈΡΠΊΠ° Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
API Π² ProgrammableWeb (ΠΏΡΠΎΠ΅ΠΊΡ Π² 23 Π³ΠΎΠ΄Ρ Π·Π°ΠΊΡΡΠ»ΡΡ).
ΠΠΎΠ΄Π΅Π»Ρ ΡΠ³ΡΠΎΠ· ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° RFC 6819, Π½ΠΎ Ρ Π½Π΅ΠΊΠΎΡΠΎΡΡΠΌ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ. OAuch ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ Π½Π°Π»ΠΈΡΠΈΠ΅ ΡΠ΅ΡΡ-ΠΊΠ΅ΠΉΡΠΎΠ² Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΡΠΌ, ΡΠ°ΠΊ Π² ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠΈ ΡΡΠ°ΡΡΠ²ΠΎΠ²Π°Π»ΠΎ 113 ΡΠ΅ΡΡΠΎΠ². ΠΡΡΠ°ΡΠΈ, Π°Π²ΡΠΎΡΡ ΠΎΡΠΌΠ΅ΡΠ°ΡΡ, ΡΡΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΡ-ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΎΠΏΠΈΡΠ°Π½Ρ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ ΡΠΎΡΠ½ΠΎ ΠΈ ΡΠ΅ΡΠΊΠΎ, ΠΏΠΎΡΡΠΎΠΌΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΠ΅ΡΡ-ΠΊΠ΅ΠΉΡΠΎΠ² Π½Π° ΠΈΡ
ΠΎΡΠ½ΠΎΠ²Π΅ Π½Π΅ Π±ΡΠ»ΠΎ ΠΎΡΠ΅Π½Ρ ΡΠ»ΠΎΠΆΠ½ΡΠΌ.
ΠΠΎΠ΄ΡΠ΅ΡΠΊΠΈΠ²Π°Π΅ΡΡΡ, ΡΡΠΎ OAuch ΠΏΡΠΎΠ²Π΅ΡΡΠ΅Ρ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ°ΠΌΠΈ IdP, ΠΈ Π½Π΅ ΡΡΠΈΡΡΠ²Π°Π΅Ρ ΡΠ³ΡΠΎΠ·Ρ Π΄Π»Ρ RP, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π°ΠΊΡΡΠ°Π»ΡΠ½Ρ, Π½ΠΎ Π½Π΅ ΠΎΡΠ½ΠΎΡΡΡΡΡ ΠΊ OAuth.
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½Ρ ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
authorization grants. Π’Π°ΠΊ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, 94% IdP ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π»ΠΈ authorization code grant ΠΈ ΡΠΎΠ»ΡΠΊΠΎ 1% - device code grant (Ρ
ΠΎΡΡ Π°Π²ΡΠΎΡΡ ΠΎΡΠΌΠ΅ΡΠ°ΡΡ, ΡΡΠΎ 1% Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ - Π½Π΅ ΡΠΎΠ²ΡΠ΅ΠΌ ΡΠΎΡΠ½ΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅).
ΠΠΎΠΎΠ±ΡΠ΅ Π°Π½Π°Π»ΠΈΠ· ΠΏΠΎΠΊΠ°Π·Π°Π», ΡΡΠΎ 97/100 IdP ΠΈΠΌΠ΅Π»ΠΈ Ρ
ΠΎΡΡ Π±Ρ ΠΎΠ΄Π½Ρ Π½Π΅Π·Π°ΠΊΡΡΡΡΡ ΡΠ³ΡΠΎΠ·Ρ (ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΡ ΡΠ΅Π±Ρ ΡΡΡ Π΄ΠΎΠ±Π°Π²Π»Ρ, ΡΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΊΠ΅ΠΉΡΡ Π²ΡΠ³Π»ΡΠ΄ΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΎ). Π ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ Π½ΠΈ ΠΎΠ΄ΠΈΠ½ IdP Π½Π΅ ΠΏΡΠΎΡΠ΅Π» ΠΏΠΎΠ»Π½ΡΡ ΠΏΡΠΎΠ²Π΅ΡΠΊΡ Π² ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΠΈ Π°Π²ΡΠΎΡΠΎΠ².
ΠΠΈΡΡΡ, ΡΡΠΎ Π² ΡΡΠ΅Π΄Π½Π΅ΠΌ IdP Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°Π»ΠΈ 20% ΠΎΡ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΡΡ
ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΉ ΠΈΠ· ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ ΠΈ 33% ΠΎΡ Π²ΡΠ΅Ρ
ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΉ. Π’Π°ΠΊΠΆΠ΅ ΠΎΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ, ΡΡΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΈ ΠΈΠ· Best Current Practices (BCP), Π° Π½Π΅ ΠΈΠ· ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΊΡΠΌΠ΅Π½ΡΠ° OAuth 2.0 ΠΈΠΌΠ΅Π»ΠΈ ΠΏΠΎΡΡΠΈ Π² ΡΡΠΈ ΡΠ°Π·Π° (!) ΠΌΠ΅Π½ΡΡΡΡ Π²Π΅ΡΠΎΡΡΠ½ΠΎΡΡΡ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ. Π’Π°ΠΊ ΡΡΠΎ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΡΡΠΎ ΠΈΠ΄Π΅Ρ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ Π²ΡΠ΅Ρ
ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΉ Π² ΠΎΠ΄ΠΈΠ½ Π³ΠΈΠ³Π°Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ OAuth 2.1 ΠΈ ΠΈΠΌΠ΅Π΅Ρ ΡΠ²ΠΎΠΉ ΡΠΌΡΡΠ». Π₯ΠΎΡΡ, Π±ΡΠ΄Ρ ΡΠ΅ΡΡΠ΅Π½: ΡΠ΅ΠΊΡΡΠΈΠΉ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠ΅ΡΠ½ΠΎΠ²ΠΈΠΊ ΡΠΆΠ΅ ΠΈΠΌΠ΅Π΅Ρ Π²ΡΠ΅ΠΌΡ ΠΏΡΠΎΡΡΠ΅Π½ΠΈΡ Π±ΠΎΠ»Π΅Π΅ 2 ΡΠ°ΡΠΎΠ². ΠΡΠΈ Π²ΡΠ΅ΠΉ ΠΌΠΎΠ΅ΠΉ Π²Π΅ΡΠ΅ Π² ΡΠ΅Π»ΠΎΠ²Π΅ΡΠ΅ΡΡΠ²ΠΎ, ΠΌΠ½Π΅ ΡΡΡΠ΄Π½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ, ΡΡΠΎ ΠΎΡ ΡΠ²Π΅Π΄Π΅Π½ΠΈΡ Π²ΡΠ΅Π³ΠΎ Π² ΠΎΠ΄ΠΈΠ½ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΡΠΈΠ»ΡΠ½ΠΎ Π±ΠΎΠ»ΡΡΠ΅ Π»ΡΠ΄Π΅ΠΉ Π΅Π³ΠΎ Π²Π½ΠΈΠΌΠ°ΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠ°Π½ΡΡ ΠΈΠ·ΡΡΠ°ΡΡβ¦
ΠΡΠ΅Π½Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ Π±ΡΠ»ΠΎ ΡΠ·Π½Π°ΡΡ, ΡΡΠΎ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ ΠΏΡΠΎΠ²Π΅Π΄Π΅Π½ΠΈΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ 21% IdP ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π»ΠΈ PKCE. Π ΡΡΡΠΎΠ³ΠΎΠ΅ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ
URL Π΄Π»Ρ redirect URI Π²ΡΠΏΠΎΠ»Π½ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ 53% IdPβ¦
Π’Π°ΠΊΠΆΠ΅ Π°Π²ΡΠΎΡΡ ΠΎΡΠΌΠ΅ΡΠ°ΡΡ ΠΎΡΠ΅Π½Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ ΠΌΡΡΠ»Ρ, Ρ ΠΊΠΎΡΠΎΡΠΎΠΉ Ρ ΡΠΎΠ³Π»Π°ΡΠ΅Π½:
RP cannot be expected to make the best security decisions
Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, IdP Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΈΠΌΠ΅Π΅Ρ Π±ΠΠ»ΡΡΡΡ ΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎΡΡΡ Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π² ΠΏΡΠ΅Π΄ΡΡΠ²Π»Π΅Π½ΠΈΠΈ ΡΡΡΠΎΠ³ΠΈΡ
ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ RP, ΡΡΠΎΠ±Ρ Ρ ΡΠ΅Ρ
Π±ΡΠ»ΠΎ ΠΌΠ΅Π½ΡΡΠ΅ ΡΠ°Π½ΡΠΎΠ² Π²ΡΡΡΡΠ΅Π»ΠΈΡΡ ΡΠ΅Π±Π΅ Π² Π½ΠΎΠ³Ρ.
Π ΠΈΡΠΎΠ³Π΅ Π°Π²ΡΠΎΡΡ ΠΏΡΠΈΡ
ΠΎΠ΄ΡΡ ΠΊ Π²ΡΠ²ΠΎΠ΄Ρ, ΡΡΠΎβ¦ OAuth-ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΠ° Π½Π°Ρ
ΠΎΠ΄ΠΈΠ»Π°ΡΡ Π² Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΠ»Π°ΡΠ΅Π²Π½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ, ΠΈ ΠΌΠ½ΠΎΠ³ΠΈΠ΅ IdP Π½Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°Π»ΠΈ ΠΊΡΠΈΡΠΈΡΠ½ΡΠ΅ ΠΌΠ΅ΡΡ Π·Π°ΡΠΈΡΡ. Π’Π°ΠΊΠΆΠ΅ Π² ΡΡΠ΄Π΅ ΡΠ»ΡΡΠ°Π΅Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠΈ Π±ΡΠ»ΠΈ Π² ΠΊΡΡΡΠ΅, ΡΡΠΎ ΠΎΠ½ΠΈ Π½Π΅ ΡΠΎΠ±Π»ΡΠ΄Π°ΡΡ Π·Π°ΡΠΈΡΠ½ΡΠ΅ ΠΌΠ΅ΡΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΏΠΎ ΡΡΠ΄Ρ ΠΏΡΠΈΡΠΈΠ½ (Π² ΡΡΠ°ΡΡΠ΅ ΠΎΠ½ΠΈ ΠΏΠ΅ΡΠ΅ΡΠΈΡΠ»Π΅Π½Ρ) ΡΠ΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π»ΠΈ ΠΆΠΈΡΡ Ρ ΡΡΠΈΠΌ.
ΠΠ°Π»Π΅Π΅ ΠΌΡ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΠ»Π΅Π΄ΡΡΡΡΡ ΡΡΠ°ΡΡΡ Π°Π²ΡΠΎΡΠΎΠ², Π³Π΄Π΅ ΠΎΠ½ΠΈ ΠΏΡΠΎΠ²Π΅Π»ΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΠΉ Π°Π½Π°Π»ΠΈΠ· Π΄Π²Π° Π³ΠΎΠ΄Π° ΡΠΏΡΡΡΡ, ΡΡΠΎΠ±Ρ ΡΠ·Π½Π°ΡΡ, ΡΡΠΎ ΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΠ»ΠΎΡΡ Π·Π° ΡΡΠΎ Π²ΡΠ΅ΠΌΡ.
ΠΡΡΠ°ΡΠΈ, Π΅ΡΠ»ΠΈ ΠΊΡΠΎ-ΡΠΎ ΡΠΆΠ΅ ΠΏΡΠΎΠ±ΠΎΠ²Π°Π» ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ OAuch Π½Π° ΠΏΡΠ°ΠΊΡΠΈΠΊΠ΅, Π½Π°ΠΏΠΈΡΠΈΡΠ΅, ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΡΠ·Π½Π°ΡΡ ΡΠ΅Π°Π»ΡΠ½ΡΠ΅ ΠΎΡΠ·ΡΠ²Ρ.
#security #oauth #paper | 203 |
| 3 | Π£ΠΏΡΠΎΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΉ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π² PWA (ΡΠ°ΡΡΡ 2)
ΠΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΏΠΎΡΡ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈ Π½Π° ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΎΡΠ΄Π΅Π»ΡΠ½ΠΎΠ³ΠΎ PIN ΠΈ passkeys. ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π½Π°Π³Π»ΡΠ΄Π½ΠΎ ΡΡΠΎ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅ΡΡ, Π²Π·ΡΠ² Π΄Π»Ρ ΠΏΡΠΈΠΌΠ΅ΡΠ° Π‘Π±Π΅ΡΠ±Π°Π½ΠΊ ΠΠ½Π»Π°ΠΉΠ½. ΠΠ»ΠΈΠ΅Π½ΡΡΠΊΠ°Ρ ΡΠ°ΡΡΡ Π‘Π±Π΅ΡΠ±Π°Π½ΠΊ ΠΠ½Π»Π°ΠΉΠ½ ΠΊΠ°ΠΊ ΡΠ°Π· Π²ΡΠΏΠΎΠ»Π½Π΅Π½Π° Π² Π²ΠΈΠ΄Π΅ PWA, Π²ΠΎΡ ΠΈΡ
ΠΌΠ°Π½ΠΈΡΠ΅ΡΡ.
Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, ΠΏΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΈΡΠ½ΠΎΠΉ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π‘Π±Π΅ΡΠ±Π°Π½ΠΊ ΠΠ½Π»Π°ΠΉΠ½ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΊΠΎΠ΄ (PIN) Π΄Π»Ρ Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°, Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π΄Π°Π»Π΅Π΅.
βββ
πΌ Π‘ΠΊΡΠΈΠ½ΡΠΎΡΡ Π² ΠΏΠΎΡΡΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Ρ Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π½ΠΈΡ Π² ΡΠ΅ΠΊΡΡΠ΅.
βββ
β‘οΈΠΡΠΈ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠ΄Π° ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΡΡΡ Π·Π°ΠΏΡΠΎΡ /pin/begin (ΡΠΊΡΠΈΠ½ΡΠΎΡ 1).
β‘οΈΠΠ° Π½ΠΈΠΌ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π°ΠΏΡΠΎΡ /pin/logon (ΡΠΊΡΠΈΠ½ΡΠΎΡ 2).
β‘οΈΠ Π·Π°ΡΠ΅ΠΌ ΡΠΆΠ΅ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π·Π°ΠΏΡΠΎΡ ΠΊ /app/auth, Π² ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠ΅ΡΠ²Π΅ΡΠ½Π°Ρ ΡΠ°ΡΡΡ ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°Π΅Ρ Π½Π°ΠΌ Π½ΡΠΆΠ½ΡΠ΅ ΠΊΡΠΊΠΈ.
ΠΠΎ ΡΡΠΎ ΡΡΠΎ Π·Π° βsrp_β ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΠΈ Π³Π΄Π΅ Π½Π°Ρ PIN Π² Π·Π°ΠΏΡΠΎΡΠ°Ρ
? Π‘ΡΠ΄Ρ ΠΏΠΎ Π²ΡΠ΅ΠΌΡ, Π‘Π±Π΅ΡΠ±Π°Π½ΠΊ ΠΠ½Π»Π°ΠΉΠ½ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ Secure Remote Password protocol (SRP). ΠΡΠΎΡΠΎΠΊΠΎΠ» ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅Ρ Π΄ΠΎΠΊΠ°Π·Π°ΡΠ΅Π»ΡΡΡΠ²ΠΎ Ρ Π½ΡΠ»Π΅Π²ΡΠΌ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ΠΌ (zero-knowledge proof), ΠΏΡΠΈ ΠΊΠΎΡΠΎΡΠΎΠΌ ΡΠ°ΠΌ PIN Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ ΠΏΠΎ ΠΊΠ°Π½Π°Π»Ρ ΡΠ²ΡΠ·ΠΈ. ΠΠ° ΡΡΡ ΡΠ΅ΠΌΡ Π΅ΡΡΡ Π½Π΅ΡΠ»ΠΎΠΆΠ½Π°Ρ ΡΡΠ°ΡΡΡ Π½Π° Ρ
Π°Π±ΡΠ΅, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½Π°Π³Π»ΡΠ΄Π½ΠΎ ΠΎΠ±ΡΡΡΠ½ΡΠ΅Ρ ΠΏΡΠΈΠ½ΡΠΈΠΏ ΡΠ°Π±ΠΎΡΡ ΠΏΡΠΎΡΠΎΠΊΠΎΠ»Π°. Π Π½Π΅ΠΉ, ΠΊΡΡΠ°ΡΠΈ, ΠΌΡ ΠΊΠ°ΠΊ ΡΠ°Π· ΠΌΠΎΠΆΠ΅ΠΌ ΡΠ²ΠΈΠ΄Π΅ΡΡ, Π·Π°ΡΠ΅ΠΌ Π½ΡΠΆΠ½Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠ΅ Π² ΠΏΡΠΈΠΌΠ΅ΡΠ°Ρ
ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ.
Π’Π°ΠΊΠΆΠ΅ Π‘Π±Π΅ΡΠ±Π°Π½ΠΊ ΠΠ½Π»Π°ΠΉΠ½ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠΎΠ·Π΄Π°ΡΡ ΠΈ passkey, ΡΡΠΎΠ±Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠΆΠ΅ Π΅Π³ΠΎ ΠΏΡΠΈ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΡ
Π²Ρ
ΠΎΠ΄Π°Ρ
ΠΏΡΠΈ ΠΏΠΎΠΌΠΎΡΠΈ WebAuthn.
β‘οΈΠ’ΠΎΠ³Π΄Π°, Π΅ΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, Π½ΠΈΠΊΠ°ΠΊΠΎΠ³ΠΎ SRP ΡΠΆΠ΅ Π½Π΅Ρ, Π° Π΅ΡΡΡ Π·Π°ΠΏΡΠΎΡ ΠΈΠ· authentication ceremony (ΡΠΊΡΠΈΠ½ΡΠΎΡ 3).
β‘οΈΠΠ°Π»Π΅Π΅ ΠΎΠΏΡΡΡ ΠΆΠ΅ ΠΏΠΎΡΠ»Π΅ Π·Π°ΠΏΡΠΎΡΠ° ΠΊ /app/auth ΡΡΡΠ°Π½Π°Π²Π»ΠΈΠ²Π°ΡΡΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ ΠΊΡΠΊΠΈ.
Π§ΡΠΎ Π·Π΄Π΅ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ? ΠΠ°ΠΊ Π²ΠΈΠ΄Π½ΠΎ ΠΈΠ· ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ°, Π΄Π°Π½Π½Π°Ρ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎΡΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ² Π½Π΅ ΡΠΎ ΡΡΠΎΠ±Ρ ΠΎΡΠΎΠ±ΠΎ Π½Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ OAuth flow. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, Π²ΠΏΠΎΠ»Π½Π΅ Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, ΡΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈ Π²Π½Π΅ OAuth/OIDC.
ΠΡΡΠ°ΡΠΈ, Π² Ρ
ΠΎΠ΄Π΅ ΡΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΎΠ² Π²ΡΡΠ²Π»Π΅Π½ΠΎ, ΡΡΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ PWA Ρ Π΄Π΅ΡΠΊΡΠΎΠΏΠ° Π‘Π±Π΅ΡΠ±Π°Π½ΠΊ ΠΠ½Π»Π°ΠΉΠ½, ΠΏΠΎΠΌΠΈΠΌΠΎ passkey, Π·Π°ΠΏΡΠ°ΡΠΈΠ²Π°Π» ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· Π΅ΡΠ΅ ΠΈ OTP ΠΈΠ· SMS, ΡΠ΅Π³ΠΎ Π½Π΅ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΠ»ΠΎ ΠΏΡΠΈ ΡΠ΅ΡΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Ρ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠ³ΠΎ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠ΅ΡΠ°Π»ΡΠ½ΠΎ ΡΠ°Π·Π±ΠΈΡΠ°ΡΡΡΡ ΡΠΆΠ΅ Π½Π΅ ΡΡΠ°Π», ΠΏΠΎΠ΄ΠΎΠ·ΡΠ΅Π²Π°Ρ, ΡΡΠΎ Π²Π»ΠΈΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°Π΅ΠΌΡΠΉ ΠΎΡΠΏΠ΅ΡΠ°ΡΠΎΠΊ (fingerprint).
ΠΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ passkeys Π΅ΡΡΡ ΠΈ Π½ΡΠ°Π½Ρ. WebAuthn Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΡΡ, ΠΊΠ°ΠΊΠΎΠΉ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΌΠ΅ΡΠΎΠ΄ Π΄Π»Ρ user verification Π΄ΠΎΠ»ΠΆΠ΅Π½ Π±ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½: ΡΡΠΎ Π½Π΅Π»ΡΠ·Ρ ΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΠΈ Π½Π°ΡΠ°Π»Π΅ ΡΠ΅ΡΠ΅ΠΌΠΎΠ½ΠΈΠΈ, Π½Π΅Π»ΡΠ·Ρ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΈ Π² authenticator data. Π‘ΠΎΠΎΡΠ²Π΅ΡΡΡΠ²Π΅Π½Π½ΠΎ, ΡΠΎ ΡΡΠΎΡΠΎΠ½Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ (relying party, RP Π² ΡΠ΅ΡΠΌΠΈΠ½Π°Ρ
WebAuthn) ΠΌΡ Π½Π΅ ΡΠΌΠΎΠΆΠ΅ΠΌ ΠΎΡΠ»ΠΈΡΠΈΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π» Π»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π΄Π»Ρ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΡ ΡΠ²ΠΎΠ΅ΠΉ identity Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ Π±ΠΈΠΎΠΌΠ΅ΡΡΠΈΡ (Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΎΡΠΏΠ΅ΡΠ°ΡΠΎΠΊ ΠΈΠ»ΠΈ ΡΠ°ΡΠΏΠΎΠ·Π½Π°Π²Π°Π½ΠΈΠ΅ Π»ΠΈΡΠ°) ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΏΡΠΎΡΡΠΎ Π²Π²Π΅Π» ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ PIN Π΄Π»Ρ ΡΠ°Π·Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΡΡΡΡΠΎΠΉΡΡΠ²Π° (ΠΊΠΎΡΠΎΡΡΠΉ Ρ ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ²Π΅Π΄Π΅Π½ Π²ΠΎ ΡΡΠΎ-ΡΠΎ Π²ΡΠΎΠ΄Π΅ β0000β). ΠΡΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΠΏΠΎΡΠΈΡΠ°ΡΡ ΠΏΡΠΎ user verification ΠΈ user presence Π² WebAuthn, ΠΌΠ½Π΅ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ»Π°ΡΡ ΡΡΠ°ΡΡΡ WebAuthn User Verification & User Presence for Passkeys.
ΠΠΎΠΎΠ±ΡΠ΅ ΡΠ°ΠΌΠ° ΡΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΏΡΠ΅Π΄ΡΡΠΌΠ°ΡΡΠΈΠ²Π°Π΅Ρ ΡΡΠ΄ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠΉ (extensions). Π’Π°ΠΊ ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ ΠΈ
User Verification Method Extension (uvm), ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΊΠ°ΠΊ ΡΠ°Π· Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ RP ΠΏΠΎΠ»ΡΡΠ°ΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΌ verification method. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π·Π΄Π΅ΡΡ ΡΠ²Π½ΠΎ Π·Π°ΡΠ΅Π³ΠΈΡΡΡΠΈΡΠΎΠ²Π°Π½Ρ ΡΠ°ΠΊΠΈΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΠ°ΠΊ USER_VERIFY_FINGERPRINT ΠΈΠ»ΠΈ USER_VERIFY_PASSCODE. ΠΠ΄Π½Π°ΠΊΠΎ, ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π² Chrome ΡΠ°ΠΊΠΎΠ΅ Π½Π΅ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ =(
ΠΠ΅ ΠΌΠ΅Π½Π΅Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΠΈ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅, ΠΏΠΎΡΠ΅ΠΌΡ ΡΡΠΎ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅ΡΡΡ, Π²Π·ΡΡΠΎΠ΅ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅ Π²ΡΡΠ΅:
Experiences such as "this website only works with my left index finger" and "I can't log into this website while wearing a mask" are not things that we wish to support. They damage the experience, and thus reputation, of modern authentication in general and encourage people to stick with passwords.
#iam_general | 356 |
| 4 | ΠΠ°ΠΊ Π³ΠΎΠ²ΠΎΡΠΈΠ» ΠΏΡΠΎΡΠ΅ΡΡΠΎΡ Π€Π°ΡΠ½ΡΠ²ΠΎΡΡ ΠΈΠ· Π€ΡΡΡΡΠ°ΠΌΡ: "Good news, everyone!"
π Π£ΠΆΠ΅ 23 ΠΌΠ°Ρ Π±ΡΠ΄Ρ Π²ΡΡΡΡΠΏΠ°ΡΡ Π½Π° PHDays Π² ΠΠΎΡΠΊΠ²Π΅ Ρ Π΄ΠΎΠΊΠ»Π°Π΄ΠΎΠΌ "Π’ΠΎΠΊΠ΅Π½Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΈ API Gateway: ΠΊΠ°ΠΊ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ Π·Π°ΠΏΡΠΎΡΠΎΠ²" β [ΡΡΡΠ»ΠΊΠ° Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄]
(ΡΠ΅Π±ΡΡΠ° ΠΈΠ· ΠΎΡΠ³ΠΊΠΎΠΌΠΈΡΠ΅ΡΠ° PHDays ΠΏΡΠΈΡΠ»Π°Π»ΠΈ ΠΈ Π²ΠΎΡ ΡΠ°ΠΊΡΡ "ΠΊΡΠ°ΡΠΈΠ²ΡΡ Π±Π»ΠΎΠ³Π΅ΡΡΠΊΡΡ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ" (Π΄ΠΎΡΠ»ΠΎΠ²Π½ΠΎ!), ΡΠ°ΠΊ ΡΡΠΎ Π΅Π΅ ΡΠΎΠΆΠ΅ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»ΡΠ΅ΠΌ ΠΊ ΠΏΠΎΡΡΡ)
π Π Π²ΡΠ΅Π³ΠΎ ΡΠ΅ΡΠ΅Π· Π½Π΅Π΄Π΅Π»Ρ ΠΏΠΎΡΠ»Π΅, 31 ΠΌΠ°Ρ, Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°ΡΡΡ Π² ΠΠΎΠ²ΠΎΡΠΈΠ±ΠΈΡΡΠΊ, Π³Π΄Π΅ ΡΠ°ΠΊΠΆΠ΅ Π²ΡΡΡΡΠΏΠ»Ρ Ρ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅ΠΌΠΎΠΉ Π½Π° π CodeFest 15 β [ΡΡΡΠ»ΠΊΠ° Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄]
Π Π΄ΠΎΠΊΠ»Π°Π΄Π΅ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΏΡΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ API Gateway ΠΊΠ°ΠΊ ΡΠ°ΡΡΠΈ Π±ΠΎΠ»Π΅Π΅ ΠΎΠ±ΡΠ΅Π³ΠΎ API security-ΡΠ΅ΡΠ΅Π½ΠΈΡ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ Π΅Π³ΠΎ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΎΠΊΠ΅Π½Π°ΠΌΠΈ Π΄ΠΎΡΡΡΠΏΠ° ΠΈ ΠΏΠΎΠ΄ΡΠΌΠ°Π΅ΠΌ, Π° Π΅ΡΡΡ Π»ΠΈ Π»ΡΡΡΠΈΠΉ ΠΈΠ· Π½ΠΈΡ
. Π’Π°ΠΊΠΆΠ΅ ΠΎΠ±ΡΡΠ΄ΠΈΠΌ, ΠΏΠΎΡΠ΅ΠΌΡ Π½ΡΠΆΠ½ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°ΡΡ ΠΎΠ±Π»Π°ΡΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡ access token ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π»ΠΈ API Gateway ΠΏΠΎΠΌΠΎΡΡ ΠΈ Π² Π΄Π°Π½Π½ΠΎΠΌ Π²ΠΎΠΏΡΠΎΡΠ΅.
Π’Π°ΠΊ ΡΡΠΎ, ΠΊΡΠΎ ΡΠΆΠ΅ ΡΠΏΠ»Π°Π½ΠΈΡΠΎΠ²Π°Π» ΠΏΠΎΡΠ΅ΡΠΈΡΡ Π΄Π°Π½Π½ΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΠΈ, ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡΠ΅ Π½Π° Π΄ΠΎΠΊΠ»Π°Π΄ ΠΈ ΠΏΡΠΎΡΡΠΎ ΠΏΠΎΠΎΠ±ΡΠ°ΡΡΡΡ-ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΡΡΡΡ. Π ΠΊΡΠΎ ΠΏΠΎΠΊΠ° ΡΠΎΠ»ΡΠΊΠΎ ΠΏΠ»Π°Π½ΠΈΡΡΠ΅Ρ, Π²ΠΎΡ Π²Π°ΠΌ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΠΏΠΎΠ²ΠΎΠ΄ π
#announce #my_talk #api #iam_general | 385 |
| 5 | ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π» ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΡ Π»ΡΠ±ΠΎΠΏΡΡΠ½ΠΎΠ³ΠΎ Π²Π΅ΠΊΡΠΎΡΠ° Π°ΡΠ°ΠΊΠΈ Π² Π²ΠΈΠ΄Π΅ ΡΡΠ°ΡΡΠΈ:
https://habr.com/ru/articles/880544/
Π’Π°ΠΊΠΆΠ΅ Π΅ΡΡΡ Π²Π΅ΡΡΠΈΡ Π½Π° Π°Π½Π³Π»ΠΈΠΉΡΠΊΠΎΠΌ ΡΠ·ΡΠΊΠ΅ Π½Π° Medium.
#my_publication | 437 |
| 6 | Π£ΠΏΡΠΎΡΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΉ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π² PWA (ΡΠ°ΡΡΡ 1)
Progressive Web Apps (PWA) - ΡΡΠΎ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΡΠ΅ Π·Π° ΡΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΡ
API ΠΏΠΎΠ·Π²ΠΎΠ»ΡΡΡ ΡΠ»ΡΡΡΠ°ΡΡ UX ΠΈ ΡΠ°ΡΡΠΈΡΡΡΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΡΡ
Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π²Π΅Π±-Π±ΡΠ°ΡΠ·Π΅ΡΠ°. Π ΡΠ»ΡΡΠ°Π΅ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ
ΠΏΠ»Π°ΡΡΠΎΡΠΌ ΠΏΠΎ ΡΡΡΠΈ ΡΠ°ΠΊΠΈΠ΅ PWA Π΄Π΅Π»Π°ΡΡΡΡ Π²ΡΠ³Π»ΡΠ΄ΡΡΠΈΠΌΠΈ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΏΡΠΈΠ±Π»ΠΈΠΆΠ΅Π½Π½ΠΎ ΠΊ ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ.
Π― Π²ΠΎΠΎΠ±ΡΠ΅ Π΄Π°Π²Π½ΠΎ Ρ Π½Π°Π΄Π΅ΠΆΠ΄ΠΎΠΉ ΡΠΌΠΎΡΡΡ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ PWA Π² ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡΡ
Π΄Π»Ρ Π½ΠΈΡ
ΡΠ»ΡΡΠ°ΡΡ
. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΡΠΎΠ½ΠΊΠΈΡ
ΠΊΠ»ΠΈΠ΅Π½ΡΠΎΠ², Π³Π΄Π΅ Π½Π΅ Π½ΡΠΆΠ½Ρ ΡΠ»ΠΎΠΆΠ½ΡΠ΅ Π²ΡΡΠΈΡΠ»Π΅Π½ΠΈΡ ΠΈΠ»ΠΈ ΡΠ°Π±ΠΎΡΠ° Ρ Π³ΡΠ°ΡΠΈΠΊΠΎΠΉ. Π’Π°ΠΊΠΆΠ΅ PWA ΠΌΠ½ΠΎΠ³ΠΈΠΌ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ Π·Π½Π°ΠΊΠΎΠΌΡ ΠΈ Π² ΡΠ²ΡΠ·ΠΈ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΠΎΠ±ΡΡΠΎΡΡΠ΅Π»ΡΡΡΠ²Π°ΠΌΠΈ: Π² ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π³ΠΎΠ΄Ρ ΠΎΠ½ΠΈ ΡΡΠ°Π»ΠΈ Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π°ΠΊΡΡΠ°Π»ΡΠ½Ρ ΠΈ Π² Π±Π°Π½ΠΊΠΎΠ²ΡΠΊΠΎΠΉ ΠΎΡΡΠ°ΡΠ»ΠΈ Π Π€ Π² ΡΠ²ΡΠ·ΠΈ Ρ ΡΠ΄Π°Π»Π΅Π½ΠΈΠ΅ΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΡΡΠ΄Π° Π±Π°Π½ΠΊΠΎΠ² ΠΈΠ· ΡΡΠΎΡΠΎΠ².
ΠΠΎΠ»Π³ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ ΠΈΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°ΠΊ ΠΏΠΎΠ»Π½Π°Ρ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π° ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΠΌ Π±ΡΠ»ΠΎ ΠΏΠΎΠ΄ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ ΠΈΠ·-Π·Π° ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΠ΅ΠΉ ΠΏΠΎΠ»ΠΈΡΠΈΠΊΠΈ Apple: Safari Π΄ΠΎΠ»Π³ΠΎΠ΅ Π²ΡΠ΅ΠΌΡ Π½Π΅ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π» push-ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΡ Π² PWA, ΡΡΠΎ Π½Π΅ Π΄Π°Π²Π°Π»ΠΎ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°ΠΌ ΡΠΎΠ·Π΄Π°Π²Π°ΡΡ ΠΏΠΎΠ»Π½ΡΠ΅ Π°Π½Π°Π»ΠΎΠ³ΠΈ "Π½Π°ΡΠΈΠ²Π½ΡΡ
" ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΈ Π΄Π°ΠΆΠ΅ Π²ΡΠ½ΡΠΆΠ΄Π°Π»ΠΎ Π³ΠΎΡΠΎΠ΄ΠΈΡΡ ΡΠ°Π·Π½ΠΎΠ³ΠΎ ΡΠΎΠ΄Π° ΠΊΠΎΡΡΡΠ»ΠΈ Π²ΡΠΎΠ΄Π΅ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΡΠ²Π΅Π΄ΠΎΠΌΠ»Π΅Π½ΠΈΠΉ Π² ΠΌΠ΅ΡΡΠ΅Π½Π΄ΠΆΠ΅ΡΡ Π²ΠΌΠ΅ΡΡΠΎ ΡΡΠΎΠ³ΠΎ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ iOS.
ΠΠ΄Π½Π°ΠΊΠΎ Π² 2023 Π³ΠΎΠ΄Ρ ΠΈ Apple ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠ°Π»Π° Π½Π°ΠΊΠΎΠ½Π΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ ΠΏΡΡΠ΅ΠΉ. ΠΡΠ°Π²Π΄Π°, ΠΏΠΎΡΠΎΠΌ ΡΠ±ΠΈΠ² PWA Π΄Π»Ρ ΠΆΠΈΡΠ΅Π»Π΅ΠΉ EU =(
Π‘ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ PWA ΠΎΠ±ΡΡΠ½ΠΎ Ρ
ΠΎΡΠ΅ΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅ ΠΎΠΏΡΡ ΡΠ°Π±ΠΎΡΡ, ΠΊΠ°ΠΊ ΠΈ Π² ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΠΎΠΌ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. Π ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ ΠΈ Π² ΡΠ°ΡΡΠΈ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, Π²Π΅Π΄Ρ Π²ΡΠ΅ Π·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ ΡΡΠΎ "Π»ΡΠ±ΡΡ".
Π ΠΌΠΎΠ±ΠΈΠ»ΡΠ½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
ΡΠΈΡΠΎΠΊΠΎ ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½ΡΠ½ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΡ
Π²Ρ
ΠΎΠ΄ΠΎΠ² Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ: ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ Π΄ΠΎΠ»Π³ΠΎΠΆΠΈΠ²ΡΡΠΈΠΉ refresh token, ΡΠΎΡ
ΡΠ°Π½ΡΠ΅ΠΌΡΠΉ Π² Π·Π°ΡΠΈΡΠ΅Π½Π½ΠΎΠ΅ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ΅ ΠΠ‘, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π°Π»Π΅Π΅.
PWA ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ²ΡΠΎΡΠΈΡΡ Π½Π΅ ΠΌΠΎΠ³ΡΡ. ΠΡΠ°Π½Ρ Π² ΡΠΎΠΌ, ΡΡΠΎ PWA, ΠΏΡΠΈ Π²ΡΠ΅ΠΌ ΠΌΠ½ΠΎΠ³ΠΎΠΎΠ±ΡΠ°Π·ΠΈΠΈ ΠΈΠΌΠ΅ΡΡΠΈΡ
ΡΡ API, Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π·Π°ΡΠΈΡΡΠ½Π½ΡΠΌ Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°ΠΌ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π΅ ΠΈΠΌΠ΅ΡΡ. Π’Π΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠΎ Π²ΡΠ΅ ΡΠ΅ ΠΆΠ΅ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΡΠ΅ΠΌΠΈ ΠΆΠ΅ ΠΈΡ
ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡΠΌΠΈ ΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ.
ΠΠΎΡΡΠΎΠΌΡ ΠΎΡΠ΅Π½Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΠΏΠΎΠ΄ΡΠΌΠ°ΡΡ, Π° ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Ρ ΡΠ΅ΠΉΡΠ°Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ, ΡΡΠΎΠ±Ρ ΠΈ ΠΏΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΡΡ
Π²Ρ
ΠΎΠ΄Π°Ρ
Π½Π΅ ΠΈ Π½Π΅ Π·Π°ΡΡΠ°Π²Π»ΡΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ Π²ΡΠ΅ ΡΠ°ΠΊΡΠΎΡΡ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, ΠΈ Π½Π΅ Π΄Π΅Π»Π°ΡΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, access token (Π² ΡΠ»ΡΡΠ°Π΅ OAuth) ΡΠΎΠ²ΡΠ΅ΠΌ Π΄ΠΎΠ»Π³ΠΎΠΆΠΈΠ²ΡΡΠΈΠΌ.
Π‘ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΡΠ°Π· ΡΡΠΎ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠΎ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ ΠΈΠ·Π²Π΅ΡΡΠ½ΡΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ Π΄Π»Ρ ΠΎΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΡ access token, ΠΏΡΠΈΡΡΡΠΈΠ΅ ΠΈΠΌ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ:
1. ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ refresh token ΠΈ Ρ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ Π² Ρ
ΡΠ°Π½ΠΈΠ»ΠΈΡΠ°Ρ
ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΡΠ°ΡΡΠΈ (ΡΠ°ΠΊΠΈΡ
ΠΊΠ°ΠΊ localStorage)
2. ΠΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ refresh token ΠΈ Ρ
ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π΅Π³ΠΎ Π² HttpOnly-cookie (Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Ρ Π΄ΡΡΠ³ΠΈΠΌ path)
3. ΠΠ±Π½ΠΎΠ²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠΊΠ΅Π½ΠΎΠ² ΡΠ΅ΡΠ΅Π· SSO
ΠΠ΄Π½Π°ΠΊΠΎ, ΠΏΠΎΡΠΎΠΉ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²Π°ΠΆΠ½ΠΎ Π² ΠΊΠ°ΠΊΠΎΠΌ-ΡΠΎ Π²ΠΈΠ΄Π΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ ΠΈ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ identity ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ Π²Ρ
ΠΎΠ΄Π° - Π²ΡΠΎΠ΄Π΅ ΡΠΎΠ³ΠΎ, ΡΡΠΎ Π² WebAuthn Π½Π°Π·ΡΠ²Π°ΡΡ User Verification.
ΠΠΎΡΡΠΎΠΌΡ Π΅ΡΡΡ ΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Ρ. Π Π½ΠΈΡ
ΠΏΡΠΈ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎΠΌ Π²Ρ
ΠΎΠ΄Π΅ ΠΌΡ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ°Π· Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ, Π½ΠΎ ΡΠΆΠ΅ ΠΏΠΎ Π΄ΡΡΠ³ΠΎΠΉ, Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Π½ΠΎΠΉ ΡΠ΅ΠΏΠΎΡΠΊΠ΅. ΠΠ°ΠΊ ΠΏΡΠ°Π²ΠΈΠ»ΠΎ, ΡΠ°ΠΊΠ°Ρ ΡΠ΅ΠΏΠΎΡΠΊΠ° Π±ΡΠ΄Π΅Ρ Π²ΠΊΠ»ΡΡΠ°ΡΡ ΡΠΆΠ΅ Π΄ΡΡΠ³ΠΈΠ΅ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΡΠ΅ ΡΠ°ΠΊΡΠΎΡΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΡΡ
Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ "ΠΏΡΠΎΡΠ΅" Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
ΠΠ΄Π΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ PIN-ΠΊΠΎΠ΄ Π΄Π»Ρ ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ passkeys (ΡΠ΅ΡΠ΅Π· WebAuthn)
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ Π½Π° ΡΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Ρ ΡΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΡΠΆΠ΅ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅.
#iam_general | 374 |
| 7 | ΠΠ°Π²ΠΈΠ³Π°ΡΠΈΡ ΠΏΠΎ ΠΊΠ°Π½Π°Π»Ρ βοΈ
ΠΠ΄Π΅ΡΡ ΠΎΠΏΠΈΡΠ°Π½Ρ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ ΡΠ΅ΠΌΡ, ΠΎΡΠ²Π΅ΡΠ°Π΅ΠΌΡΠ΅ Π½Π° ΠΊΠ°Π½Π°Π»Π΅, Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Ρ
ΡΡΡΠ΅Π³ΠΎΠ².
#iam_general β ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ ΠΏΡΠΎ Identity & Access Management
#oauth β Π²ΡΠ΅, ΡΡΠΎ ΠΊΠ°ΡΠ°Π΅ΡΡΡ OAuth ΠΈ OIDC
#security β ΠΏΡΠΎ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ
#api β ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅, Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΈ ΠΈΠ½ΡΠ΅Π³ΡΠ°ΡΠΈΡ API
#jwt β ΠΏΡΠΎ JWT ΠΈ ΡΠ°Π±ΠΎΡΡ Ρ Π½ΠΈΠΌΠΈ
#article β ΡΡΠ°ΡΡΠΈ ΠΈΠ· ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠΎΠ²
#paper β ΠΏΠΎΠ»Π½ΠΎΡΠΎΡΠΌΠ°ΡΠ½ΡΠ΅ ΡΠ°Π±ΠΎΡΡ, Π½Π°ΡΡΠ½ΡΠ΅ ΡΡΠ°ΡΡΠΈ
#book β ΠΊΠ½ΠΈΠ³ΠΈ ΠΈ ΠΎΠ±Π·ΠΎΡΡ ΠΊΠ½ΠΈΠ³
#video β ΠΎΠ±Π·ΠΎΡΡ Π²ΠΈΠ΄Π΅ΠΎ-ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ², Π΄ΠΎΠΊΠ»Π°Π΄ΠΎΠ², Π²ΡΡΡΡΠΏΠ»Π΅Π½ΠΈΠΉ
#my_publication β ΠΌΠΎΠΈ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΡΠ°ΡΡΠΈ
#my_talk β ΠΌΠΎΠΈ Π²ΡΡΡΡΠΏΠ»Π΅Π½ΠΈΡ, Π΄ΠΎΠΊΠ»Π°Π΄Ρ
#announce β ΠΎΠ±ΡΡΠ²Π»Π΅Π½ΠΈΡ ΠΎ Π²ΡΡΡΡΠΏΠ»Π΅Π½ΠΈΡΡ
, ΡΠΎΠ±ΡΡΠΈΡΡ
ΠΠ»Ρ ΠΏΡΠΎΡΠΌΠΎΡΡΠ° Π²ΡΠ΅Ρ
ΠΏΠΎΡΡΠΎΠ², ΠΎΡΠ½ΠΎΡΡΡΠΈΡ
ΡΡ ΠΊ Π΄Π°Π½Π½ΠΎΠΉ ΡΠ΅ΠΌΠ΅, ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΏΠΎΠΈΡΠΊ ΠΏΠΎ Π½ΡΠΆΠ½ΠΎΠΌΡ Ρ
ΡΡΡΠ΅Π³Ρ.
Π‘ΠΏΠΈΡΠΎΠΊ ΡΠ΅Π³ΠΎΠ² Π±ΡΠ΄Π΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΡΡΡΡΡ ΠΏΠΎ ΠΌΠ΅ΡΠ΅ ΡΠ°Π·Π²ΠΈΡΠΈΡ ΠΊΠ°Π½Π°Π»Π°. | 312 |
| 8 | (ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΡΠ°)
ΠΠ΄Π΅ΡΡ Ρ ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ ΡΠ°Π·Π΄Π΅Π»ΡΡ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΌ Π°Π²ΡΠΎΡΠ°. Π‘ΡΠΈΡΠ°Ρ, ΡΡΠΎ Π½Π΅ Π²ΡΠ΅ ΡΠ°ΠΊ ΠΏΡΠΎΡΡΠΎ ΠΈ ΠΊΡΠ°ΡΠΈΠ²ΠΎ. Π Π²ΡΡΡΡΠΏΠ»Π΅Π½ΠΈΠΈ ΠΏΡΠΈΠ²ΠΎΠ΄ΡΡΡΡ Π°ΡΠ³ΡΠΌΠ΅Π½ΡΡ (1οΈβ£), Π½Π° Π½ΠΈΡ
Π½Π°ΠΏΠΈΡΡ ΠΎΡΠ²Π΅ΡΡ (1οΈβ£).
1οΈβ£: We can remove all OAuth 2.0 functionality from the frontend application
1οΈβ£: ΠΠ΅ ΠΌΠΎΠ³Ρ ΡΠ΅Π±Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΡΡ, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²Π΅ΡΠ½ΠΎ. ΠΡ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΈ ΠΎΠ±ΡΡΠ½ΡΠΉ Π±ΡΠΊΠ΅Π½Π΄, ΡΠ΅ΠΏΠ΅ΡΡ Ρ Π½Π°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ authorization code flow Ρ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΡΡ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠ°Ρ ΡΠ°ΡΡΡ Π²ΡΠ΅ Π΅ΡΠ΅ ΡΡΠ°ΡΡΠ²ΡΠ΅Ρ: authorization request Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΈΠ· Π±ΡΠ°ΡΠ·Π΅ΡΠ°, Π° Π½Π΅ Ρ Π±ΡΠΊΠ΅Π½Π΄Π°. Authorization response Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΡΡΡ ΡΠ°ΠΊ ΠΆΠ΅ Π² Π±ΡΠ°ΡΠ·Π΅Ρ. ΠΠ°, Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ token request ΠΏΠ΅ΡΠ΅Π΅Π·ΠΆΠ°Π΅Ρ (ΠΈ Ρ
ΠΎΡΠΎΡΠΎ), Π½ΠΎ ΡΡΠΎ Π½Π΅ ΡΠ²Π»ΡΠ΅ΡΡΡ Π²ΡΠ΅ΠΉ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡΡ, Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄.
1οΈβ£: Now we can reduce the attack surface from the full APIs that the token had access to to only the endpoints that the BFF exposes
1οΈβ£: ΠΡΠΎΠ±Π»Π΅ΠΌΠ° Π·Π΄Π΅ΡΡ Π² Π½Π΅ΠΊΠΎΡΡΠ΅ΠΊΡΠ½ΠΎΠΌ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ. ΠΠ²ΡΠΎΡ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅Ρ Π²ΡΠ·ΠΎΠ² API ΡΠ΅ΡΠ΅Π· ΡΠ»ΡΠ· Π² Π²ΠΈΠ΄Π΅ BFF Ρ ΠΏΡΡΠΌΡΠΌ Π²ΡΠ·ΠΎΠ²ΠΎΠΌ ΠΊΠΎΠ½Π΅ΡΠ½ΠΎΠ³ΠΎ ΡΠ΅ΡΠ²ΠΈΡΠ°. ΠΠΎ Π² ΡΠ΅Π°Π»ΡΠ½ΡΡ
ΡΠΈΡΡΠ΅ΠΌΠ°Ρ
ΠΊΠΎΠ½Π΅ΡΠ½ΡΠ΅ ΡΠ΅ΡΠ²ΠΈΡΡ ΠΈ Π½Π΅ Π²ΡΡΡΠ°Π²Π»ΡΡΡΡΡ Π½Π°ΡΡΠΆΡ Π³ΠΎΠ»ΠΎΠΉ ΠΆΠΎΠΏΠΎΠΉ Π½Π°ΠΏΡΡΠΌΡΡ. ΠΠ΅ΡΠ΅Π΄ Π½ΠΈΠΌΠΈ ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ ΠΊΠ°ΠΊΠΈΠ΅-Π»ΠΈΠ±ΠΎ Π²Π°ΡΠΈΠ°Π½ΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΏΠ°ΡΡΠ΅ΡΠ½Π° API Gateway, Π½Ρ ΠΈΠ»ΠΈ Π΄ΡΡΠ³ΠΈΠ΅ ΠΏΡΠΎΠΊΡΠΈ. ΠΠ° ΠΈ ΡΠ°ΠΌ access token ΡΠΊΠΎΡΠ΅Π΅ Π²ΡΠ΅Π³ΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ Π½Π°Π±ΠΎΡΠΎΠΌ scopes. ΠΠΎΠ΄Ρ
ΠΎΠ΄ Π½Π΅ ΠΏΡΠΈΠ½ΠΎΡΠΈΡ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΎΠΉ ΡΠ°Π·Π½ΠΈΡΡ: ΡΠ½Π΄ΠΏΠΎΠΈΠ½ΡΡ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠ°Ρ ΡΠ°ΡΡΡ ΡΠ°Π±ΠΎΡΠ°Π΅Ρ, Π²ΡΠ΅ ΡΠ°ΠΊ ΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ, Π½ΠΎ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ΅ΡΠ΅Π· ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, Π½Π°Π·ΡΠ²Π°Π΅ΠΌΡΠΉ Π·Π΄Π΅ΡΡ βBFFβ. Π Π΄ΠΎΡΡΡΠΏ ΠΊ Π½ΠΈΠΌ Π²ΡΠ΅ ΡΠ°ΠΊ ΠΆΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ΅Π½. Π ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½Π½ΠΎΠΌ ΡΠΌΡΡΠ»Π΅ Π·Π΄Π΅ΡΡ Π½Π΅Ρ ΡΠ°Π·Π½ΠΈΡΡ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄Π°ΡΡ Π½Π° Π²Ρ
ΠΎΠ΄ ΡΠ½Π°ΡΡΠΆΠΈ: ΡΠ°ΠΌ access token ΠΈΠ»ΠΈ Π½Π΅ΠΊΡΡ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΡ Π½Π°Π΄ Π½ΠΈΠΌ.
1οΈβ£: The BFF observes all the API requests from a client, and can perform rate-limiting, anomaly detection, preventing data extraction and so on
1οΈβ£: ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½Π°Ρ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ° Π±ΡΠ»Π° ΡΠΎΠ²ΡΠ΅ΠΌ Π½Π΅ Π² Π½Π°Π»ΠΈΡΠΈΠΈ ΠΏΡΡΠΌΠΎΠ³ΠΎ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ API, Π²ΠΎΡ Π³Π΄Π΅ Π²ΠΈΠΆΡ ΠΏΠΎΠ΄ΠΌΠ΅Π½Ρ ΠΏΠΎΠ½ΡΡΠΈΠΉ. Π‘ ΡΠ΅ΠΌ Π·Π΄Π΅ΡΡ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΎΠΏΠΈΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π°? Π‘ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, Ρ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠ°Ρ ΡΠ°ΡΡΡ, Π½Π΅Ρ ΡΠ²ΠΎΠ΅Π³ΠΎ Π±ΡΠΊΠ΅Π½Π΄Π°, Π° ΡΠ΅ΡΠ²ΠΈΡΡ ΡΠΎ Π²ΡΠ΅ΠΌΠΈ ΡΠ½Π΄ΠΏΠΎΠΈΡΠ½Π°ΠΌΠΈ Π²ΡΡΡΠ°Π²Π»Π΅Π½Ρ βΠ½Π°ΡΡΠΆΡβ Π½Π°ΠΏΡΡΠΌΡΡ? Π― Π½Π΅ Π³ΠΎΠ²ΠΎΡΡ, ΡΡΠΎ ΡΠ°ΠΊΠ°Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Π° ΠΈ ΡΠ°ΠΊΠΎΠ³ΠΎ Π½Π΅ Π±ΡΠ²Π°Π΅Ρ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΄Π»Ρ Π½Π΅Π΅ Π² ΡΠ΅Π»ΠΎΠΌ Π½Π΅Ρ ΠΎΡΠΎΠ±ΠΎΠ³ΠΎ ΡΠΌΡΡΠ»Π° Π³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΎ βΠ±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈβ, Π·Π΄Π΅ΡΡ by design Π΅Π΅ Π½Π΅ ΠΎΡΠΎΠ±ΠΎ Π·Π°Π»ΠΎΠΆΠ΅Π½ΠΎ. ΠΠ»Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, Π³Π΄Π΅ ΠΠ€Π’ ΠΊ Π½Π°Π΄Π΅ΠΆΠ½ΠΎΡΡΠΈ ΠΈ ΠΠ Ρ
ΠΎΡΡ ΡΠΊΠΎΠ»ΡΠΊΠΎ-ΡΠΎ Π²Π°ΠΆΠ½Ρ, ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ ΠΌΡ Π½Π΅ ΡΠ²ΠΈΠ΄ΠΈΠΌ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅. Π Π·Π΄Π΅ΡΡ ΠΆΠ΅ ΡΠ½ΠΎΠ²Π° ΠΌΡ ΠΏΡΡΠ°Π΅ΠΌΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΡ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ
ΠΏΡΠΎΠ±Π»Π΅ΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΡΡΠΎΠ²Π½Ρ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠΈ. Confidential client Π² ΡΠ΅Π»ΠΎΠΌ-ΡΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΠΈ ΠΏΠΎ-Π΄ΡΡΠ³ΠΎΠΌΡ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ, Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ BFF ΠΊΠ°ΠΊ ΠΏΡΠΎΠΊΡΠΈΡΡΡΡΠΈΠΉ ΡΠ»ΡΠ·.
Π ΠΈΡΠΎΠ³Π΅ Π²ΡΠ΅ ΠΏΠΎΠ΄Π²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ Ρ BFF Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠ²Π΅Π»ΠΈΡΠΈΠ²Π°Π΅Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ. Π’ΠΎΠ»ΡΠΊΠΎ Π½Π°Π΄ΠΎ ΠΏΠΎΠ½ΡΡΡ, Π² ΡΡΠ°Π²Π½Π΅Π½ΠΈΠΈ Ρ ΡΠ΅ΠΌ. ΠΠ²ΡΠΎΡ ΠΏΠΎΠ΄Π½ΡΠ» ΠΎΡΠ΅Π½Ρ Π²Π°ΠΆΠ½ΡΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡ Π² ΠΏΠ΅ΡΠ²ΠΎΠΉ ΡΠ°ΡΡΠΈ Π²ΡΡΡΡΠΏΠ»Π΅Π½ΠΈΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΠΎΠ΄Π½ΠΎ ΡΠΎΠ»ΡΠΊΠΎ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ BFF ΠΊΠ°ΠΊ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΉ ΡΠ°ΡΡΠΈ ΠΏΡΠΎΠΊΡΠΈΡΡΡΡΠ΅ΠΉ Π·Π°ΠΏΡΠΎΡΡ, Π½Π΅ ΡΠ΅ΡΠ°Π΅Ρ Π΄Π°ΠΆΠ΅ Π²ΡΠ΅Π³ΠΎ ΡΠΎΠ³ΠΎ ΡΠΊΠΎΡΠΏΠ° ΡΠΏΠΎΠΌΡΠ½ΡΡΡΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΠ΅Π»Π°ΡΡ ΡΠΎΠΊΠ΅Π½Ρ Π΄ΠΎΡΡΡΠΏΠ½ΡΠΌΠΈ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΡΠ°ΡΡΠΈ Π½Π΅Ρ
ΠΎΡΠΎΡΠΎ, Π΄Π°. ΠΠΎ ΡΠ΅ ΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ Ρ Π°ΡΠ°ΠΊΡΡΡΠΈΠΌ, ΡΠΏΠΎΡΠΎΠ±Π½ΡΠΌ ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°ΡΡ Π½ΠΎΠ²ΡΠΉ OAuth flow, ΡΠ°ΠΌΠΈ ΡΠΎΠ±ΠΎΠΉ Π·Π΄Π΅ΡΡ Π½Π΅ ΡΠ΅ΡΠ°ΡΡΡ.
ΠΡΠ°ΠΊΡΡΡΠ΅ΠΌΡ Π½Π΅ ΠΎΡΠΎΠ±ΠΎ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠ°ΡΡ ΡΠ°ΠΌ access token Π΄Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ API. ΠΠΌΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠΈΠ»ΠΈ Π½ΠΎΠ²ΡΠΉ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠΉ Π°Π±ΡΡΡΠ°ΠΊΡΠΈΠ΅ΠΉ - Π΄Π° ΡΠ°Π΄ΠΈ Π±ΠΎΠ³Π°. ΠΡΠ°ΠΊΡΡΡΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ authorization code, ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π΅Π³ΠΎ ΡΠ²ΠΎΠ΅ΠΌΡ ΡΠ΅ΡΠ²Π΅ΡΡ, Π³Π΄Π΅ ΡΠΆΠ΅ Π²ΡΠΏΠΎΠ»Π½ΠΈΡΡ Π·Π°ΠΏΡΠΎΡ Ρ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ΠΉ Π΅Π³ΠΎ ΡΠ°ΠΌΠΎΠΌΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ½ΠΎΠΌ Π²ΡΠ·ΠΎΠ²Π΅ ΠΏΡΠΈ ΡΡΠΎΠΌ Π½ΠΈΡΡΠΎ Π½Π΅ ΠΌΠ΅ΡΠ°Π΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ session ID Π² ΠΎΡΠ²Π΅ΡΠ΅: ΡΡΠΎ Π±ΡΠ΄Π΅Ρ Π²ΡΠ΅Π³ΠΎ Π»ΠΈΡΡ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ Set-Cookie, ΠΊΠ°ΠΊΠΈΠ΅ Π±Ρ Π°ΡΡΠΈΠ±ΡΡΡ ΠΌΡ Ρ Π½Π΅Π³ΠΎ Π½Π΅ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ. ΠΡΡΠ°ΡΠΈ, ΡΠΊΠΎΡΠΎ ΠΏΠ»Π°Π½ΠΈΡΡΡ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°ΡΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΊΠ°ΠΊ ΡΠ°Π· ΠΏΡΠΎ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ Π°ΡΠ°ΠΊΠΈ. Π’Π°ΠΊ ΡΡΠΎ, ΠΊΠ°ΠΊ Π³ΠΎΠ²ΠΎΡΠΈΡΡΡ, stay tuned.
Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ, ΠΎΠΏΠΈΡΡΠ²Π°Ρ BFF ΠΊΠ°ΠΊ ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ
ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½Π½ΡΡ
ΠΏΡΠΎΠ±Π»Π΅ΠΌ, Π°Π²ΡΠΎΡ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅Ρ, ΡΡΠΎ:
Thatβs as good as it gets. We canβt do better
Π‘ΡΠΈΡΠ°Ρ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠΏΠΎΡΠ½ΡΠΌ. ΠΠΎ ΠΊΡΠ°ΠΉΠ½Π΅ΠΉ ΠΌΠ΅ΡΠ΅, Π΅ΡΡΡ ΠΈ Π°Π»ΡΡΠ΅ΡΠ½Π°ΡΠΈΠ²Ρ, ΠΈ Π²ΡΠ΅ ΠΆΠ΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Ρ ΠΊ βdo betterβ.
Π’Π°ΠΊ ΡΠΎΡΠ½ΠΎ Π»ΠΈ BFF Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ - Best Friend Forever?
#video #oauth | 318 |
| 9 | ΠΠΈΠ΄Π΅ΠΎ The insecurity of OAuth 2.0 in frontends - Philippe de Ryck - NDC Security 2023
ΠΡΠ΅ ΠΎΠ΄Π½ΠΎ Π²ΡΡΡΡΠΏΠ»Π΅Π½ΠΈΠ΅ ΠΎΡ Philippe De Ryck, ΠΏΡΠΎ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΡΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π». ΠΠ΄Π΅ΡΡ Π°Π²ΡΠΎΡ ΡΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΡ Π² ΡΠ΅Π»ΠΎΠΌ ΠΏΡΠΎ Π²ΠΎΠΏΡΠΎΡΡ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ
ΡΠ°ΡΡΠ΅ΠΉ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ OAuth.
Π Π΄ΠΎΠΊΠ»Π°Π΄Π΅ ΠΎΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΏΠΎΠΏΡΠ»ΡΡΠΈΠ·Π°ΡΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ, ΠΊΠΎΡΠΎΡΡΠ΅ ΡΠΎΡΡΠΎΡΡ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΠ· ΠΎΠ΄Π½ΠΎΠΉ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΡΠ°ΡΡΠΈ. ΠΠ»ΠΈΠ΅Π½ΡΡΠΊΠ°Ρ ΡΠ°ΡΡΡ Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΉ ΠΏΠΈΡΠ΅ΡΡΡ Π½Π° JavaScript, ΠΏΠΎΡΡΠΎΠΌΡ Π»ΠΎΠ³ΠΈΡΠ½ΠΎ ΡΠΏΠΎΠΌΠΈΠ½Π°ΡΡΡΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΠΎΠ³ΠΎ JS Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π²ΡΠ·Π²Π°Π½ΠΎ:
π΅Π‘ΠΊΠΎΠΌΠΏΡΠΎΠΌΠ΅ΡΠΈΡΠΎΠ²Π°Π½Π½ΠΎΠΉ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΡΡ ΠΈΠ»ΠΈ third-party ΡΠΊΡΠΈΠΏΡΠΎΠΌ
π΅ XSS
Π‘ΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΠΎ ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΡΡ Π½ΠΈΠΊΡΠ΄Π° Π½Π΅ ΡΡ
ΠΎΠ΄ΡΡΠ°Ρ ΠΏΠΎΠΏΡΠ»ΡΡΠ½ΠΎΡΡΡ Π½Π°Π»ΠΈΡΠΈΡ XSS, Ρ ΠΎΡΡΡΠ»ΠΊΠΎΠΉ Π½Π° ΡΡΠ°ΡΠΈΡΡΠΈΠΊΡ HackerOne, Π³Π΄Π΅ XSS ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ Π½Π° ΠΏΠ΅ΡΠ²ΠΎΠΌ ΠΌΠ΅ΡΡΠ΅. Π OWASP top 10 2021 3 ΠΏΡΠ½ΠΊΡ Injection ΡΠ°ΠΊΠΆΠ΅ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Π² ΡΠ΅Π±Ρ XSS (ΠΊΡΡΠ°ΡΠΈ, ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π½Π°ΠΏΠΎΠΌΠ½ΠΈΡΡ, ΡΡΠΎ ΠΏΠ΅ΡΠ²ΡΠΌ ΡΠ²Π»ΡΠ΅ΡΡΡ Broken Access Control)
ΠΠ²ΡΠΎΡ ΠΎΠ±ΡΠ°ΡΠ°Π΅Ρ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ ΡΠΎΠΊΠ΅Π½ΠΎΠ², Π΄ΠΎΡΡΡΠΏΠ½ΡΡ
ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΡΠ°ΡΡΠΈ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅, XSS Π½Π΅ΡΠ΅Ρ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠΉ ΡΠΈΡΠΊ βΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΡΠΎΠΊΠ΅Π½ΠΎΠ²β (token exfiltration). ΠΠ»Ρ ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠΈΡΠΊΠ° ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΡΡ ΠΌΠ΅ΡΡ Π²ΠΈΠ΄Π° ΡΠ½ΠΈΠΆΠ΅Π½ΠΈΡ Π²ΡΠ΅ΠΌΠ΅Π½ΠΈ ΠΆΠΈΠ·Π½ΠΈ ΡΠΎΠΊΠ΅Π½ΠΎΠ² ΠΈ ΡΠΎΡΠ°ΡΠΈΠΈ refresh-ΡΠΎΠΊΠ΅Π½ΠΎΠ² Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π·Π°ΡΠΈΡΠΎΠΉ ΠΎΡ ΠΏΠ΅ΡΠ΅ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ.
ΠΠ°Π»Π΅Π΅ Π°Π²ΡΠΎΡ Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΏΡΠΎ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎΡΡΡ ΡΠ°ΠΊΠΈΡ
ΠΌΠ΅Ρ, Π΅ΡΠ»ΠΈ ΡΠΎΠΊΠ΅Π½Ρ Π²ΡΠ΅ Π΅ΡΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Ρ Ρ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΎΠΉ ΡΠ°ΡΡΠΈ. Π‘ΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΠ± ΡΡΠΎΠΌ ΠΎΠ½ ΠΏΠΈΡΠ°Π» Π΅ΡΠ΅ Π΄Π°Π²Π½ΠΎ Π² ΡΠ²ΠΎΠΈΡ
ΡΡΠ°ΡΡΡΡ
.
ΠΡΠΈΡΠΈΠ½Ρ Π°Π²ΡΠΎΡ Π²ΠΈΠ΄ΠΈΡ Π² Π½Π΅Π΄ΠΎΠΎΡΠ΅Π½Π΅Π½Π½ΠΎΡΡΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠ΅ΠΉ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΠΎΠ³ΠΎ JS, ΡΡΠΎ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΠΎ. ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΡΠΉ JS Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ Π² ΡΠΎΠΌ ΠΆΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ ΠΈ ΠΌΠΎΠΆΠ΅Ρ Π²ΡΠ΅ ΡΠΎ ΠΆΠ΅, ΡΡΠΎ ΠΈ Π»Π΅Π³ΠΈΡΠΈΠΌΠ½ΡΠΉ ΠΊΠΎΠ΄.
ΠΠΎΠ²ΠΎΡΠΈΡΡΡ ΠΏΡΠΎ ΡΠΎΠΊΡΡ ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° ΠΊΡΠ°ΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ
ΡΠΎΠΊΠ΅Π½ΠΎΠ², ΠΎΠ΄Π½Π°ΠΊΠΎ, ΡΠΎΠΊΡΡΠΈΡΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π° ΡΡΠΎΠΉ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ΅, ΠΌΡ Π½Π΅ Π·Π°ΠΌΠ΅ΡΠ°Π΅ΠΌ ΡΠ»ΠΎΠ½Π° Π² ΠΊΠΎΠΌΠ½Π°ΡΠ΅. ΠΡΠ°ΠΊΡΡΡΠ΅ΠΌΡ ΡΠΎΠ²Π΅ΡΡΠ΅Π½Π½ΠΎ Π½Π΅ ΠΎΠ±ΡΠ·Π°ΡΠ΅Π»ΡΠ½ΠΎ ΠΏΡΡΠ°ΡΡΡΡ ΡΠΊΡΠ°ΡΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠΎΠΊΠ΅Π½Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΡΠΉ Π²Π΅ΠΊΡΠΎΡ Π°ΡΠ°ΠΊΠΈ Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠΈ Π°ΡΠ°ΠΊΡΡΡΠΈΠΌ Π½ΠΎΠ²ΡΡ
, Π΄ΡΡΠ³ΠΈΡ
ΡΠΎΠΊΠ΅Π½ΠΎΠ². ΠΠΎΠ»Π½ΠΎΡΡΡΡ ΡΠΎΠ³Π»Π°ΡΠ΅Π½ Ρ ΡΡΠΈΠΌ Π²ΡΡΠΊΠ°Π·ΡΠ²Π°Π½ΠΈΠ΅ΠΌ, Π·Π΄ΠΎΡΠΎΠ²ΠΎ, ΡΡΠΎ ΡΠ°ΠΊΠΎΠΉ Π²ΠΎΠΏΡΠΎΡ ΡΡΠ°Π» ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°ΡΡΡΡ ΡΠ°ΡΠ΅.
ΠΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΎΠ΄ΠΈΠ½ ΠΈΠ· ΠΌΠΎΠΈΡ
Π»ΡΠ±ΠΈΠΌΡΡ
ΠΏΡΠΈΠΌΠ΅ΡΠΎΠ² Ρ Ρ.Π½. βsilent flowβ, ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌΡΠΌ ΡΠ΅ΡΠ΅Π· Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ iframe Ρ URL authorization request Ρ prompt=none ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΠ΅ΠΉ authorization response ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌΡ ΠΎΠΊΠ½Ρ ΡΠ΅ΡΠ΅Π· postMessage. ΠΠ±ΡΠΎΠ»ΡΡΠ½ΠΎ Π»ΠΎΠ³ΠΈΡΠ½ΠΎ, ΡΡΠΎ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π°ΡΠ°ΠΊΡΡΡΠΈΠΉ, ΠΈΠΌΠ΅ΡΡΠΈΠΉ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΈΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ²ΠΎΠ΅Π³ΠΎ JS, ΠΌΠΎΠΆΠ΅Ρ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠ²ΠΎΠΉ ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΡΠΉ EventListener Π½Π° ΡΠΎΠ±ΡΡΠΈΠ΅ βmessageβ, Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½Π΅Π²ΠΈΠ΄ΠΈΠΌΡΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ iframe ΠΈ, ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΠΈΠ½ΠΈΡΠΈΠΈΡΠΎΠ²Π°Π² Π½ΠΎΠ²ΡΠΉ OAuth flow, ΠΏΠΎΡ
ΠΈΡΠΈΡΡ ΠΎΡΠ²Π΅Ρ, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ authorization code Ρ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΠΌ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΡΠΎΠΊΠ΅Π½ΠΎΠ² Π½Π° Π΅Π³ΠΎ ΠΎΡΠ½ΠΎΠ²Π΅. ΠΡΠ΅ ΡΠ°Π· Ρ
ΠΎΡΡ ΠΏΠΎΠ΄ΡΠ΅ΡΠΊΠ½ΡΡΡ, ΡΡΠΎ ΠΏΡΠΈΠΌΠ΅Ρ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π²Π°Π»ΠΈΠ΄Π½ΡΠΉ. ΠΠ΅ΡΠ°Π»ΡΠ½Π΅Π΅ ΠΏΡΠΎ ΡΠ°Π±ΠΎΡΡ web message response mode ΡΠΎΠΆΠ΅ ΠΏΠΈΡΠ°Π» Π½Π΅Π΄Π°Π²Π½ΠΎ, ΡΠ°Π·Π±ΠΈΡΠ°Ρ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π½Π° ΠΏΠΎΡΡΠ°Π»Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Spotify.
Π’Π°ΠΊΠΆΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½Π°Ρ ΠΌΡΡΠ»Ρ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ proof-of-possession, Π² ΡΠ°ΡΡΠ½ΠΎΡΡΠΈ DPoP, Π½Π΅ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅. ΠΡΠ°ΠΊΡΡΡΠΈΠΉ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ ΡΠΎΠ³ΠΎ ΠΆΠ΅ JS ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈΠ»ΠΈΠ½ΠΊΠΎΠ²Π°ΡΡ ΡΠΎΠΊΠ΅Π½Ρ ΠΊ ΡΠ²ΠΎΠΈΠΌ DPoP-ΡΠ΅ΠΊΡΠ΅ΡΠ°ΠΌ.
ΠΠΎΠ²ΠΎΡΠΈΡΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Π»ΡΠ΄ΠΈ ΡΡΠ°ΡΠ°ΡΡΡΡ ΠΏΡΠΈΠ΄ΡΠΌΠ°ΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΌΠ΅ΡΡ Π·Π°ΡΠΈΡΡ, Π½Π΅ ΡΠ΅ΡΠ°ΡΡΠΈΠ΅ root cause, Π² ΠΏΡΠΈΠΌΠ΅Ρ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ service worker, ΠΈΠΌΠ΅ΡΡΠ΅Π³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Ρ
Π²Π°ΡΠ° Π·Π°ΠΏΡΠΎΡΠΎΠ². Π Π·Π°ΡΠ΅ΠΌ Π°Π²ΡΠΎΡ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΡΠ΅Ρ Π½Π΅Π΄ΠΎΡΡΠ°ΡΠΊΠΈ ΡΠ°ΠΊΠΎΠ³ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π°, Π·Π°ΠΊΠ»ΡΡΠ°ΡΡΠΈΠ΅ΡΡ Π² Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π΄Π΅ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΠΈ service worker.
ΠΠ΄Π½Π°ΠΊΠΎ Π΄Π°Π»Π΅Π΅ ΡΡΠΎ Π²ΡΠ΅ ΠΏΠΎΠ΄Π²ΠΎΠ΄ΠΈΡΡΡ ΠΊ ΡΠΎΠΌΡ, ΡΡΠΎ ΠΌΡ Π½Π΅ ΠΌΠΎΠΆΠ΅ΠΌ Π·Π°ΡΠΈΡΠΈΡΡ OAuth-flow, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π±ΡΠ°ΡΠ·Π΅Ρ, ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅ΡΡΡ, ΡΡΠΎ Π΅ΡΠ»ΠΈ Π°ΡΠ°ΠΊΡΡΡΠΈΠΉ ΠΈΠΌΠ΅Π΅Ρ ΠΏΠΎΠ΄ΠΊΠΎΠ½ΡΡΠΎΠ»ΡΠ½ΡΠΉ URL Π½Π° ΡΠΎΠΌ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠΌ origin ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΠ°ΠΊΠΈΠ΅ Π²Π°ΡΠΈΠ°Π½ΡΡ Π°ΡΠ°ΠΊ Π²ΡΠ΅ Π΅ΡΠ΅ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ.
Π Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΡ Π·Π΄Π΅ΡΡ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ backend-ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠ°, ΠΊΠΎΡΠΎΡΡΠΉ Π±ΡΠ΄Π΅Ρ Π²ΡΠΏΠΎΠ»Π½ΡΡΡ ΡΠΎΠ»Ρ confidential client ΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²ΡΠ²Π°ΡΡ Π½Π° ΡΠ΅Π±Π΅ Π²ΡΡ ΡΠ°Π±ΠΎΡΡ Ρ ΡΠΎΠΊΠ΅Π½Π°ΠΌΠΈ. Π’ΠΎ ΡΡΠΎ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ OAuth ΠΏΡΠΈΠ½ΡΡΠΎ Π½Π°Π·ΡΠ²Π°ΡΡ βBackend-for-Frontend (BFF)β. ΠΡΠΈ ΡΡΠΎΠΌ Π½Π° ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΡΡ ΡΠ°ΡΡΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°ΡΡΡΡ Π½Π΅ ΡΠ°ΠΌΠΈ ΡΠΎΠΊΠ΅Π½Ρ, Π° Π½Π΅ΠΊΠΎΡΠΎΡΡΠΉ session ID: ΡΠΎ Π΅ΡΡΡ BFF ΡΠΎΠ·Π΄Π°Π΅Ρ ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ ΡΠ΅ΡΡΠΈΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
(ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΠ΅ ΡΠΌ. Π½ΠΈΠΆΠ΅)
#video #oauth | 266 |
| 10 | ΠΡΡΠ°ΡΠΈ, ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π΅Π»ΠΎΠΌ ΠΏΠΎΡ
Π²Π°ΡΡΠ°ΡΡΡ, ΡΡΠΎ Π΄Π°Π²Π΅ΡΠ° ΠΏΠΎΡΠ²ΠΈΠ»ΡΡ Π² ΠΠ°Π»Π΅ Π‘Π»Π°Π²Ρ Π±Π°Π³Π±Π°ΡΠ½ΡΠΈ Π―Π½Π΄Π΅ΠΊΡΠ°. Π ΠΊΠΎΠ½ΡΡ ΠΊΠ²Π°ΡΡΠ°Π»Π° Π½Π°Ρ
ΠΎΠΆΡΡΡ Π½Π° ΠΏΠΎΡΠ΅ΡΠ½ΠΎΠΌ 27 ΠΌΠ΅ΡΡΠ΅ Π² ΠΎΠ±ΡΠ΅ΠΌ ΡΠΏΠΈΡΠΊΠ΅ πͺ
ΠΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ ΠΎΠ±Π½Π°ΡΡΠΆΠ΅Π½Π½ΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡ, ΡΠ²ΡΠ·Π°Π½Π½ΡΡ Ρ ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠΎΠΉ ΠΊΠ°Π½Π°Π»Π°, ΡΠΎΠΆΠ΅ Π½Π°ΠΏΠΈΡΡ, Π½ΠΎ ΠΏΠΎΠΏΠΎΠ·ΠΆΠ΅. | 306 |
| 11 | Identity Fabrics (ΡΠ°ΡΡΡ 2)
ΠΡΠΎΠ΄ΠΎΠ»ΠΆΠ°Π΅ΠΌ ΠΎΠ±ΡΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΡΠ΅ΠΌΡ ΠΈΠ· ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΏΠΎΡΡΠ°.
ΠΠΎΠ½ΡΠ°Π²ΠΈΠ»Π°ΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Time Phases. ΠΠ΄Π΅ΡΡ Π°Π²ΡΠΎΡΡ Π³ΠΎΠ²ΠΎΡΡΡ, ΡΡΠΎ ΡΠ°Π½Π΅Π΅ Π²ΡΠ΄Π΅Π»ΡΠ»ΠΈ ΡΠΎΠ»ΡΠΊΠΎ Deploy-Time (ΠΊΠΎΠ³Π΄Π° Π΄ΠΎΡΡΡΠΏ ΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ identity ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ»ΠΈΡΡ) ΠΈ Run-Time (ΠΊΠΎΠ³Π΄Π° Π΄ΠΎΡΡΡΠΏ ΠΏΡΠΈΠΌΠ΅Π½ΡΠ»ΡΡ). ΠΠ±Π½ΠΎΠ²Π»Π΅Π½Π½Π°Ρ ΠΆΠ΅ ΠΌΠΎΠ΄Π΅Π»Ρ Π²Π²ΠΎΠ΄ΠΈΡ ΡΠΆΠ΅ ΡΡΠΈ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
ΡΠ°Π·Ρ (Ρ ΡΠ°Π·Π±ΠΈΠ²ΠΊΠΎΠΉ ΠΎΠ΄Π½ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ
):
1οΈβ£ Admin-Time
2οΈβ£ Real-Time (Π²ΠΊΠ»ΡΡΠ°Π΅Ρ Session Initialization ΠΈ Session Management)
3οΈβ£ Post-Event Time
ΠΠ΅ΡΠ°Π»ΡΠ½Π΅Π΅ ΡΠΌ. ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ 1 (Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ ΠΊ ΠΏΠΎΡΡΡ). ΠΠ°ΡΠ΅ΠΌ ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ? ΠΠ°Π»Π΅Π΅ ΠΏΡΠΈ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½ΠΈΠΈ capabilities Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· Π½ΠΈΡ
Π±ΡΠ΄Π΅Ρ ΡΠΊΠ°Π·Π°Π½Π° ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ°Ρ time phase (ΠΈΠ»ΠΈ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΠΈΡ
).
ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΡΠ°ΡΠΏΠΈΡΡΠ²Π°Π΅ΡΡΡ IAM Reference Architecture. Π‘Π°ΠΌΠ° ΠΈΠ΄Π΅Ρ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»Π΅Π½Π° Π² Π²ΠΈΠ΄Π΅ ΠΌΠ°ΡΡΠΈΡΡ (ΡΠΌ. ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ 2)
ΠΡΠ΄Π΅Π»ΡΡΡ 4 Π΄ΠΎΠΌΠ΅Π½Π°:
1οΈβ£ Administration
2οΈβ£ Analytics & Risk
3οΈβ£ Authentication
4οΈβ£ Authorization
5 ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΡΡ
ΡΡΠΎΠ²Π½Π΅ΠΉ:
1οΈβ£ Core
2οΈβ£ Privileged
3οΈβ£ Extended
4οΈβ£ Integrations
5οΈβ£ API
Π ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠΉ Foundation Layer, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ ΠΎΡΡΠ°Π»ΡΠ½ΡΠ΅ ΠΈ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ²Π°Π΅Ρ ΡΡΠ°Π±ΠΈΠ»ΡΠ½ΠΎΡΡΡ ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»ΡΠ½ΠΎΡΡΡ IAM-ΠΈΠ½ΡΡΠ°ΡΡΡΡΠΊΡΡΡΡ.
Π Π·Π°ΡΠ΅ΠΌ ΠΈΠ΄Π΅Ρ ΡΠΆΠ΅ Π΄Π΅ΡΠ°Π»ΡΠ½ΡΠΉ ΡΠ°Π·Π±ΠΎΡ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΈΠ· capabilities - ΡΠ°ΠΌΠ°Ρ ΠΎΠ±ΡΠ΅ΠΌΠ½Π°Ρ ΡΠ°ΡΡΡ. ΠΡΠΎΡΠ΅ΡΡΡ Π΅Π΅ ΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ, ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎ ΠΏΡΠΎ ΡΠ΅ Π°ΡΠΏΠ΅ΠΊΡΡ, Ρ ΠΊΠΎΡΠΎΡΡΠΌΠΈ Π½Π΅ Π΄ΠΎΠ²Π΅Π»ΠΎΡΡ ΡΡΠ°Π»ΠΊΠΈΠ²Π°ΡΡΡΡ. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎ, ΠΆΠ°Π»Ρ ΡΡΠΎ ΠΏΡΠΎ ΡΡΠΎΠ²Π΅Π½Ρ API Π·Π΄Π΅ΡΡ Π½Π°ΠΏΠΈΡΠ°Π»ΠΈ ΠΌΠ°Π»ΠΎ.
Π Π² ΠΊΠΎΠ½ΡΠ΅ ΡΠΊΠ°Π·ΡΠ²Π°Π΅ΡΡΡ ΠΏΠ΅ΡΠ΅ΡΠ΅Π½Ρ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΉ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ Π΄Π°Π½Π½ΡΠΌ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊΠ°ΠΌΠΈ.
ΠΠΎΠ΄ΡΡΠΎΠΆΠΈΠΌ. Identity Fabric Π΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ (ΠΏΠ°ΡΠ°Π΄ΠΈΠ³ΠΌΠ°) ΠΈ ΠΎΠ΄Π½ΠΎΠΈΠΌΠ΅Π½Π½ΡΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ, ΠΊΠΎΡΠΎΡΡΠΉ Π½Π°ΡΠ΅Π»Π΅Π½ Π½Π° Π²ΡΡΡΡΠ°ΠΈΠ²Π°Π½ΠΈΠ΅ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ (ΡΠΊΠΎΡΠΈΡΡΠ΅ΠΌΡ) IAM Π½Π° ΡΡΠΎΠ²Π½Π΅ ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΡ (enterprise). ΠΠ½ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π½Π΅ ΡΠΌΠΎΡΡΠ΅ΡΡ Π½Π° ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΠ΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ ΠΊΠ°ΠΊ Π½Π° ΠΈΠ·ΠΎΠ»ΠΈΡΠΎΠ²Π°Π½Π½ΡΠ΅ ΡΠ°ΡΡΠΈ, Π° Π³ΠΎΠ²ΠΎΡΠΈΡ, ΡΡΠΎ ΠΎΠ½ΠΈ ΡΠ²Π»ΡΡΡΡΡ ΡΠ°ΡΡΡΡ ΡΠ΅Π»ΠΎΠ³ΠΎ Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
IT-Π»Π°Π½Π΄ΡΠ°ΡΡΠ°Ρ
. ΠΡΠΈΠ²Π½ΠΎΡΠΈΡ Π»ΠΈ ΠΎΠ½ ΡΡΠΎ-ΡΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΠΈΠ°Π»ΡΠ½ΠΎΠ΅ Π½ΠΎΠ²ΠΎΠ΅? ΠΠ΅ ΡΠΊΠ°Π·Π°Π» Π±Ρ. ΠΠ΄Π½Π°ΠΊΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΠΉ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ Π² ΡΠΎΠΌ ΡΠΈΡΠ»Π΅ Π½Π° ΡΡΠΎΠ²Π½Π΅ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΠΊΠ°ΠΆΠ΅ΡΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΌ. ΠΡΠ» Π±Ρ Ρ ΠΊΠΎΡΠΏΠΎΡΠ°ΡΠΈΠ²Π½ΡΠΌ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΠΎΡΠΎΠΌ, ΠΊΡΠΎ Π·Π½Π°Π΅Ρ, ΠΌΠΎΠΆΠ΅Ρ ΠΈ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π» Π±Ρ Π²Π·Π³Π»ΡΠ½ΡΡΡ Π½Π° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΡ ΠΏΡΠ΅Π΄ΠΏΡΠΈΡΡΠΈΡ ΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
IAM Reference Architecture ΠΏΠΎΠΊΠ°Π·Π°Π»Π°ΡΡ Π΄ΠΎΡΡΠΎΠΉΠ½ΠΎΠΉ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ. Π‘ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, Π΅ΡΠ»ΠΈ Π²Ρ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Ρ ΡΡΠ½ΠΊΡΠΈΡΠΌΠΈ IAM Π² Π±ΠΎΠ»ΡΡΠΈΡ
ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡΡ
, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ ΠΏΠΎΠ΄Π½ΠΈΠΌΠ°Π΅ΠΌΡΠ΅ Π²ΠΎΠΏΡΠΎΡΡ Π±ΡΠ΄ΡΡ Π²Π°ΠΌ ΡΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ. ΠΠΎ ΠΎΠΏΡΡΡ ΠΆΠ΅ ΠΎΠ±ΡΠΈΠΉ Π²Π·Π³Π»ΡΠ΄ ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠΌΠΎΡΡ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π·Π°ΡΠΎΡΠ΅Π½Π½ΠΎΡΡΠΈ Π²Π·Π³Π»ΡΠ΄Π° ΠΏΠΎΡΠΎΠΉ.
ΠΠ΄Π΅ ΡΡΠΎ Π²ΡΠ΅ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ? Π’ΡΡ ΠΌΠΎΠΈ ΠΌΡΡΠ»ΠΈ Π² ΡΠ΅Π»ΠΎΠΌ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ ΡΠ΅ΠΌ, ΡΡΠΎ ΠΏΠΈΡΡΡ ΡΠ°ΠΌΠΈ Π°Π²ΡΠΎΡΡ. Π’ΠΎΠ±ΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΡΡΠΎ ΠΌΠΎΠΆΠ΅Ρ ΠΏΡΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠΈ Π½ΠΎΠ²ΡΡ
Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡ, Π°ΡΠ΄ΠΈΡΠ° ΠΈ Π°Π½Π°Π»ΠΈΠ·Π° ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΡ
ΠΈ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΎΠ² ΠΊ ΡΠ½Π°ΡΡΠ΄Ρ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΠΈ ΡΡΠ°Π½ΡΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΈ ΠΌΠΎΠ΄Π΅ΡΠ½ΠΈΠ·Π°ΡΠΈΠΈ. Π Π΅ΡΠ΅ ΠΏΠΎΠ΄ΡΠΌΠ°Π», ΡΡΠΎ ΡΠ°ΠΊΠ°Ρ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΈΠ· IAM Reference Architecture ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½Π° ΠΈ Π΄Π»Ρ ΡΠΎΡΠΌΠΈΡΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ°Π΄ΠΌΠ°ΠΏΠ° ΠΊ ΡΠ°Π·Π²ΠΈΡΠΈΡ: Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ½ΠΎ Π²Π·ΡΡΡ Π΄Π»Ρ Π±ΠΎΠ»Π΅Π΅ Π³Π»ΡΠ±ΠΎΠΊΠΎΠΉ ΠΏΡΠΎΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠΈΠ΅ capabilities. | 312 |
| 12 | Identity Fabrics (ΡΠ°ΡΡΡ 1)
ΠΡΠΈΡΠ»Π° ΡΡΡ Π½Π° ΠΏΠΎΡΡΡ ΡΠ΅ΠΊΠ»Π°ΠΌΠ° European Identity and Cloud Conference 2025, ΡΠ΅ΡΠΈΠ» ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ Π΄ΠΎΠΊΠ»Π°Π΄Ρ ΡΠ°ΠΌ Π½Π° ΠΏΠΎΠ²Π΅ΡΡΠΊΠ΅ ΠΈ Π·Π°ΠΌΠ΅ΡΠΈΠ», ΡΡΠΎ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΡΠ΄Π΅Π»ΡΠ΅ΡΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ Identity Fabrics.
Π‘ΡΠ°Π»ΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°ΡΡ ΡΠ°Π·ΠΎΠ±ΡΠ°ΡΡΡΡ, Π² ΡΠ΅ΠΌ ΠΆΠ΅ ΠΎΠ½Π° Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ ΠΈ Π΅ΡΡΡ Π»ΠΈ Π² Π½Π΅ΠΉ ΡΡΠΎ-ΡΠΎ Π½ΠΎΠ²ΠΎΠ΅, ΠΊΡΠΎΠΌΠ΅ ΠΊΡΠ°ΡΠΈΠ²ΡΡ
Π½Π°Π·Π²Π°Π½ΠΈΠΉ. ΠΠ± ΡΡΠΎΠΌ, ΡΠΎΠ±ΡΡΠ²Π΅Π½Π½ΠΎ, ΠΈ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ.
ΠΠ°ΠΊ ΠΏΠ΅ΡΠ²ΠΎΠΈΡΡΠΎΡΠ½ΠΈΠΊ, Π²Π²ΠΎΠ΄ΡΡΠΈΠΉ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ½ΡΡΠΈΠ΅, Π½Π°ΡΠ΅Π» ΡΡΠ°ΡΡΡ Π΅ΡΡ 2020 Π³ΠΎΠ΄Π° Leveraging Identity Fabrics on Your Way Towards Cloud Based IAM (ΠΏΠΎΠ»Π½ΡΠΉ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» Π·Π° ΠΏΠ΅ΠΉΠ²ΠΎΠ»Π»ΠΎΠΌ Π²ΡΠ»ΠΎΠΆΠΈΡΡ Π·Π΄Π΅ΡΡ Π½Π΅ ΠΌΠΎΠ³Ρ, ΠΎΠ΄Π½Π°ΠΊΠΎ Π΄ΠΎΡΡΡΠΏ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ
Π±Π΅ΡΠΏΠ»Π°ΡΠ½ΠΎΠ³ΠΎ trial-ΠΏΠ΅ΡΠΈΠΎΠ΄Π°).
Π’ΡΡ Π½Π°ΠΌ Π³ΠΎΠ²ΠΎΡΠΈΡΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ βΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΡΠ΅ IAM-ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π΅ ΠΎΡΠ²Π΅ΡΠ°ΡΡ ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΠΌ Π²ΡΠ·ΠΎΠ²Π°ΠΌ ΠΈΠ½Π΄ΡΡΡΡΠΈΠΈβ, ΡΡΠΎ ΠΈ Π±Π΅ΡΠ΅ΡΡΡ Π·Π° ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠΈΠΊΡ.
ΠΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅ Π²Π²ΠΎΠ΄ΠΈΡΡΡ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
Identity Fabrics are a concept that serves as a viable foundation for enterprise architectures for Identity and Access Management (IAM) that serve the business demand. They provide the capabilities required for supporting the business use cases, based on a well-defined set of services that are built in a modern architecture. These services aim at providing access for everyone (and everything) to every service and system, in a controlled manner. As such they can serve as the conceptual foundation for sustainably transforming existing IAM infrastructures into a future-proof basic technology.
Π’Π°ΠΊΠΆΠ΅ ΠΏΠΈΡΡΡ:
It serves as the logical architecture that unites different services and delivers the capabilities required by the enterprise.
Π‘ΠΎΡΡΠ°Π²Π½ΡΠ΅ ΡΠ°ΡΡΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΠΈ ΠΏΠΎΠΊΠ°Π·Π°Π½Ρ Π½Π° ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ 1 (Π² ΠΏΠΎΡΡΠ΄ΠΊΠ΅ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ ΠΊ ΠΏΠΎΡΡΡ).
Π Π΄Π°Π»ΡΡΠ΅ ΠΏΡΠΈΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΡΠ΄ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½Π½ΡΡ
ΡΠ°Π³ΠΎΠ² (Π±Π΅Π· Π½Π΅Π³Π°ΡΠΈΠ²Π°), ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΡΠΈΡΠ°ΡΠ΅Π»Ρ ΠΊ ΡΠ²Π΅ΡΠ»ΠΎΠΌΡ Π±ΡΠ΄ΡΡΠ΅ΠΌΡ.
Π ΠΎΠ±ΡΠ΅ΠΌ, ΡΡΠΎ Π½Π΅ΠΊΠ°Ρ Π²Π²ΠΎΠ΄Π½Π°Ρ ΡΡΠ°ΡΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎ ΡΡΡΠΈ ΠΏΠΎΠΊΠ° ΡΡΠΎ βΠ·Π° Π²ΡΠ΅ Ρ
ΠΎΡΠΎΡΠ΅Π΅ ΠΏΡΠΎΡΠΈΠ² Π²ΡΠ΅Π³ΠΎ ΠΏΠ»ΠΎΡ
ΠΎΠ³ΠΎβ.
ΠΠΎΡΡΠΎΠΌΡ Π·Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠΈΠΊΠΎΠΉ ΠΎΠ±ΡΠ°ΡΠΈΠ»ΡΡ ΠΊ ΠΊΠ°ΠΊ ΡΠ°Π· Π½Π΅Π΄Π°Π²Π½ΠΎ ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½Π½ΠΎΠΌΡ ΡΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ ΡΠΎΡΡΠΎΡΡΠ΅Π»ΡΠ½ΠΎΠΌΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ: The 2025 Identity Fabric and IAM Reference Architecture (ΠΌΠΎΠ΄Π΅Π»Ρ Π΄ΠΎΡΡΡΠΏΠ° Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½Π°Ρ).
Π ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» Π²ΠΊΠ»ΡΡΠ΅Π½Ρ IAM Reference Architecture 2025, ΠΊΠΎΡΠΎΡΠ°Ρ
provides a detailed and modular framework for designing, evolving, and integrating IAM capabilities. It offers a clear separation of functional layers and capabilities to ensure consistency, adaptability, and scalability across organizations of varying industries and sizes
Π Identity Fabric 2025, ΠΊΠΎΡΠΎΡΡΠΉ
serves as a strategic framework for building flexible, service-oriented IAM ecosystems. Unlike traditional IAM frameworks, the Identity Fabric focuses on creating a cohesive service delivery model that integrates identity management capabilities into broader enterprise strategies.
Π Π²ΠΌΠ΅ΡΡΠ΅ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠ²Π»ΡΡΡΡΡ ΠΎΡΠ½ΠΎΠ²ΠΎΠΉ, Π·Π°ΡΡΠ°Π³ΠΈΠ²Π°ΡΡΠ΅ΠΉ ΠΏΠΎΠ»Π½ΡΠΉ ΡΠΏΠ΅ΠΊΡΡ IAM-Π²ΠΎΠΏΡΠΎΡΠΎΠ² Π΄Π»Ρ ΠΏΠΎΡΡΡΠΎΠ΅Π½ΠΈΡ ΠΊΠΎΠΌΠΏΠ»Π΅ΠΊΡΠ½ΡΡ
ΡΠΈΡΡΠ΅ΠΌ.
ΠΠ»ΡΡΠ΅Π²ΡΠ΅ Π°ΡΠΏΠ΅ΠΊΡΡ:
1οΈβ£ Building Block-Based Structure
2οΈβ£ Comprehensive Identity Coverage
3οΈβ£ Dynamic Authorization
4οΈβ£ Integrated Compliance
5οΈβ£ Support for Zero Trust
6οΈβ£ Strengthened Privileged Access Management
7οΈβ£ API and Interoperability Focus
8οΈβ£ Scalability Across Sectors
ΠΠ°Π»Π΅Π΅ ΡΠ°Π·Π±ΠΈΡΠ°Π΅ΡΡΡ ΡΠ°ΠΌΠ° ΠΊΠΎΠ½ΡΠ΅ΠΏΡΠΈΡ Identity Fabrics ΡΠ΅ΡΠ΅Π· ΠΎΡΠ²Π΅ΡΠ΅Π½ΠΈΠ΅ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ
Π΅Π΅ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ²:
1οΈβ£ Human and Non-Human Identities
2οΈβ£ Target Systems
3οΈβ£ Core of the Identity Fabric: Capabilities, Services, and Tools
4οΈβ£ Integration of Legacy Systems
5οΈβ£ Support for Digital Services and API Connectivity
Π‘ΠΌ. ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½Π½ΠΎΠ΅ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ 2.
ΠΠΎΠ²ΠΎΡΠΈΡΡΡ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ Identity Fabric - ΡΡΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΠΉ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ, Π½ΠΎ ΠΈ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡΠ΅ΡΠΊΠ°Ρ Π΄Π²ΠΈΠΆΡΡΠ°Ρ ΡΠΈΠ»Π° (enabler).
ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½Π° ΠΈ ΡΠ²ΡΠ·Ρ Ρ ΡΠΏΠΎΠΌΡΠ½ΡΡΠΎΠΉ IAM Reference Architecture. ΠΠΈΡΡΡ, ΡΡΠΎ capabilities - ΠΈ Π΅ΡΡΡ ΡΠ²ΡΠ·ΡΡΡΠ΅Π΅ Π·Π²Π΅Π½ΠΎ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ. Identity Fabric Π³ΠΎΠ²ΠΎΡΠΈΡ ΠΎ Π±ΠΎΠ»Π΅Π΅ Π²Π΅ΡΡ
Π½Π΅ΡΡΠΎΠ²Π½Π΅Π²ΡΡ
Π²Π΅ΡΠ°Ρ
, Π² ΡΠΎ Π²ΡΠ΅ΠΌΡ ΠΊΠ°ΠΊ IAM Reference Architecture ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ ΡΠΆΠ΅ Π±ΠΎΠ»Π΅Π΅ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΡΠ΅ ΡΠ΅Ρ
Π½ΠΈΡΠ΅ΡΠΊΠΈΠ΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Ρ ΠΈ ΠΏΠ°ΡΡΠ΅ΡΠ½Ρ Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ capability. Π§ΡΠΎ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΠΏΠΎΠΌΠΎΡΡ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΠΉ ΡΠ°Π±ΠΎΡΠ΅ Π½Π° ΡΠ°Π·Π½ΡΡ
ΡΡΠΎΠ²Π½ΡΡ
ΠΈ ΠΏΠ΅ΡΠ΅Ρ
ΠΎΠ΄Ρ ΠΎΡ ΡΡΡΠ°ΡΠ΅Π³ΠΈΡΠ΅ΡΠΊΠΈΡ
Π°ΡΠΏΠ΅ΠΊΡΠΎΠ² ΠΊ Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ½ΡΠΌ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌ.
Π ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΉ ΡΠ°ΡΡΠΈ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΏΡΠΎ Π»ΡΠ±ΠΎΠΏΡΡΠ½ΡΡ ΠΈΠ΄Π΅Ρ Time Phases, Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΠΌΡ IAM Reference Architecture. | 368 |
| 13 | ΠΡΡΠ°ΡΠΈ, Π·Π°ΠΏΠΈΡΡ ΠΌΠΈΡΠ°ΠΏΠ° ΡΠΆΠ΅ Π΄ΠΎΡΡΡΠΏΠ½Π°:
π YouTube
π VK ΠΠΈΠ΄Π΅ΠΎ
π Rutube
Π’Π°ΠΊΠΆΠ΅ ΠΏΡΠΈΠΊΠ»Π°Π΄ΡΠ²Π°Ρ ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΡ Ρ Π²ΡΡΡΡΠΏΠ»Π΅Π½ΠΈΡ. | 401 |
| 14 | Π‘ΡΠ°ΡΡΡ Β«Account hijacking using βdirty dancingβ in sign-in OAuth-flowsΒ»
Π‘Π΅Π³ΠΎΠ΄Π½Ρ Ρ
ΠΎΡΡ ΡΠ°ΡΡΠΊΠ°Π·Π°ΡΡ ΠΏΡΠΎ ΡΡΠ°ΡΡΡ Account hijacking using βdirty dancingβ in sign-in OAuth-flows ΠΎΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Ρ Frans RosΓ©n. Π‘ΡΠ°ΡΡΡ Π²ΡΡΠ»Π° Π΅ΡΠ΅ Π² 2022 Π³ΠΎΠ΄Ρ, ΠΎΠ΄Π½Π°ΠΊΠΎ Ρ Ρ Π½Π΅ΠΉ ΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠ»ΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² Π½Π°ΡΠ°Π»Π΅ Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π³ΠΎΠ΄Π°. ΠΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΏΠΎΠ»Π΅Π·Π½ΡΠΉ, Π½ΠΎ ΠΌΠ½Π΅ ΠΏΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ, ΡΡΠΎ ΡΠΈΡΠ°Π΅ΡΡΡ ΠΏΡΡΠΌ ΡΡΠΆΠ΅Π»ΠΎ: Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, ΠΈΠ·-Π·Π° ΠΌΠ°Π½Π΅ΡΡ ΠΏΠΎΠ²Π΅ΡΡΠ²ΠΎΠ²Π°Π½ΠΈΡ ΠΈΠ»ΠΈ ΠΈΠ·-Π·Π° ΠΎΠ±ΠΈΠ»ΠΈΡ ΡΠΎΠ½ΠΊΠΎΡΡΠ΅ΠΉ ΡΠ°Π±ΠΎΡΡ ΠΊΠ»ΠΈΠ΅Π½ΡΡΠΊΠΈΡ
ΡΠ°ΡΡΠ΅ΠΉ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅.
Π‘Π½Π°ΡΠ°Π»Π° Π΄Π»Ρ Π·Π°ΡΡΠ°Π²ΠΊΠΈ Π² ΡΡΠ°ΡΡΠ΅ ΠΊΡΠ°ΡΠΊΠΎ ΡΠ°ΡΡΠΌΠ°ΡΡΠΈΠ²Π°ΡΡΡΡ ΠΎΡΠ½ΠΎΠ²Π½ΡΠ΅ response types ΠΈ response modes Π² OAuth. ΠΠ°Π»Π΅Π΅ Π°Π²ΡΠΎΡ ΡΠ°ΡΡΠΊΠ°Π·ΡΠ²Π°Π΅Ρ, ΠΊΠ°ΠΊ Π½Π°ΡΠ°Π» ΠΈΡΠΊΠ°ΡΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠΈ, ΡΠ²ΡΠ·Π°Π½Π½ΡΠ΅ Ρ postMessage, ΠΈ Π΄Π°ΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠ» ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ Π½Π° ΡΠΎΡ ΠΌΠΎΠΌΠ΅Π½Ρ ΡΠ΅Ρ
Π½ΠΈΠΊΡ: ΡΠ΄Π΅Π»Π°Π» ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Chrome Π΄Π»Ρ ΡΠΏΡΠΎΡΠ΅Π½ΠΈΡ Π°Π½Π°Π»ΠΈΠ·Π°.
Π Π°Π·Π±ΠΈΡΠ°ΡΡΡΡ ΡΠ°ΠΊΡΠΈΠΊΠΈ Π΄Π»Ρ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ OAuth flow, ΡΡΠΎΠ±Ρ ΠΏΡΠ΅Π΄ΠΎΡΠ²ΡΠ°ΡΠΈΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ authorization response (ΠΈ Π°ΡΠ°ΠΊΡΡΡΠΈΠΉ ΠΌΠΎΠ³ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ°ΠΌ). ΠΠ»ΠΈ, ΠΊΠ°ΠΊ Π°Π²ΡΠΎΡ ΠΈΡ
Π½Π°Π·ΡΠ²Π°Π΅Ρ, "non-happy paths".
Π‘ΡΠ΅Π΄ΠΈ Π½ΠΈΡ
:
1. ΠΠ΅ΡΠ΅Π΄Π°ΡΠ° Π½Π΅Π²Π°Π»ΠΈΠ΄Π½ΠΎΠ³ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΡ state
2. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ response type/response mode Π΄Π»Ρ authorization request
3. ΠΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ ΡΠ΅Π³ΠΈΡΡΡΠ° Π΄Π»Ρ redirect URI
4. Π Π°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΡΡΠΈ (path) Π΄Π»Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΡ redirect URI
5. ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ query-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² ΠΊ Π·Π½Π°ΡΠ΅Π½ΠΈΡ redirect URI
6. ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΡ
, Π½ΠΎ "Π·Π°Π±ΡΡΡΡ
" redirect URI
ΠΡΡΠ°ΡΠΈ, ΠΎΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ ΠΏΠΎΠ»Π΅Π·Π½Π°Ρ Π΄Π΅ΡΠ°Π»Ρ Π΄Π»Ρ ΡΠ»ΡΡΠ°Π΅Π² Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ΠΌ redirect URI:
Please also note that using response_type=code this quirk is harder to exploit. In a proper OAuth-dance using code, in the last step to acquire the access token from the service provider, the redirect_uri must also be provided for validation to the service-provider. If the redirect_uri that was used in the dance is mismatching the value that the website sends to the provider, no access token will be issued. However, using any other response type, like token or id_token this last-step validation is not needed since the token was provided directly in the redirection.
Π Π°Π±Π·Π°ΡΠ΅ Π΄ΠΎΠΏΡΡΠ΅Π½Π° Π½Π΅Π±ΠΎΠ»ΡΡΠ°Ρ ΠΎΡΠΈΠ±ΠΊΠ°: ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ redirect_uri ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Ρ.Π½. identity provider (aka authorization server), Π° Π½Π΅ "service-provider", ΠΊΠ°ΠΊ ΡΠΊΠ°Π·Π°Π½ΠΎ, Π½ΠΎ ΡΡΡΡ Π² ΡΠ΅Π»ΠΎΠΌ ΠΎΡΡΠ°ΠΆΠ΅Π½Π° Π²Π΅ΡΠ½ΠΎ. ΠΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΡΡΠΎ ΠΎΡΠΌΠ΅ΡΠΈΡΡ, ΠΏΠΎΡΠΎΠΌΡ ΡΡΠΎ Π² OAuth 2.1 ΡΡΠΎΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ ΠΊΠ°ΠΊ ΡΠ°Π· ΠΈΡΠΊΠ»ΡΡΠ΅Π½ ΠΈΠ· token request Ρ Π»ΡΠ±ΠΎΠΏΡΡΠ½ΡΠΌ ΠΎΠ±ΠΎΡΠ½ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ.
ΠΠ°Π»Π΅Π΅ Π°Π²ΡΠΎΡ ΠΏΠΈΡΠ΅Ρ, ΡΡΠΎ ΡΠΎΠ±ΡΠ°Π» Π½Π°Π±ΠΎΡ ΡΠ°ΠΉΡΠΎΠ² Ρ ΡΠ°ΠΊΠΈΠΌΠΈ non-happy paths ΠΈ ΡΡΠ°Π» ΠΈΡ
ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΡ Π΄Π°Π»ΡΡΠ΅. ΠΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΡΡ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠ·Π°ΡΠΈΡ URL-leaking gadgets - ΡΠ°ΠΊ Π°Π²ΡΠΎΡ Π½Π°Π·ΡΠ²Π°Π΅Ρ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄Ρ ΡΡΠ΅ΡΠΊΠΈ URL c ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ authorization response.
1. postMessage-listeners, ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π΅ ΠΏΡΠΎΠ²Π΅ΡΡΡΡ origin ΠΈ ΠΌΠΎΠ³ΡΡ Π²Π΅ΡΠ½ΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ location.href Π½Π°Π·Π°Π΄ Π² parent.window
2. ΠΠ΅ΠΉΡ Reddit: XSS Π½Π° ΡΡΠΎΡΠΎΠ½Π½Π΅ΠΌ Π΄ΠΎΠΌΠ΅Π½Π΅, ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΡΡΠ°ΠΆΠ°Π΅Ρ URL Ρ authorization response Ρ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠ³ΠΎ Π΄ΠΎΠΌΠ΅Π½Π°
3. Third-party ΡΠΊΡΠΈΠΏΡΡ, ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΡΠΏΠΎΠ»Π½ΡΡΡΡΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ redirect URI ΠΈ ΠΌΠΎΠ³ΡΡ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ ΠΊΡΠ΄Π°-Π»ΠΈΠ±ΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ URL Ρ authorization response
Π’Π°ΠΊΠΆΠ΅ Π°Π²ΡΠΎΡ ΡΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ Π΅ΡΠ΅ ΠΎΠ΄ΠΈΠ½ ΡΠ΅ΠΎΡΠ΅ΡΠΈΡΠ΅ΡΠΊΠΈΠΉ Π³Π°Π΄ΠΆΠ΅Ρ, ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡ ΠΊΠΎΡΠΎΡΠΎΠ³ΠΎ ΠΎΠ½ Π½Π΅ Π²ΡΡΡΠ΅ΡΠΈΠ»: postMessage-listener, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΎΠΊΡΠΈΡΡΠ΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΡ ΡΠ²ΠΎΠ΅ΠΌΡ opener.
Π Π·Π°ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΈ Π°Π²ΡΠΎΡ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡ ΠΊ Π²ΡΠ²ΠΎΠ΄Ρ, ΡΡΠΎ Π΄Π»Ρ Π·Π°ΡΠΈΡΡ ΠΎΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ
Π°ΡΠ°ΠΊ, ΡΡΡΠ°Π½ΠΈΡΠ°, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ»ΡΡΠ°Π΅Ρ authorization response (redirect URI), Π½Π΅ Π΄ΠΎΠ»ΠΆΠ½Π° ΡΠΎΠ΄Π΅ΡΠΆΠ°ΡΡ third-party ΡΠ΅ΡΡΡΡΡ ΠΈΠ»ΠΈ ΡΡΡΠ»ΠΊΠΈ Π½Π° ΡΡΠΎΡΠΎΠ½Π½ΠΈΠ΅ ΡΠ°ΠΉΡΡ. Π’Π°ΠΊΠΆΠ΅ Π³ΠΎΠ²ΠΎΡΠΈΡΡΡ ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Π΅ Ρ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠΎΠ»ΡΠΊΠΎ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΡ
response types/response modes.
ΠΡΠΈ ΡΡΠΎΠΌ Π°Π²ΡΠΎΡ ΡΠΏΡΠ°Π²Π΅Π΄Π»ΠΈΠ²ΠΎ ΠΎΡΠΌΠ΅ΡΠ°Π΅Ρ, ΡΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ PKCE Π½Π΅ Π·Π°ΡΠΈΡΠ°Π΅Ρ ΠΎΡ ΡΠ°ΠΊΠΈΡ
Π°ΡΠ°ΠΊ.
____
Π ΠΈΡΠΎΠ³Π΅ Π΄Π»Ρ ΠΌΠ΅Π½Ρ Π½Π°ΠΈΠ±ΠΎΠ»Π΅Π΅ ΡΠ΅Π½Π½ΡΠΌ ΡΡΠ°Π»ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π΄Π»Ρ ΠΏΡΠ΅ΡΡΠ²Π°Π½ΠΈΡ OAuth flow: Ρ Π½Π΅ Π΄ΡΠΌΠ°Π» Π² ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠΌ ΠΊΠ»ΡΡΠ΅ ΠΏΡΠΎ ΡΠ°ΠΊΠΈΠ΅ ΡΠ°ΠΊΡΠΈΠΊΠΈ, Π° ΠΏΡΠΎ Π½Π΅ΠΊΠΎΡΠΎΡΡΠ΅ ΠΈΠ· Π½ΠΈΡ
ΠΈ Π½Π΅ Π·Π½Π°Π» ΡΠΎΠ²ΡΠ΅ΠΌ. Π’Π°ΠΊΠΆΠ΅ ΠΈΠΌΠΏΠΎΠ½ΠΈΡΡΠ΅Ρ ΠΈΡΠΎΠ³ΠΎΠ²ΡΠΉ ΠΏΠΎΡΡΠ» Π°Π²ΡΠΎΡΠ° ΠΏΡΠΎ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ third-party ΡΠΊΡΠΈΠΏΡΠΎΠ² Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°Ρ
redirect URI ΠΈ ΠΏΡΠΎ Π»ΠΈΠΌΠΈΡΡ Π² Π·Π°ΡΠΈΡΠ΅, ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅ΠΌΠΎΠΉ PKCE. | 375 |
| 15 | ecom.teΡh x keycloak community meetup
13 ΠΌΠ°ΡΡΠ° Π²ΡΡΡΡΠΏΠ°Ρ Π½Π° ΠΌΠΈΡΠ°ΠΏΠ΅ Ρ ΡΠ΅Π±ΡΡ ΠΈΠ· ecom.tech, ΠΎΡΠ³Π°Π½ΠΈΠ·ΠΎΠ²Π°Π½Π½ΠΎΠ³ΠΎ ΡΠΎΠ²ΠΌΠ΅ΡΡΠ½ΠΎ Ρ ΡΡΡΡΠΊΠΎΡΠ·ΡΡΠ½ΡΠΌ keycloak-ΡΠΎΠΎΠ±ΡΠ΅ΡΡΠ²ΠΎΠΌ.
ΠΠΎΡ ΡΠ΅ΠΌΠ° ΠΈΠ΄Π΅Ρ Π² ΡΠ°ΠΌΠΎΠΌ Π½Π°ΡΠ°Π»Π΅ ΠΈ ΡΡΠ°ΡΡΡΠ΅Ρ ΡΡΠ°Π·Ρ Π² 18:00.
ΠΠΎΠ΄Π½ΠΈΠΌΠ΅ΠΌ Π²ΠΎΠΏΡΠΎΡ ΠΎ ΡΠΎΠΌ, Π½ΡΠΆΠ½ΠΎ Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ refresh-ΡΠΎΠΊΠ΅Π½Ρ Π² Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
, ΠΈ Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ, ΡΠΎ ΠΊΠ°ΠΊΠΈΠΌ ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°ΠΌΡ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠ°ΡΠΈΠΊΡ ΠΈ Π²ΡΠ΄Π΅Π»ΠΈΠΌ ΠΎΡΠ½ΠΎΠ²Π½ΡΡ Π·Π°Π΄Π°ΡΡ, ΠΊΠΎΡΠΎΡΡΡ ΠΊΠ°ΠΊ ΡΠ°Π· ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠ΅ΡΠΈΡΡ. ΠΠ±ΡΡΠ΄ΠΈΠΌ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Ρ Π·Π΄Π΅ΡΡ Π²ΠΎΠΎΠ±ΡΠ΅ ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΡ (ΡΠΏΠΎΠΉΠ»Π΅Ρ: Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ refresh-ΡΠΎΠΊΠ΅Π½ΠΎΠ²), ΠΈ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΠΏΡΠΎ ΡΠ°ΠΌΠΈ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΠΎΠΊΠ΅Π½Ρ: ΡΡΠΎ ΡΡΠΎ, Π·Π°ΡΠ΅ΠΌ Π·Π°Π΄ΡΠΌΡΠ²Π°Π»ΠΈΡΡ ΠΈ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ ΠΈΡ
ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ. Π ΡΠ°ΠΊΠΆΠ΅ ΡΡΠ°Π²Π½ΠΈΠΌ ΡΠ°ΡΡΠΌΠΎΡΡΠ΅Π½Π½ΡΠ΅ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Ρ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΎΠ½Π½ΠΎΠΉ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ.
ΠΠ²ΡΡΠΈΡ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΎΠ±ΡΠ΅ΠΌΠ½ΠΎ ΠΈ Π°ΠΌΠ±ΠΈΡΠΈΠΎΠ·Π½ΠΎ Π΄Π»Ρ ΠΎΡΠ²Π΅Π΄Π΅Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎΠ»ΡΡΠ°ΡΠ°, Π½ΠΎ ΠΏΠΎΡΡΠ°ΡΠ°Π΅ΠΌΡΡ ΠΎΡ
Π²Π°ΡΠΈΡΡ ΠΏΠΎ-ΠΌΠ°ΠΊΡΠΈΠΌΡΠΌΡ π
ΠΠΎΠ³Π΄Π°: 13 ΠΌΠ°ΡΡΠ°, 18:00β20:15 ΠΠ‘Π
Π€ΠΎΡΠΌΠ°Ρ: online
ΠΡΠ΅Π³ΠΎ Π±ΡΠ΄Π΅Ρ 3 ΡΠ΅ΠΌΡ:
π΅18:00-18:45 β ββΒ«Refresh token Π² Π²Π΅Π±-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
: Π±ΡΡΡ ΠΈΠ»ΠΈ Π½Π΅ Π±ΡΡΡ?Β» (ΠΊΠ°ΠΊ ΡΠ°Π· ΠΌΠΎΡ Π²ΡΡΡΡΠΏΠ»Π΅Π½ΠΈΠ΅)
π΅18:45-19:30 β Β«Π’Π΅ΡΠ½ΠΈΡΡΡΠΉ ΠΏΡΡΡ OAuth: ΠΎΡ 2.0 ΠΊ 2.1Β», ΠΡΠΈΠ½Π° ΠΠ»Π°ΠΆΠΈΠ½Π°, Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΠΎΡ ΠΠ Π² ΠΠΏΠ΅ΡΠ°ΡΠΎΡ ΠΠ°Π·ΠΏΡΠΎΠΌ ΠΠ, co-owner Solutions of Security. CΠΏΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ΅ Π΄Π»Ρ ΠΠ Π½Π° Π±Π°Π·Π΅ ΡΠ΅ΡΠ΅Π½ΠΈΠΉ FW, Proxy, NGFW, IDM, IAM, API-Gateway, IDS/IPS ΠΈ Π΄Ρ.
π΅19:30-20:15 β Β«ΠΠ΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΡ ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΡΠΎΠ²: ΠΊΠ°ΠΊ Π·Π°ΡΠΈΡΠΈΡΡΡΡ ΠΎΡ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΠ΅ΠΉ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈΒ», ΠΠ»Π΅ΠΊΡΠ΅ΠΉ ΠΠΎΡΠΎΠ·ΠΎΠ², ΡΡΠΊΠΎΠ²ΠΎΠ΄ΠΈΡΠ΅Π»Ρ AppSec Π² ecom.teΡh
Π’Π°ΠΊ ΡΡΠΎ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡΠ΅, Π½Π°Π΄Π΅ΡΡΡ, Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ.
ΠΠ΅ΡΠΏΠ»Π°ΡΠ½ΠΎ ΠΈ Π±Π΅Π· ΡΠΌΡ, Π½ΠΎ ΠΏΡΠ΅Π΄Π²Π°ΡΠΈΡΠ΅Π»ΡΠ½Π°Ρ ΡΠ΅Π³ΠΈΡΡΡΠ°ΡΠΈΡ Π²ΡΠ΅ ΠΆΠ΅ Π½ΡΠΆΠ½Π°. | 519 |
| 16 | ΠΡΠΎ Ρ
ΠΎΡΠ΅Π» ΡΠ·Π½Π°ΡΡ, ΠΊΠ°ΠΊ ΡΡΡΡΠΎΠ΅Π½Π° Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π½Π° ΠΏΠΎΡΡΠ°Π»Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° Spotify πββοΈ?
Π Π°Π½Π΅Π΅ ΡΠΆΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°Π»ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ web message response mode, Π° developer.spotify.com ΠΊΠ°ΠΊ ΡΠ°Π· ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΡΠ°ΠΊΠΎΠ²ΠΎΠΉ. ΠΠΎΡΡΠΎΠΌΡ ΡΠ΅Π³ΠΎΠ΄Π½Ρ Π² ΡΡΠ±ΡΠΈΠΊΠ΅ "Π° ΠΊΠ°ΠΊ Ρ Π½ΠΈΡ
" ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΠ³ΠΎ response mode Π½Π° ΡΠ΅Π°Π»ΡΠ½ΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅: https://telegra.ph/Autentifikaciya-na-developerspotifycom-01-22
Π Π²ΠΎΠΎΠ±ΡΠ΅ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π±ΡΠ²Π°Π΅Ρ ΠΎΠ±ΡΠ°ΡΠ°ΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π² ΡΠ°Π·Π½ΡΡ
ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡ
, ΠΏΡΡΡΡ ΠΈ Ρ black box ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΠΎΠΌ: ΠΌΠΎΠΆΠ½ΠΎ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π±ΠΎΠ»ΡΡΠ΅ ΠΏΠΎΠ½ΠΈΠΌΠ°Π½ΠΈΡ, ΡΡΠΎ ΠΏΡΠΎΠΈΡΡ
ΠΎΠ΄ΠΈΡ Π²ΠΎΠΊΡΡΠ³, ΠΊΠ°ΠΊΠΈΠ΅ ΠΏΡΠ°ΠΊΡΠΈΠΊΠΈ ΠΈ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄Ρ ΠΏΡΠΈΠΌΠ΅Π½ΡΡΡΡΡ, ΠΏΠΎΠ΄ΠΌΠ΅ΡΠ°Ρ ΠΊΠ°ΠΊ ΠΏΠ»ΡΡΡ, ΡΠ°ΠΊ ΠΈ ΠΌΠΈΠ½ΡΡΡ. | 422 |
| 17 | Web message response mode, ΠΈ receiver origin vs redirect URI
ΠΡΠ°ΠΊ, ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΉ ΠΏΠΎΡΡ ΠΌΡ Π·Π°ΠΊΠΎΠ½ΡΠΈΠ»ΠΈ Π½Π° ΠΌΡΡΠ»ΠΈ ΠΏΡΠΎ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ redirect URI ΠΈ receiver origin.
ΠΠ΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, Π² ΡΠ»ΡΡΠ°Π΅ web message response mode Π΄ΠΎΡΡΡΠΏΠ½ΠΎΡΡΡ authorization response ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅ΡΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ
origin. Π’Π°ΠΊ ΠΏΡΠΈ Π½Π°Π»ΠΈΡΠΈΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ Π²ΡΠ΅Π΄ΠΎΠ½ΠΎΡΠ½ΠΎΠ³ΠΎ JS Π½Π° Π»ΡΠ±ΠΎΠΉ ΠΈΠ· ΡΡΡΠ°Π½ΠΈΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ ΡΠ΅ΠΌ ΠΆΠ΅ origin Π°ΡΠ°ΠΊΡΡΡΠΈΠΉ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅ΠΌΡΠ΅ authorization server Π² postMessage-ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ authorization response.
ΠΠ΄Π½Π°ΠΊΠΎ Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ Π²Π΅ΡΠ½ΠΎ ΡΡΠ²Π΅ΡΠΆΠ΄Π΅Π½ΠΈΠ΅ ΠΎ ΡΠΎΠΌ, ΡΡΠΎ ΠΏΡΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ redirect-based flows Π°ΡΠ°ΠΊΡΡΡΠΈΠΉ ΡΠΌΠΎΠΆΠ΅Ρ "Π΄ΠΎΡΡΠ½ΡΡΡΡΡ" Π΄ΠΎ authorization response ΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΠΈ Π²Π½Π΅Π΄ΡΠ΅Π½ΠΈΠΈ ΠΊΠΎΠ΄Π° Π² ΡΠ°ΠΌΡ ΡΡΡΠ°Π½ΠΈΡΡ redirect URI?
ΠΡΠ΅ ΠΌΡ Π·Π½Π°Π΅ΠΌ, ΡΡΠΎ Π²ΡΠ΄Π΅Π»Π΅Π½Π½Π°Ρ ΡΡΡΠ°Π½ΠΈΡΠ° redirect URI Π΄Π°ΡΠΎΠ²Π°Π½Π° Π½Π°ΠΌ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π΄Π΅ΡΠΆΠ°ΡΡ Π΅Π΅ Π½Π°ΡΡΠΎΠ»ΡΠΊΠΎ ΠΏΡΡΡΠΎΠΉ, Π½Π°ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ (Π΄Π°ΠΆΠ΅ Π°Π½Π°Π»ΠΈΡΠΈΠΊΠ° ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ ΠΏΠΎΠ΄ Π²ΠΎΠΏΡΠΎΡΠΎΠΌ). ΠΡΠΎ Ρ
ΠΎΡΠΎΡΠΎ ΠΈ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ. ΠΠΎ Π΄ΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π»ΠΈ ΡΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΊΠ°Π·Π°ΡΡ, ΡΡΠΎ authorization response ΡΠ΅ΠΏΠ΅ΡΡ Π½Π΅Π΄ΠΎΡΡΡΠΏΠ΅Π½ Π°ΡΠ°ΠΊΡΡΡΠ΅ΠΌΡ, "ΠΏΠΎΡΠ΅Π»ΠΈΠ²ΡΠ΅ΠΌΡΡΡ" Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ? Π£Π²Ρ, Π½Π΅Ρ.
ΠΠ° ΡΠ°ΠΌΠΎΠΌ Π΄Π΅Π»Π΅, ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Ρ Π² ΡΠ°ΠΌΠΊΠ°Ρ
ΡΠΎΠ³ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ³ΠΎ origin, Π° Π½Π΅ ΠΊΠ°ΠΊΠΎΠ³ΠΎ-ΡΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΡΠΈ.
ΠΡΠ½ΠΎΠ²Π½Π°Ρ ΡΡΡΡ Π² ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ
Π°ΡΠ°ΠΊΠ°Ρ
Π·Π°ΠΊΠ»ΡΡΠ°Π΅ΡΡΡ Π² Π²ΡΠ·ΠΎΠ²Π΅ ΡΠ΅ΠΌ ΠΈΠ»ΠΈ ΠΈΠ½ΡΠΌ ΡΠΏΠΎΡΠΎΠ±ΠΎΠΌ authorization request Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Ρ ΠΏΠΎΡΠ»Π΅Π΄ΡΡΡΠΈΠΌ Π΄ΠΎΡΡΡΠΏΠΎΠΌ ΠΊ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌ authorization response. ΠΠ΅ΠΉΡΡΠ²ΡΡ Π² ΡΠ°ΠΌΠΊΠ°Ρ
ΠΎΠ΄Π½ΠΎΠ³ΠΎ origin, Π°ΡΠ°ΠΊΡΡΡΠΈΠΉ ΠΈΠΌΠ΅Π΅Ρ ΠΈ Π΄ΡΡΠ³ΠΈΠ΅, ΠΏΠΎΠΌΠΈΠΌΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΊΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ° ΡΠΎΠ±ΡΡΠΈΠΉ Π½Π° ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠΎΠ±ΡΡΠΈΠΉ "message", ΡΠΏΠΎΡΠΎΠ±Ρ ΡΡΠΎ ΡΠ΄Π΅Π»Π°ΡΡ. ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ iframe ΠΈΠ»ΠΈ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ.
ΠΠ°ΠΊ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ
ΡΡΡΠ΅ΡΡΠ²ΡΠ΅Ρ Π·Π°ΡΠΈΡΠ½ΡΠΉ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌ Same-origin policy (SOP), ΠΊΠΎΡΠΎΡΡΠΉ ΠΎΠ³ΡΠ°Π½ΠΈΡΠΈΠ²Π°Π΅Ρ Π²Π·Π°ΠΈΠΌΠΎΠ΄Π΅ΠΉΡΡΠ²ΠΈΠ΅ ΡΡΡΠ°Π½ΠΈΡ, ΠΈΠΌΠ΅ΡΡΠΈΡ
ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ origins.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π΅ΡΠ»ΠΈ ΠΌΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π½Π°Ρ
ΠΎΠ΄ΡΡΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ΅ https://alice.com, ΠΎΡΠΊΡΠΎΠ΅ΠΌ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ Ρ origin https://bob.com, ΠΌΡ Π½Π΅ Π±ΡΠ΄Π΅ΠΌ ΠΈΠΌΠ΅ΡΡ Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΅Π³ΠΎ ΡΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠΌΡ, Π²ΠΊΠ»ΡΡΠ°Ρ ΠΎΠ±ΡΠ΅ΠΊΡ location. ΠΠ΄Π΅ΡΡ Π½Π° ΠΏΠΎΠΌΠΎΡΡ ΠΏΡΠΈΡ
ΠΎΠ΄ΠΈΡ Π»Π΅ΠΆΠ°ΡΠ°Ρ Π² ΠΎΡΠ½ΠΎΠ²Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΡ
OAuth flow redirect-based ΠΏΡΠΈΡΠΎΠ΄Π° callback.
ΠΡΠ»ΠΈ Π°ΡΠ°ΠΊΡΡΡΠΈΠΉ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΎΠ·Π΄Π°ΡΡ iframe ΠΈΠ»ΠΈ ΠΎΡΠΊΡΠΎΠ΅Ρ Π½ΠΎΠ²ΠΎΠ΅ ΠΎΠΊΠ½ΠΎ c Π°Π΄ΡΠ΅ΡΠΎΠΌ authorization request, ΠΏΠΎΡΠ»Π΅ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΡΠ΅Π΄ΠΈΡΠ΅ΠΊΡΠ° Π½Π° Π°Π΄ΡΠ΅Ρ redirect URI origin Ρ ΡΡΡΠ°Π½ΠΈΡΡ Π² ΠΎΠΊΠ½Π΅/ΡΡΠ΅ΠΉΠΌΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ Π½Π° ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡΠΈΠΉ Ρ origin ΡΡΡΠ°Π½ΠΈΡΡ ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠ³ΠΎ ΠΎΠΊΠ½Π°. ΠΡΠΎ ΠΈ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡ Π°ΡΠ°ΠΊΡΡΡΠ΅ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ Π΄ΠΎΡΡΡΠΏ ΠΊ ΠΎΠ±ΡΠ΅ΠΊΡΡ location Π΄Π»Ρ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΡ ΠΈΠ· Π½Π΅Π³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² authorization response, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΠ°ΠΊΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌΠΎ Π² ΡΠ°ΠΌΠΊΠ°Ρ
SOP.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΡΠ°Π·Π»ΠΈΡΠΈΠ΅ Π΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ Π΄Π»Ρ ΡΠ»ΡΡΠ°Ρ Ρ web message ΠΌΡ ΡΡΠΎ ΠΎΡΠΎΠ·Π½Π°Π΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΡΠ²Π½ΠΎ, Π° Π΄Π»Ρ redirect-based flows ΠΎΠ± ΡΡΠΎΠΌ ΠΊΠ°ΠΊ Π±ΡΠ΄ΡΠΎ Π²ΠΎΠΎΠ±ΡΠ΅ Π½Π΅ Π·Π°Π΄ΡΠΌΡΠ²Π°Π΅ΠΌΡΡ. Π ΡΡΡΡ Π² ΡΠ΅Π»ΠΎΠΌ ΠΎΠ΄Π½Π°: ΠΌΠΎΠ΄Π΅Π»Ρ Π±Π΅Π·ΠΎΠΏΠ°ΡΠ½ΠΎΡΡΠΈ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ
ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π΅ Π½Π° ΠΏΡΡΡΡ
(paths), Π° Π½Π° origins.
Π’Π΅ΠΌ Π½Π΅ ΠΌΠ΅Π½Π΅Π΅ Ρ Π²ΡΠ΅ ΡΠ°Π²Π½ΠΎ Π½Π°ΡΡΠΎΡΠΎΠΆΠ΅Π½Π½ΠΎ ΠΎΡΠ½ΠΎΡΡΡΡ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ postMessage. ΠΡΠΎ Π΄Π»Ρ ΠΌΠ΅Π½Ρ ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΊΠΎΡΠΎΡΠΎΠΉ Π°Π½Π°Π»ΠΎΠ³ΠΈΠ΅ΠΉ Π·Π°Π³ΡΡΠ·ΠΊΠΈ ΡΠ°ΠΉΠ»ΠΎΠ², Π½ΠΎ ΠΈΠ· ΠΌΠΈΡΠ° ΡΡΠΎΠ½ΡΠ΅Π½Π΄Π°: Π΅ΡΠ»ΠΈ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΎΠΉΡΠΈΡΡ Π±Π΅Π· ΡΡΠΎΠ³ΠΎ, ΡΠΎ Π»ΡΡΡΠ΅ ΡΠ°ΠΊ ΠΈ ΡΠ΄Π΅Π»Π°ΡΡ. ΠΠ½Π°ΡΠ΅ ΡΠ»ΠΈΡΠΊΠΎΠΌ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ΅ΡΡ, Π³Π΄Π΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΎΠ±ΠΆΠ΅ΡΡΡΡ. | 426 |
| 18 | ΠΡΠΎ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ response modes Π² OAuth
Π‘ΠΏΠ΅ΡΠΈΡΠΈΠΊΠ°ΡΠΈΡ OAuth 2.0 Multiple Response Type Encoding Practices (ΠΎΠ½Π° ΠΊΡΠΎΡ
ΠΎΡΠ½Π°Ρ, Π½Π΅ ΠΏΠΎΠ»Π΅Π½ΠΈΡΠ΅ΡΡ ΠΏΠΎΡΠΌΠΎΡΡΠ΅ΡΡ), ΠΊΡΠΎΠΌΠ΅ ΠΎΠΏΠΈΡΠ°Π½ΠΈΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΡ
response types, Π²Π²ΠΎΠ΄ΠΈΡ Π΅ΡΠ΅ ΠΈ ΠΏΠΎΠ½ΡΡΠΈΠ΅ Response Mode:
The Response Mode determines how the Authorization Server returns result parameters from the Authorization Endpoint. Non-default modes are specified using the response_mode request parameter. If response_mode is not present in a request, the default Response Mode mechanism specified by the Response Type is used.
Π‘Π°ΠΌ Π΄ΠΎΠΊΡΠΌΠ΅Π½Ρ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ ΡΠ΅Π³ΠΈΡΡΡΠΈΡΡΠ΅Ρ Π²ΡΠ΅Π³ΠΎ Π΄Π²Π° Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π΄Π»Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° response_mode:
- query;
- fragment.
ΠΠ΄Π½Π°ΠΊΠΎ ΡΡΡ ΠΆΠ΅ ΠΎΡΠΌΠ΅ΡΠ°Π΅ΡΡΡ, ΡΡΠΎ
See OAuth 2.0 Form Post Response Mode [OAuth.Post] for an example of a specification that defines an additional Response Mode. Note that it is expected that additional Response Modes may be defined by other specifications in the future, including possibly ones utilizing the HTML5 postMessage API and Cross Origin Resource Sharing (CORS).
Π Π΄Π΅ΠΉΡΡΠ²ΠΈΡΠ΅Π»ΡΠ½ΠΎ, Π² Π΄ΠΎΠΏΠΎΠ»Π½Π΅Π½ΠΈΠ΅ ΠΊ Π²ΡΡΠ΅ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½Π½ΡΠΌ, ΠΌΡ ΡΠ°ΡΡΠΎ Π²ΡΡΡΠ΅ΡΠ°Π΅ΠΌ ΠΈ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅:
- form_post;
- web_message.
Form post response mode ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΠΎΡΠ²Π΅Ρ Π² Π²ΠΈΠ΄Π΅ HTML-ΡΡΡΠ°Π½ΠΈΡΡ Ρ ΡΠΎΡΠΌΠΎΠΉ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈ Π·Π°Π³ΡΡΠ·ΠΊΠ΅ ΡΡΡΠ°Π½ΠΈΡΡ ΡΠ΅ΡΠ΅Π· User Agent Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ authorization response Π½Π° Π°Π΄ΡΠ΅Ρ redirect URI (<form method="post" action="https://site.com/callback">). Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π΄Π°Π½Π½ΡΠ΅ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡΡΡ ΡΠ΅ΡΠ΅Π· POST-Π·Π°ΠΏΡΠΎΡ ΠΊ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ΅Π½Π½ΠΎΠΌΡ ΡΠ½Π΄ΠΏΠΎΠΈΠ½ΡΡ. ΠΠΎΠ΄Ρ
ΠΎΠ΄ Π΄Π°Π»Π΅ΠΊΠΎ Π½Π΅ Π½ΠΎΠ²ΡΠΉ: Π°Π½Π°Π»ΠΎΠ³ΠΈΡΠ½ΠΎΠ΅ ΠΌΡ ΠΌΠΎΠ³Π»ΠΈ Π½Π°Π±Π»ΡΠ΄Π°ΡΡ Π΅ΡΠ΅ ΡΠΎ Π²ΡΠ΅ΠΌΠ΅Π½ SAML POST Binding.
Web message response mode ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°Π΅Ρ ΠΎΡΠΏΡΠ°Π²ΠΊΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² authorization response ΡΠ΅ΡΠ΅Π· postMessage API. ΠΠ΄Π΅ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ ΠΎΡΠΊΡΡΡΠΈΠ΅ Π² Π½ΠΎΠ²ΠΎΠΌ ΠΎΠΊΠ½Π΅ (popup) ΠΈΠ»ΠΈ ΠΆΠ΅ Π²Π½ΡΡΡΠΈ iframe URL Ρ Π°Π΄ΡΠ΅ΡΠΎΠΌ authorization request. Π ΠΎΡΠ²Π΅Ρ authorization server ΡΠ°ΠΊ ΠΆΠ΅ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅Ρ HTML-ΡΡΡΠ°Π½ΠΈΡΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΡΠ΅Π΄ΡΡΠ²Π°ΠΌΠΈ JS ΠΎΡΠΏΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ authorization response ΡΠΎΠ΄ΠΈΡΠ΅Π»ΡΡΠΊΠΎΠΌΡ ΠΎΠΊΠ½Ρ.
ΠΠΎΠΎΠ±ΡΠ΅ Π΄Π°Π½Π½ΡΠΉ response mode Π½Π΅ ΡΠΎ ΡΡΠΎΠ±Ρ Π±ΡΠ» ΠΎΡΠΎΠ±ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΡΠΎ Π½Π΅ ΠΌΠ΅ΡΠ°Π΅Ρ Π΅ΠΌΡ Π½Π°Ρ
ΠΎΠ΄ΠΈΡΡ ΠΏΡΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π² ΡΠ΅Π°Π»ΡΠ½ΡΡ
ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ
.
ΠΡΠΎ Π½Π΅ ΠΎΡΠΎΠ±ΠΎ ΡΠΏΠ΅ΡΠΈΡΠΈΡΠΈΡΠΎΠ²Π°Π½: ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΡΠΎΠ»ΡΠΊΠΎ Π΄Π²Π° ΡΠΆΠ΅ ΠΏΡΠΎΡΡΡ
ΡΠΈΡ
Π΄ΡΠ°ΡΡΠ°, ΠΎΡΠΊΡΠΎΠ²Π΅Π½Π½ΠΎ Π³ΠΎΠ²ΠΎΡΡ, Π² Π·Π°ΡΠ°ΡΠΎΡΠ½ΠΎΠΌ ΡΠΎΡΡΠΎΡΠ½ΠΈΠΈ:
π΅OAuth 2.0 Web Message Response Mode
ΠΠ΄Π΅ΡΡ ΠΌΠΎΠ³Ρ Π²ΡΠ΄Π΅Π»ΠΈΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ ΡΡΡΠ°Π½Π½ΡΡ ΡΡ
Π΅ΠΌΡ "Relay Mode". ΠΠ°Π·ΠΎΠ²ΠΎ ΡΡΠΎΠΈΡ ΠΏΠΎΠ»Π°Π³Π°ΡΡ, ΡΡΠΎ ΠΊΠ°ΠΊ ΠΌΠΈΠ½ΠΈΠΌΡΠΌ
Unauthenticated Window Π±ΡΠ΄Π΅Ρ ΠΈΠΌΠ΅ΡΡ Π΄ΡΡΠ³ΠΎΠΉ origin, ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ ΡΡΠΎ ΡΡΡΠ°Π½ΠΈΡΠ°, ΠΏΡΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°ΡΠ°Ρ authorization server. Π‘ ΡΠ°ΠΊΠΈΠΌ Π΄ΠΎΠΏΡΡΠ΅Π½ΠΈΠ΅ΠΌ ΠΏΠΎΠΏΡΠΎΠ±ΠΎΠ²Π°Π» ΡΠ΄Π΅Π»Π°ΡΡ PoC, ΡΡΠΎΠ±Ρ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ, ΠΎΠ΄Π½Π°ΠΊΠΎ ΡΠ°Π³ 7
Unauthenticated window obtains the window object of the Message Target Window via the MessageEvent object in the Relay Response and send Authorization Response as a Web Message.
Π²ΡΠ³Π»ΡΠ΄ΠΈΡ Π½Π΅ΡΠ΅Π°Π»ΠΈΠ·ΡΠ΅ΠΌΡΠΌ Π² ΡΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ
Π±ΡΠ°ΡΠ·Π΅ΡΠ°Ρ
ΠΈΠ·-Π·Π° Same-Origin Policy, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·-Π·Π° Π½Π΅Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°ΡΡ Π² ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΈ ΡΡΡΠ»ΠΊΡ Π½Π° ΠΎΠ±ΡΠ΅ΠΊΡ window Π±Π΅Π· ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΠΈ, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ. Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π½Π΅ Π²ΠΈΠΆΡ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°ΡΡ ΠΎΡΠΏΡΠ°Π²ΠΊΡ ΡΠΎΠΎΠ±ΡΠ΅Π½ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρ Π΄Π²ΡΠΌΡ ΠΏΠΎΠ΄ΠΎΠ±Π½ΡΠΌΠΈ ΡΡΠ΅ΠΉΠΌΠ°ΠΌΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ Π΄ΠΎΠΏΡΡΠΊΠ°Ρ ΠΈ ΡΡΠΎ ΠΌΠΎΠΈΡ
Π·Π½Π°Π½ΠΈΠΉ JS Π½Π΅ Ρ
Π²Π°ΡΠΈΠ»ΠΎ, ΡΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΡΡ
Π΅ΠΌΡ.
π΅OAuth 2.0 Web Message Response Mode for Popup- and Iframe-based Authorization Flows
Π‘ΠΎΠ°Π²ΡΠΎΡ Π΄ΡΠ°ΡΡΠ°, ΠΊΡΡΠ°ΡΠΈ, ΡΠ²Π»ΡΠ΅ΡΡΡ Π°Π²ΡΠΎΡΠΎΠΌ ΠΏΠΎΠ½ΡΠ°Π²ΠΈΠ²ΡΠ΅ΠΉΡΡ ΠΌΠ½Π΅ ΠΌΠ°Π³ΠΈΡΡΠ΅ΡΡΠΊΠΎΠΉ Π΄ΠΈΡΡΠ΅ΡΡΠ°ΡΠΈΠΈ, ΠΏΡΠΎ ΠΊΠΎΡΠΎΡΡΡ ΡΠΆΠ΅ ΠΏΠΈΡΠ°Π». ΠΡΠ΄Π΅Π»ΠΈΡΡ ΠΌΠΎΠ³Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ ΡΠΈΡΠ°ΡΡ Π² Security Considerations:
In flows using the web message response mode, the confidentiality of the authorization response is scoped to the postMessage's receiver origin that does not contain a path. Thus, cross-site scripting (XSS) vulnerabilities on any path within the web application's origin will leak the authorization response to the attacker.
ΠΡΠΎ ΡΡΠΎ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ ΡΡΡΡ ΠΏΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ Π² Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΡ
ΠΏΠΎΡΡΠ°Ρ
.
ΠΠ°Π²Π½ΠΎ ΠΏΡΠΎΠ²Π΅ΡΡΠ»ΠΈ, ΠΊΠ°ΠΊΠΈΠ΅ response modes ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°Π΅Ρ Π²Π°Ρ authorization server? ΠΠ°Π³Π»ΡΠ½ΠΈΡΠ΅, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Π² /.well-known/openid-configuration, ΠΎΠ±ΡΡΠ½ΠΎ ΡΡΠΎ ΠΎΡΡΠ°ΠΆΠ°Π΅ΡΡΡ ΠΈ ΡΠ°ΠΌ. | 367 |
| 19 | Top 10 web hacking techniques of 2024 ΠΎΡ PortSwigger (ΡΠ°ΡΡΡ 2)
ΠΠ΅ ΠΌΠ΅Π½Π΅Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΠΎΠ±ΡΠ°ΡΠΈΡΡΡΡ ΠΊ ΠΏΠΎΠ»Π½ΠΎΠΌΡ ΡΠΏΠΈΡΠΊΡ Π½ΠΎΠΌΠΈΠ½Π°Π½ΡΠΎΠ² ΠΈ ΡΠΊΠ°Π·Π°ΡΡ ΡΡΠ°ΡΡΠΈ, Π½Π΅ Π²ΠΎΡΠ΅Π΄ΡΠΈΠ΅ Π² ΡΠΎΠΏ.
4οΈβ£ POST to XSS: Leveraging Pseudo Protocols to Gain JavaScript Evaluation in SSO Flows
ΠΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΏΡΠΎ ΡΠΎ, ΠΊΠ°ΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΡΠΊΠ°Π·Π°Π½ΠΈΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π·Π½Π°ΡΠ΅Π½ΠΈΡ redirect URI URI-ΡΡ
Π΅ΠΌ (ΠΈΠ»ΠΈ ΠΆΠ΅ ΠΏΡΠ΅Π²Π΄ΠΎΠΏΡΠΎΡΠΎΠΊΠΎΠ»ΠΎΠ²) Π°-Π»Ρ javascript: Π² ΡΠΎΡΠ΅ΡΠ°Π½ΠΈΠΈ Ρ form post response mode ΠΌΠΎΠΆΠ΅Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΡΡ ΠΏΠΎΠ»ΡΡΠΈΡΡ XSS ΡΠΆΠ΅ Π½Π° ΡΡΠΎΡΠΎΠ½Π΅ ΡΠ°ΠΌΠΎΠ³ΠΎ authorization server (ΡΡΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΎΡΠΊΡΡΠ²Π°Π΅Ρ ΡΠΈΡΠΎΠΊΠΈΠ΅ Π³ΠΎΡΠΈΠ·ΠΎΠ½ΡΡ ΠΏΠ΅ΡΠ΅Π΄ Π°ΡΠ°ΠΊΡΡΡΠΈΠΌ).
5οΈβ£ Zoom Session Takeover - Cookie Tossing Payloads, OAuth Dirty Dancing, Browser Permissions Hijacking, and WAF abuse
Last but not least, ΠΌΠ½Π΅ ΠΊΠ°ΠΆΠ΅ΡΡΡ, ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» Π½Π΅Π·Π°ΡΠ»ΡΠΆΠ΅Π½Π½ΠΎ ΠΎΠ±Π΄Π΅Π»ΠΈΠ»ΠΈ. ΠΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½, ΠΊΡΡΠ°ΡΠΈ, Π² ΡΠΎΠΌ ΠΆΠ΅ Π±Π»ΠΎΠ³Π΅, ΡΡΠΎ ΠΈ ΡΠΏΠΎΠΌΡΠ½ΡΡΠ°Ρ ΡΡΠ°ΡΡΡ ΠΏΡΠΎ Web Cache Deception Π² chat.openai[.]com.
βοΈΠΠ²ΡΠΎΡΡ Π½Π°ΡΠ»ΠΈ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ cookie-based XSS ΡΠ΅ΡΠ΅Π· ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ (reflection) Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΊΡΠΊΠΈ Ρ CSP nonce, ΠΏΡΠΈΡΡΠΌ ΠΏΠΎ ΠΈΡ
ΡΠ»ΠΎΠ²Π°ΠΌ ΠΎΡΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π±ΡΠ»ΠΎ Π½Π° Π²ΡΠ΅Ρ
ΡΡΡΠ°Π½ΠΈΡΠ°Ρ
Π²ΡΠ΅Ρ
ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² zoom.us. ΠΠ΄Π½Π°ΠΊΠΎ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ ΡΠ°ΠΊΠΎΠΉ XSS Π² ΡΠΎΠΌ, ΡΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΅ΡΡ Π½Π°ΠΉΡΠΈ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ΡΡΠΈΠΉ Π½Π°ΡΠ°Π»ΡΠ½ΡΠΉ Π²Π΅ΠΊΡΠΎΡ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, cache poisoning, ΠΊΠΎΡΠΎΡΠΎΠ΅ ΠΎΠ΄Π½Π°ΠΊΠΎ Π±ΡΠ»ΠΎ Π½Π΅ΠΏΡΠΈΠΌΠ΅Π½ΠΈΠΌΠΎ Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅.
βοΈΠΠ΄Π΅ΡΡ Π°Π²ΡΠΎΡΡ ΠΏΡΠΈΡΠ»ΠΈ ΠΊ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ cookie tossing, ΡΡΠΎΠ±Ρ "ΠΏΡΠΎΠ±ΡΠΎΡΠΈΡΡ" ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΡ Π½Π° ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½Π΅ ΠΊΡΠΊΡ Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΉ Π΄ΠΎΠΌΠ΅Π½, ΡΡΠΎ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ»ΠΎ ΠΈΠΌ Π½Π°Π»ΠΈΡΠΈΠ΅ XSS Π½Π° Π½Π΅ΠΌ.
ΠΠΎΠ»ΡΡΠΈΠ΅ ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π²ΡΠΎΠ΄Π΅ Zoom ΠΎΠ±ΡΡΠ½ΠΎ ΠΈΠΌΠ΅ΡΡ ΠΌΠ½ΠΎΠΆΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½ΠΎΠ², Π°ΡΠ΄ΠΈΡ ΠΊΠΎΡΠΎΡΡΡ
Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΠΌΠΎΠΆΠ΅Ρ ΡΡΠ°ΡΠ΅Π»ΡΠ½ΠΎ Π²Π΅ΡΡΠΈΡΡ. ΠΠ½ΠΎΠ³ΠΈΠ΅ ΠΈΠ· ΡΠ°ΠΊΠΈΡ
ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² ΠΎΠ±ΡΡΠ½ΠΎ ΡΠ°ΠΌΠΈ ΠΏΠΎ ΡΠ΅Π±Π΅ Π½Π΅ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ ΡΠ΅Π½Π½ΠΎΡΡΠΈ, ΠΈ XSS Π½Π° Π½ΠΈΡ
ΠΌΠΎΠ³ΡΡ ΠΏΠΎΠΊΠ°Π·Π°ΡΡΡΡ Π½Π΅ ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΠΌΠΈ. ΠΠ΄Π½Π°ΠΊΠΎ, ΡΡΠΎ Π½Π΅ Π²ΡΠ΅Π³Π΄Π° ΡΠ°ΠΊ. Π ΡΡΠ°ΡΡΠ΅ Π°Π²ΡΠΎΡΡ Π½Π°ΡΠ»ΠΈ POST-based XSS Π½Π° ΠΎΠ΄Π½ΠΎΠΌ ΠΈΠ· ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½ΠΎΠ², ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π΅Π΅ Π΄Π»Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ XSS ΡΠΆΠ΅ Π½Π° Π΄ΠΎΠΌΠ΅Π½Π΅ ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ.
βοΈΠΠ°Π»Π΅Π΅, ΡΠΆΠ΅ ΠΈΠΌΠ΅Ρ ΡΠ°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ JS Π½Π° ΠΎΡΠ½ΠΎΠ²Π½ΠΎΠΌ Π΄ΠΎΠΌΠ΅Π½Π΅, Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΡΡΡ ΠΊΡΠ°ΠΆΠ° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ² authorization response ΡΠΎ ΡΡΡΠ°Π½ΠΈΡΡ redirect URI ΠΈ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ session ID Π½Π° ΠΈΡ
ΠΎΡΠ½ΠΎΠ²Π΅.
βοΈΠΡΠ΄Π΅Π»ΡΠ½ΠΎ Ρ
ΠΎΡΡ ΠΎΡΠΌΠ΅ΡΠΈΡΡ ΠΎΡΠ΅Π½Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΡ ΡΠ°ΡΡΡ ΠΏΡΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΎΠ³ΠΎ ΡΠ°ΠΊΡΠ°, ΡΡΠΎ Zoom Π΅ΡΡΡ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π΄Π»Ρ Π°ΡΠ΄ΠΈΠΎ- ΠΈ Π²ΠΈΠ΄Π΅ΠΎ-Π²ΡΡΡΠ΅Ρ, Π° ΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π²ΡΠΈΡ
Π²Π΅Π±-Π²Π΅ΡΡΠΈΡ zoom, ΡΠΆΠ΅ Π±ΡΠ΄ΡΡ Π²ΡΠ΄Π°Π½Ρ Π² Π±ΡΠ°ΡΠ·Π΅ΡΠ΅ ΡΠ°Π·ΡΠ΅ΡΠ΅Π½ΠΈΡ Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠ°ΠΌΠ΅ΡΡ ΠΈ ΠΌΠΈΠΊΡΠΎΡΠΎΠ½Π°. Cookie-based Π½Π°ΡΡΡΠ° Ρ XSS Π² Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΎΠ±Π΅ΡΠΏΠ΅ΡΠΈΠ»Π° Π°Π²ΡΠΎΡΠΎΠΌ ΠΏΠΎΡΡΠΎΡΠ½ΡΡΠ²ΠΎ (persistence) Π² Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ Π²Π½Π΅Π΄ΡΠ΅Π½Π½ΠΎΠ³ΠΎ JS, ΡΡΠΎ ΠΎΠ½ΠΈ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π΄Π»Ρ Π΄Π΅ΠΌΠΎΠ½ΡΡΡΠ°ΡΠΈΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π°Ρ
Π²Π°ΡΠ° Π°ΡΠ΄ΠΈΠΎ- ΠΈ Π²ΠΈΠ΄Π΅ΠΎ-ΠΏΠΎΡΠΎΠΊΠ° Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²Π΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΎΡΠΏΡΠ°Π²ΠΊΠΈ Π΅Π³ΠΎ Π½Π° ΡΠ΅ΡΠ²Π΅Ρ Π°ΡΠ°ΠΊΡΡΡΠ΅Π³ΠΎ.
βοΈΠ’Π°ΠΊΠΆΠ΅ ΠΏΡΠΎΠ΄Π΅ΠΌΠΎΠ½ΡΡΡΠΈΡΠΎΠ²Π°Π½Π° Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ β ΠΎΠΏΡΡΡ ΠΆΠ΅, Π·Π° ΡΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΠΊΡΠΊ β ΠΎΠ±Π΅ΡΠ½ΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ WAF ΠΏΡΠΎΡΠΈΠ² ΡΠ°ΠΌΠΈΡ
Zoom: ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΊΡΠΊΡ Ρ ΠΏΠ΅ΠΉΠ»ΠΎΠ°Π΄ΠΎΠΌ, Π½Π° ΠΊΠΎΡΠΎΡΡΠΉ ΡΠ΅Π°Π³ΠΈΡΡΠ΅Ρ WAF, ΡΡΠΎ ΠΏΠΎ ΡΠ°ΠΊΡΡ "Π·Π°Π±Π°Π½ΠΈΡ" Π΄ΠΎΡΡΡΠΏ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΊΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ°ΠΉΡΡ ΠΈΠ»ΠΈ β ΡΡΠΎ ΠΊΡΡΡΠ΅ Π²ΡΠ΅Π³ΠΎ β ΠΊ Π²ΡΠ±ΠΎΡΠΎΡΠ½ΡΠΌ ΡΡΡΠ°Π½ΠΈΡΠ°ΠΌ Π·Π° ΡΡΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠ° path Ρ ΠΊΡΠΊΠΈ. ΠΠΎΡ ΡΡΠΎ ΠΏΡΠ°Π²Π΄Π° Π²Π°Ρ, ΠΊΠ°ΠΊ ΠΏΠΎ ΠΌΠ½Π΅, ΡΠΈΡΠ°ΡΡ Π±ΡΠ»ΠΎ ΠΎΡΠ΅Π½Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎ.
ΠΠ»ΡΠ΄Ρ Π½Π° Π²ΡΠ΅ ΡΡΠΎ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π°Π½ΡΡΡΡΡ Π»ΡΠ±ΠΈΠΌΡΠΌ Π΄Π΅Π»ΠΎΠΌ: ΠΏΠΎΠΏΡΡΠΊΠΎΠΉ ΡΠ΄Π΅Π»Π°ΡΡ Π²ΡΠ²ΠΎΠ΄Ρ Π½Π° ΠΎΡΠ½ΠΎΠ²Π΅ Π½Π΅ΡΠ΅ΠΏΡΠ΅Π·Π΅Π½ΡΠ°ΡΠΈΠ²Π½ΡΡ
ΠΏΡΠ΅Π΄Π²Π·ΡΡΡΡ
ΠΏΠΎΠ΄Π±ΠΎΡΠΎΠΊ!
Π§ΡΠΎ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΌΠΎΠ³Ρ ΠΎΡΠΌΠ΅ΡΠΈΡΡ:
- ΠΡΠ΅ Π΅ΡΠ΅ Π²ΠΈΠ΄ΠΈΠΌ Π½Π΅ΠΏΠ»ΠΎΡ
ΠΈΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ ΠΏΠΎ Π°ΡΠ°ΠΊΠ°ΠΌ Π² ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ΅ OAuth ΠΈ Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ, Π·Π½Π°ΡΠΈΡ ΠΈ ΡΠ°Π±ΠΎΡΠ° Π½Π°Π΄ ΠΌΠ΅ΡΠ°ΠΌΠΈ Π·Π°ΡΠΈΡΡ Π½Π΅ ΠΏΠ΅ΡΠ΅ΡΡΠ°Π΅Ρ Π±ΡΡΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠΉ
- ΠΠ΅ΠΌΠ°Π»ΠΎ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΠΎΠ² ΡΠ°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅ ΡΠΏΠΎΠΌΠΈΠ½Π°ΡΡ "OAuth Dirty Dancing", ΡΡΠΎ ΠΎΡΡΡΠ»Π°Π΅ΡΡΡ ΠΊ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎΠΉ ΡΡΠ°ΡΡΠ΅ ΠΎΡ Frans RosΓ©n (ΠΏΡΠΎ ΠΊΠΎΡΠΎΡΡΡ, ΠΊΡΡΠ°ΡΠΈ, ΡΠΊΠΎΡΠΎ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΠΌ Π½Π° ΠΊΠ°Π½Π°Π»Π΅)
- XSS ΠΏΠΎ-ΠΏΡΠ΅ΠΆΠ½Π΅ΠΌΡ "still alive & kickin'"
- ΠΠ΅ΠΎΠΆΠΈΠ΄Π°Π½Π½ΠΎ Π½Π΅ΠΎΠ΄Π½ΠΎΠΊΡΠ°ΡΠ½ΠΎ ΡΠΏΠΎΠΌΠΈΠ½Π°ΡΡ cookie tossing
Π ΡΠ΅Π»ΠΎΠΌ ΠΎΡΠΌΠ΅ΡΠ°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΠΎΠ΅ Π½Π°ΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅, ΠΏΠΎΠΊΠ°Π·ΡΠ²Π°ΡΡΠ΅Π΅ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΡΡΡ Π°ΡΠ°ΠΊ Ρ ΠΊΡΠ°ΠΆΠ΅ΠΉ authorization response ΠΈ Π΄Π°Π»ΡΠ½Π΅ΠΉΡΠΈΠΌ Π΅Π³ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ account takeover - ΡΠ°ΡΡΡΠΈΡΡΠ²Π°Ρ, ΡΡΠΎ Π² ΡΠ΅ΡΠ΅Π½ΠΈΠ΅ Π²Π΅ΡΠ½Ρ ΡΠΌΠΎΠΆΠ΅ΠΌ Π±ΠΎΠ»Π΅Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΏΠΎΠ³ΠΎΠ²ΠΎΡΠΈΡΡ ΠΏΡΠΎ ΡΡΡ ΡΠ΅ΠΌΡ ΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΈΡΡ, ΡΠΎΡΠ½ΠΎ Π»ΠΈ ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅ΠΌΡΠ΅ ΠΎΠ±ΡΡΠ½ΠΎ ΠΌΠ΅ΡΡ Π·Π°ΡΠΈΡΡ ΡΠ°ΠΊ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½Ρ.
ΠΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ, ΡΠΈΡΠ°ΡΡ ΡΠ°ΠΊΠΈΠ΅ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π½Π΅ ΡΠΎΠ»ΡΠΊΠΎ Π΅ΡΠ»ΠΈ Π²Ρ ΠΎΠ±ΡΡΠ½ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅ΡΠ΅ Π°ΡΠ°ΠΊΡΡΡΡΡ ΡΡΠΎΡΠΎΠ½Ρ, Π½ΠΎ ΠΈ Π΅ΡΠ»ΠΈ Π²Π°ΡΠ΅ΠΉ Π·Π°Π΄Π°ΡΠ΅ΠΉ ΡΠ°ΠΊ ΠΈΠ»ΠΈ ΠΈΠ½Π°ΡΠ΅ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΡΠΈΡΡΠ΅ΠΌ. Π§ΡΠΎΠ±Ρ ΠΏΠΎΠ½ΡΡΡ, ΠΊΠ°ΠΊ ΠΈ ΠΎΡ ΡΠ΅Π³ΠΎ ΡΡΠΎΠΈΡ (ΠΈΠ»ΠΈ Π½Π΅ ΡΡΠΎΠΈΡ) Π·Π°ΡΠΈΡΠ°ΡΡΡΡ, Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ½ΠΈΠΌΠ°ΡΡ ΠΈ ΡΠ°ΠΌΠΈ ΠΏΡΠΈΠ½ΡΠΈΠΏΡ, ΡΡΠΎΡΡΠΈΠ΅ Π·Π° Π°ΡΠ°ΠΊΠ°ΠΌΠΈ ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠΌΠΈ. | 431 |
| 20 | Top 10 web hacking techniques of 2024 ΠΎΡ PortSwigger (ΡΠ°ΡΡΡ 1)
Π‘Π±ΡΠ»Π°ΡΡ ΠΌΠΎΡ ΠΌΠ΅ΡΡΠ°, Ρ
ΠΎΡΡ ΡΠ°Π· ΠΎΠΏΡΠ±Π»ΠΈΠΊΡΡ Π·Π΄Π΅ΡΡ ΡΡΠΎ-ΡΠΎ Π°ΠΊΡΡΠ°Π»ΡΠ½ΠΎΠ΅ ΠΈ ΡΠ²Π΅ΠΆΠ΅Π΅. ΠΡΠΊΠ²Π°Π»ΡΠ½ΠΎ Π²ΠΎΡ ΡΠΎΠ»ΡΠΊΠΎ ΡΡΠΎ Π±ΡΠ» ΠΎΠΏΡΠ±Π»ΠΈΠΊΠΎΠ²Π°Π½ ΡΠΆΠ΅ ΡΡΠ°Π²ΡΠΈΠΉ Π΅ΠΆΠ΅Π³ΠΎΠ΄Π½ΡΠΌ ΡΠΎΠΏ Π»ΡΡΡΠΈΡ
ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΉ ΠΈ ΡΠ΅ΡΡΠ΅ΡΡΠ΅ΠΉ Π² ΠΎΠ±Π»Π°ΡΡΠΈ ΠΠ Π·Π° 2024 Π³ΠΎΠ΄ ΠΏΠΎ Π²Π΅ΡΡΠΈΠΈ PortSwigger.
ΠΠ°ΡΠ° ΠΎΠ³Π»Π°ΡΠ΅Π½ΠΈΡ Π±ΡΠ»Π° ΠΈΠ·Π²Π΅ΡΡΠ½Π° Π·Π°ΡΠ°Π½Π΅Π΅, ΠΏΠΎΡΡΠΎΠΌΡ Ρ ΡΡΠΏΠ΅Π» ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΡΡΡ ΠΈ ΠΏΡΠΎΡΠΈΡΠ°ΡΡ Π·Π°ΡΠ°Π½Π΅Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡΠΈΠ΅ ΡΡΠ°ΡΡΠΈ π. Π Π·Π΄Π΅ΡΡ Ρ
ΠΎΡΡ Π²ΡΠ΄Π΅Π»ΠΈΡΡ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠ΅ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ ΡΠ΅ΠΌΠ°ΡΠΈΠΊΠΈ ΠΊΠ°Π½Π°Π»Π° ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»Ρ.
1οΈβ£ Hijacking OAUTH flows via Cookie Tossing - 10 ΠΌΠ΅ΡΡΠΎ
ΠΠΎΠ»ΡΡΠ°Ρ ΡΠ°ΡΡΡ ΡΡΠ°ΡΡΠΈ - ΡΡΠΎ, ΠΊ ΡΠΎΠΆΠ°Π»Π΅Π½ΠΈΡ, Π²ΠΎΠ΄Π°. ΠΠ΄Π½Π°ΠΊΠΎ Π·Π΄Π΅ΡΡ ΠΌΠ΅Π½Ρ ΡΠΈΠ»ΡΠ½ΠΎ ΠΏΠΎΠ²Π΅ΡΠ΅Π»ΠΈΠ»Π° ΡΡΠ°Π·Π° "Revisiting GitPod". ΠΠΎΠ³Π΄Π° Ρ Π·Π°Π½ΠΈΠΌΠ°Π»ΡΡ ΠΈΡΡΠ»Π΅Π΄ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Π²ΠΎΠΏΡΠΎΡΠ° Π°ΡΡΠ΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ Π΄Π»Ρ WebSocket, Π½Π°Ρ
ΠΎΠ΄ΠΈΠ» ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΠΎΡ ΡΠ΅Ρ
ΠΆΠ΅ snyk.io ΠΏΡΠΎ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ ΠΊΠ΅ΠΉΡ Ρ ΡΠ°ΡΠΊΡΡΡΠΊΠΎΠΉ Cross-Site WebSocket Hijacking (CSWH) Π΄ΠΎ RCE Π½Π° ΠΏΡΠΈΠΌΠ΅ΡΠ΅ GitPod. Π’Π°ΠΌ ΠΊΠ°ΠΊ ΡΠ°Π· Π±ΡΠ» Π½ΡΠ°Π½Ρ Π² ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½ΠΎΠ² .gitpod.io Π΄Π»Ρ ΠΎΠ±Ρ
ΠΎΠ΄Π° SameSite. ΠΠΎΠΊΠ°Π·Π°Π»ΠΎΡΡ Π·Π°Π±Π°Π²Π½ΡΠΌ, ΡΡΠΎ Π°Π²ΡΠΎΡΡ ΡΠ½ΠΎΠ²Π° Π²Π΅ΡΠ½ΡΠ»ΠΈΡΡ ΠΊ Π±Π΅Π΄Π½ΠΎΠΌΡ GitPod ΠΈ ΡΠ½ΠΎΠ²Π° ΡΡΠΎ-ΡΠΎ Ρ Π½ΠΈΡ
Π½Π°ΡΠ»ΠΈ, ΠΏΡΠΈΡΠ΅ΠΌ ΠΎΠΏΡΡΡ Π·Π° ΡΡΠ΅Ρ ΠΏΠΎΠ΄Π΄ΠΎΠΌΠ΅Π½ΠΎΠ².
2οΈβ£ ChatGPT Account Takeover - Wildcard Web Cache Deception - 9 ΠΌΠ΅ΡΡΠΎ
Π§ΠΈΡΠ°ΡΡΠΈΠ΅ ΠΊΠ°Π½Π°Π» Π±ΠΎΠ»Π΅Π΅ Π³ΠΎΠ΄Π° ΠΎΠ±ΡΠ°ΡΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅, ΡΡΠΎ ΡΡΠΎΡ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π» ΡΠΆΠ΅ ΠΎΡΠ²Π΅ΡΠ°Π»ΡΡ Π·Π΄Π΅ΡΡ ΡΠ°Π½Π΅Π΅ - ΠΊΠ°ΠΊ ΡΠ°Π· Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΡΠ²ΠΎΠ΅ΠΉ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎΠΉ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ.
3οΈβ£ OAuth Non-Happy Path to ATO - 8 ΠΌΠ΅ΡΡΠΎ
ΠΡΠ΅Π΄Π»Π°Π³Π°Π΅ΡΡΡ Π΄ΠΎΠ²ΠΎΠ»ΡΠ½ΠΎ Π»ΡΠ±ΠΎΠΏΡΡΠ½ΡΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΠΊ ΠΊΡΠ°ΠΆΠ΅ authorization response Π΄Π»Ρ ΡΠ»ΡΡΠ°Ρ, ΠΊΠΎΠ³Π΄Π° ΡΡΡΠ°Π½ΠΈΡΠ° Ρ redirect URI Π² ΡΠ»ΡΡΠ°Π΅ "Π½Π΅ΡΡΠΏΠ΅Ρ
Π°" ΠΎΡΡΠ°ΠΆΠ°Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΈΠ· ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Π·Π°ΠΏΡΠΎΡΠ° Referer Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΠΎΡΠ²Π΅ΡΠ° Location, ΡΡΠΎ ΡΠΏΠΎΡΠΎΠ±ΡΡΠ²ΡΠ΅Ρ ΡΠ΅Π΄ΠΈΡΠ΅ΠΊΡΡ. ΠΠ²ΡΠΎΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅Ρ ΠΏΡΠΎΠΊΠΈΠ΄ΡΠ²Π°Π½ΠΈΠ΅ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° Referer ΡΠ΅ΡΠ΅Π· ΡΠ΅ΠΏΠΎΡΠΊΡ ΡΠ΅Π΄ΠΈΡΠ΅ΠΊΡΠΎΠ², Π° ΡΠ°ΠΊΠΆΠ΅ ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡΡ ΡΠ°Π±ΠΎΡΡ Π±ΡΠ°ΡΠ·Π΅ΡΠΎΠ², Π·Π°ΠΊΠ»ΡΡΠ°ΡΡΡΡΡΡ Π² ΡΠ°ΡΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠΈ ΡΠ°ΡΡΠΈ URI fragment ΠΏΡΠΈ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΠΈ ΡΠ΅Π΄ΠΈΡΠ΅ΠΊΡΠ° (Π² ΠΎΡΠ»ΠΈΡΠΈΠ΅ ΠΎΡ ΡΠ΅Ρ
ΠΆΠ΅ query-ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ²).
ΠΠ° ΡΡΠΎΠΌ Π² ΡΠ°ΠΌΠΎΠΌ ΡΠΎΠΏΠ΅ Π²ΡΠ΅, Π½ΠΎ Π² ΡΠ»Π΅Π΄ΡΡΡΠ΅ΠΌ ΠΏΠΎΡΡΠ΅ ΠΏΠΎΡΠΌΠΎΡΡΠΈΠΌ ΠΈ Π½Π° Π΄ΡΡΠ³ΠΈΠ΅, Π½Π° ΠΌΠΎΠΉ Π²Π·Π³Π»ΡΠ΄, Π΄ΠΎΡΡΠΎΠΉΠ½ΡΠ΅ Π²Π½ΠΈΠΌΠ°Π½ΠΈΡ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ. | 369 |
