/
ΠŸΡ€ΠΈΠΌΠ΅Ρ€ настройки для Keycloak

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ настройки для Keycloak

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ любой identity-ΠΏΡ€ΠΎΠ²Π°ΠΉΠ΄Π΅Ρ€. Π’ нашСм ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π΅ ΠΌΡ‹ продСмонстрируСм, ΠΊΠ°ΠΊ Π½Π°ΡΡ‚Ρ€ΠΎΠΈΡ‚ΡŒ Keycloak для Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

Для настройки Ρ€Π°Π±ΠΎΡ‚Ρ‹ с Keycloak Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ шаги:

  1. ЗапуститС Keycloak Π½Π° сСрвСрС с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:
    sudo docker run --name keycloak -e KEYCLOAK_USER=admin -e KEYCLOAK_PASSWORD=password -p 8080:8080 jboss/keycloak
    Π³Π΄Π΅
    KEYCLOAK_USER – Π»ΠΎΠ³ΠΈΠ½, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для Π²Ρ…ΠΎΠ΄Π° Π² консоль администратора Π² Keycloak.
    KEYCLOAK_PASSWORD – ΠΏΠ°Ρ€ΠΎΠ»ΡŒ для Π²Ρ…ΠΎΠ΄Π° Π² консоль администратора Π² Keycloak.
    8080 – стандартный ΠΏΠΎΡ€Ρ‚ Keycloak для Ρ€Π°Π±ΠΎΡ‚Ρ‹ ΠΏΠΎ HTTP. ΠŸΡ€ΠΈ Ρ€Π°Π±ΠΎΡ‚Π΅ с HTTPS ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΏΠΎΡ€Ρ‚ 8443.

  2. ΠžΡ‚ΠΊΡ€ΠΎΠΉΡ‚Π΅ Π² Π±Ρ€Π°ΡƒΠ·Π΅Ρ€Π΅ консоль администратора Keycloak ΠΏΠΎ адрСсу: {Π΄ΠΎΠΌΠ΅Π½_Keycloak}/auth/admin

  3. На ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Visiology Π² ΠΏΠ°Π½Π΅Π»ΠΈ администрирования ΠΏΠ΅Ρ€Π΅ΠΉΠ΄ΠΈΡ‚Π΅ Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΡƒ ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ > Авторизация > OpenID Connect > ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ настройки:

    Β 

    На Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ настройки Π·Π°ΠΏΠΎΠ»Π½ΠΈΡ‚Π΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ поля (Π·Π²Π΅Π·Π΄ΠΎΡ‡ΠΊΠΎΠΉ ΠΏΠΎΠΌΠ΅Ρ‡Π΅Π½Ρ‹ ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля):

ПолС

ОписаниС

ПолС

ОписаниС

UserName claim*

МоТно ΡƒΠΊΠ°Π·Π°Ρ‚ΡŒ любоС Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠ· Ρ‚ΠΎΠΊΠ΅Π½Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, preferred_username.

Repsonse type*

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ. ДоступныС значСния: id_token (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· Implicit Flow) ΠΈΠ»ΠΈ code (ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· Authorization Code Flow). Π—Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ code ΠΌΠΎΠΆΠ΅Ρ‚ Ρ‚Π°ΠΊΠΆΠ΅ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒΡΡ ΠΏΡ€ΠΈ любом Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΈ поля Claims source.

Authentication scheme*

Π‘Ρ…Π΅ΠΌΠ° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

Authority*

http(https)://{Π΄ΠΎΠΌΠ΅Π½ Keycloak}/auth/realms/{Π½Π°ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅_Realm}

Client id*

НаимСнованиС ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° ΠΈΠ· Keycloak.

Client secret

Π‘ΠΊΠΎΠΏΠΈΡ€ΡƒΠΉΡ‚Π΅ сСкрСт Π² настройках ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π° Π² Keycloak Π½Π° Π²ΠΊΠ»Π°Π΄ΠΊΠ΅ Credentials ΠΈ Π²ΡΡ‚Π°Π²ΡŒΡ‚Π΅ Π² это ΠΏΠΎΠ»Π΅.

Callback path*

