ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ OpenID Connect
ΠΠ³Π»Π°Π²Π»Π΅Π½ΠΈΠ΅
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π°ΡΡΠΈΠ±ΡΡΠΎΠ²
ΠΠ»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ Π°ΡΡΠΈΠ±ΡΡΠΎΠ²:
- ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡ βΠ‘ΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠΎΠ²β.
- ΠΠΊΠ»ΡΡΠΈΡΠ΅ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠΎΠ², Π½Π°ΠΆΠ°Π² ΠΊΠ½ΠΎΠΏΠΊΡ "ΠΠΊΠ»ΡΡΠΈΡΡ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠΎΠ²".
- ΠΠ°Π΄Π°ΠΉΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΡ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ:
- Π€Π°ΠΌΠΈΠ»ΠΈΡ β Π°ΡΡΠΈΠ±ΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Ρ ΡΠ°Π½ΠΈΡΡΡ ΡΠ°ΠΌΠΈΠ»ΠΈΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ;
- ΠΠΌΡ β Π°ΡΡΠΈΠ±ΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Ρ ΡΠ°Π½ΠΈΡΡΡ ΠΈΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ;
- ΠΡΡΠ΅ΡΡΠ²ΠΎ β Π°ΡΡΠΈΠ±ΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Ρ ΡΠ°Π½ΠΈΡΡΡ ΠΎΡΡΠ΅ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ;
- Email β Π°ΡΡΠΈΠ±ΡΡ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Ρ ΡΠ°Π½ΠΈΡΡΡ email ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ.
- ΠΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ Π°ΡΡΠΈΠ±ΡΡΡ β ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡΡΡΡ Π΄Π»Ρ ΡΠ°Π·Π³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ. ΠΠΎΠ΄ΡΠΎΠ±Π½ΠΎ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΡΠΌ. Π²Β Π Π°Π·Π³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΠ΅ ΠΏΡΠ°Π² Π΄ΠΎΡΡΡΠΏΠ° ΠΊ Π΄Π°Π½Π½ΡΠΌ
- ΠΠ»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ Π½Π°ΠΆΠΌΠΈΡΠ΅ βΠ‘ΠΎΡ ΡΠ°Π½ΠΈΡΡβ.
ΠΡΠ»ΠΈ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π°ΡΡΠΈΠ±ΡΡΠΎΠ² Π½Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½ΠΎ, ΡΠΎ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ, Π€Π°ΠΌΠΈΠ»ΠΈΡ Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½Π° ΠΈΠ· Π°ΡΡΠΈΠ±ΡΡΠ° Π΄Π»Ρ "UserName claim" Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅Β ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° Π²Π½Π΅ΡΠ½Π΅ΠΉ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ.
ΠΠ°ΡΡΡΠΎΠΉΠΊΠ° ΡΠΎΠ»Π΅ΠΉ
ΠΠ»Ρ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΡ ΡΠΎΠ»Π΅ΠΉ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ Π²ΠΎ Π²Π½Π΅ΡΠ½Π΅ΠΌ ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ΅ ΠΈ ΡΠΎΠ»ΡΠΌ Π² Visiology:
- ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡΒ βΠ‘ΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ»Π΅ΠΉβ.
- ΠΡΠ±Π΅ΡΠΈΡΠ΅ "ΠΠΊΠ»ΡΡΠΈΡΡ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ»Π΅ΠΉ".
- ΠΠ°Π΄Π°ΠΉΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ "JMESPath", ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½Ρ ΡΠΎΠ»ΠΈ Π²ΠΎ Π²Π½Π΅ΡΠ½Π΅ΠΌ ΠΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ΅. ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ Π±ΡΠ΄ΡΡ ΠΏΡΠΈΡΠ²Π°ΠΈΠ²Π°ΡΡΡΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΡΠΎΠ»Π΅ΠΉ, ΠΏΠΎΠ»ΡΡΠ΅Π½Π½ΡΠ΅ ΠΈΠ· ΡΡΠΎΠ³ΠΎ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°.
- ΠΠ΅ ΡΠ΄Π°Π»ΡΡΡ ΡΠΆΠ΅ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½Π½ΡΠ΅ ΡΠΎΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Π΅ΠΉ:
- Π΅ΡΠ»ΠΈ ΠΎΠΏΡΠΈΡ Π²ΠΊΠ»ΡΡΠ΅Π½Π°, ΡΠΎ Π² ΡΠ»ΡΡΠ°Π΅ ΡΠ΄Π°Π»Π΅Π½ΠΈΡ ΡΠΎΠ»ΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π²ΠΎ Π²Π½Π΅ΡΠ½Π΅ΠΌ ΠΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ΅, ΠΏΡΠΈ Π°Π²ΡΠΎΡΠΈΠ·Π°ΡΠΈΠΈ Π² Visiology, ΡΠ΄Π°Π»Π΅Π½Π½Π°Ρ ΡΠΎΠ»Ρ Π½Π΅ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ·Π²Π°Π½Π° ΠΈΠ· Π½Π°Π·Π½Π°ΡΠ΅Π½Π½ΡΡ ΡΠ°Π½Π΅Π΅ ΠΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΎΠ»Π΅ΠΉ;
- Π΅ΡΠ»ΠΈ ΠΎΠΏΡΠΈΡ ΠΎΡΠΊΠ»ΡΡΠ΅Π½Π°,Β ΡΠΎ ΡΠ΄Π°Π»Π΅Π½Π½ΡΠ΅ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΡΠΎΠ»ΠΈ Π²ΠΎ Π²Π½Π΅ΡΠ½Π΅ΠΌ ΠΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ΅ Π±ΡΠ΄ΡΡ ΡΠ°ΠΊΠΆΠ΅ ΡΠ΄Π°Π»Π΅Π½Ρ Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π² ΠΠ»Π°ΡΡΠΎΡΠΌΠ΅.
- ΠΠ»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π½Π°ΡΡΡΠΎΠ΅ΠΊ Π½Π°ΠΆΠΌΠΈΡΠ΅ βΠ‘ΠΎΡ ΡΠ°Π½ΠΈΡΡβ.
ΠΡΠ»ΠΈ Π‘ΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΎΠ»Π΅ΠΉ Π²ΡΠΊΠ»ΡΡΠ΅Π½ΠΎ, ΡΠΎ ΠΏΡΠΈ ΡΠΎΠ·Π΄Π°Π½ΠΈΠΈ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈΠ· Π²Π½Π΅ΡΠ½Π΅Π³ΠΎ ΠΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ°, Π½ΠΎΠ²ΠΎΠΌΡ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π±ΡΠ΄Π΅Ρ ΠΏΡΠΈΡΠ²ΠΎΠ΅Π½Π° ΡΠΎΠ»Ρ "ΠΡΠ΅ Π°Π²ΡΠΎΡΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΠΈ".
ΠΡΠΈΠΌΠ΅ΡΡ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΠ»Π΅ΠΉ
ΠΠΌΠ΅Π΅ΡΡΡ ΠΌΠ°ΡΡΠΈΠ² Ρ ΡΠΎΠ»ΡΠΌΠΈ ΠΈΠ· ΡΠΎΠΊΠ΅Π½Π°:
{ "resource_access":{ "test":{ "roles":[ "foo", "fooo" ] } } }
ΠΡΠΈΠΌΠ΅Ρ 1
ΠΠ»Ρ ΡΠΎΠΏΠΎΡΡΠ°Π²Π»Π΅Π½ΠΈΡ ΡΠΎΠ»Π΅ΠΉ ΠΈΠ· ΡΠΎΠΊΠ΅Π½Π° Ρ ΡΠΎΠ»ΡΠΌΠΈ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²Π²Π΅ΡΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ Π² ΠΏΠΎΠ»Π΅Β JMESPath:
resource_access.test.roles
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΈΠΌ:
[ "foo", "fooo" ]
Π Π΄Π°Π½Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΡΠΎΠ»ΠΈ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ ΠΈ Π² ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ΅ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΈΠΌΠ΅ΡΡ ΠΎΠ΄ΠΈΠ½Π°ΠΊΠΎΠ²ΡΠ΅ Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΡ.
ΠΡΠΈΠΌΠ΅Ρ 2
ΠΡΠ»ΠΈ Π² ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ΅ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½Π°Ρ ΡΠΎΠ»Ρ, Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΠΏΡΠΎΠΈΠ·Π²Π΅ΡΡΠΈ ΠΌΠ°ΠΏΠΈΠ½Π³. ΠΠ»Ρ ΡΡΠΎΠ³ΠΎ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅ Π²Π²Π΅Π΄ΠΈΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
[contains(resource_access.test.roles, 'foo') && 'bar', contains(resource_access.test.roles, 'fooo') && 'barr']
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΈΠΌ:
[ "bar", "barr" ]Β
ΠΡΠΈΠΌΠ΅Ρ 3
ΠΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ ΠΊ ΠΌΠ°ΡΡΠΈΠ²Ρ ΡΠΎΠ»Π΅ΠΉ ΠΈΠ· ΠΏΡΠΎΠ²Π°ΠΉΠ΄Π΅ΡΠ° Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ²ΠΎΡ ΡΠΎΠ»Ρ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΡΠΎΠ±Ρ Π½Π°Π·Π½Π°ΡΠΈΡΡ ΡΡΡ ΡΠΎΠ»Ρ Π°Π±ΡΠΎΠ»ΡΡΠ½ΠΎ Π²ΡΠ΅ΠΌ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»ΡΠΌ, ΡΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π²Π²Π΅ΡΡΠΈ ΡΠ»Π΅Π΄ΡΡΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
[[resource_access.test.roles, 'bar']].map(&[], @)[0]
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ Π±ΡΠ΄Π΅Ρ ΡΠ°ΠΊΠΈΠΌ:
[ "foo", "fooo", "bar" ]