ΠΠ΅ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹ΠΉ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹ΠΉ ΠΏΡƒΡ‚ΡŒ для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎΠ³ΠΎ Π²Ρ‹Π·ΠΎΠ²Π° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ.

Scope*

Π‘ΠΏΠΈΡΠΎΠΊΒ Π·Π°ΠΏΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌΡ‹Ρ… Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ.

Resourse

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ рСсурса, ΠΊ ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΌΡƒ Π±ΡƒΠ΄Π΅Ρ‚ Π·Π°ΠΏΡ€ΠΎΡˆΠ΅Π½ доступ.

Claims source

ДоступныС значСния:

  • userinfo endpoint (Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· Keylcoak)

  • id_token (Π²Ρ‹Π±Π΅Ρ€ΠΈΡ‚Π΅ это Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΏΡ€ΠΈ ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· ADFS)

  • access_token

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ настройки с использованиСм Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Ρ‚ΠΈΠΏΠΎΠ² ΠΎΡ‚Π²Π΅Ρ‚Π° (ΠΏΠΎΠ»Π΅ Response type)

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· Implicit Flow (id_token)

Настройки Π² Keycloak

Β 

Настройки Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Visiology

Β 

Настройки Π² Keycloak

Β 

Настройки Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Visiology

Β 

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· Implicit Flow ΠΏΡ€ΠΈ использовании userinfo endpoint Π² качСствС Claims source

Настройки Π² Keycloak

Настройки Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Visiology

Β 

ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ Ρ‡Π΅Ρ€Π΅Π· Authorization Π‘ode (code)

Настройки Π² Keycloak

Β 

Настройки Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Visiology

Β 

Настройки Π² Keycloak

Β 

Настройки Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Visiology

Β 

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ настройки с использованиСм Ρ€Π°Π·Π»ΠΈΡ‡Π½Ρ‹Ρ… Π·Π½Π°Ρ‡Π΅Π½ΠΈΠΉ Π² ΠΏΠΎΠ»Π΅ Claims source

ΠŸΡ€ΠΈ Π²Ρ‹Π±ΠΎΡ€Π΅ значСния Π² ΠΏΠΎΠ»Π΅ Claims source, Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΡƒΡŽ ΠΎΠΏΡ†ΠΈΡŽ Π² Keycloak Π² настройках Mappers ΠΊΠ»ΠΈΠ΅Π½Ρ‚Π°:

  • ΠŸΡ€ΠΈ использовании userinfo endpoint Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ Add to userinfo.

  • ΠŸΡ€ΠΈ использовании id_token Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ Add to ID token.

  • ΠŸΡ€ΠΈ использовании access_token Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΏΡ†ΠΈΡŽ Add to access token.

Настройки ΠΏΡ€ΠΈ использовании значСния id_token

Настройки Π² Keycloak

Β 

Настройки Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Visiology

Β 

Настройки Π² Keycloak

Β 

Настройки Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Visiology

Β 

Настройки ΠΏΡ€ΠΈ использовании значСния userinfo endpoint

Настройки Π² Keycloak

Настройки Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Visiology

Настройки ΠΏΡ€ΠΈ использовании значСния access_token

Настройки Π² Keycloak

Настройки Π½Π° ΠΏΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ΅ Visiology

Если Π²Ρ‹ настроили Ρ‡Ρ‚ΠΎ-Ρ‚ΠΎ Π½Π΅Π²Π΅Ρ€Π½ΠΎ, Ρ‚ΠΎ ΠΌΠΎΠΆΠ½ΠΎ Π²Ρ‹ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ, Π° Π·Π°Ρ‚Π΅ΠΌ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ внСшнюю Π°Π²Ρ‚ΠΎΡ€ΠΈΠ·Π°Ρ†ΠΈΡŽ с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ скрипта.
Для этого Π½Π° сСрвСрС Π½ΡƒΠΆΠ½ΠΎ Π²Ρ‹ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹:

ID=$(sudo docker ps | grep visiology_admin | awk '{print $1}') sudo docker exec -it $ID sh node administrator-tools/change-auth-type/index.js

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ скрипт Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π½Π° Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅.


Π‘ΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ Ρ‚Π°ΠΊΠΆΠ΅

Related content