Skip to content

Локальная установка и тестирование

Вы можете протестировать аутентификацию Keycloak локально с помощью docker compose:

$ docker compose -f docker-compose.test.yml up keycloak -d
...

Авторизация в keycloak

Сначала вам нужно перейти по адресу http://localhost:8080/admin и войти, используя логин: admin, пароль: admin (по умолчанию), чтобы создать области.

image

Создание новой области

image

Создание нового имени области

Передайте значение имени области. Затем передайте его в переменную окружения SYNCMASTER__AUTH__KEYCLOAK__REALM_NAME:

$ export SYNCMASTER__AUTH__KEYCLOAK__REALM_NAME=fastapi_realm  # as on screen below
...

image

Создание нового клиента

image

Создание нового имени клиента

В созданной области передайте значение имени клиента. Затем передайте его в переменную окружения SYNCMASTER__AUTH__KEYCLOAK__CLIENT_ID:

$ export SYNCMASTER__AUTH__KEYCLOAK__CLIENT_ID=fastapi_client  # as on screen below
...

image

Установка client_authentication ON для получения client_secret

image

Настройка URI перенаправления

Чтобы настроить URI перенаправления, куда браузер будет перенаправлять пользователя для обмена кода, предоставленного Keycloak, на токен доступа, нужно установить переменную окружения SYNCMASTER__AUTH__KEYCLOAK__REDIRECT_URI. Значение по умолчанию для локальной разработки — http://localhost:8000/auth/callback.

$ export SYNCMASTER__AUTH__KEYCLOAK__REDIRECT_URI=http://localhost:8000/auth/callback
...

Настройка URI перенаправления клиента

Убедитесь, что этот URI также настроен как допустимый URI перенаправления в настройках клиента Keycloak. Это позволит браузеру перенаправлять пользователя в ваше приложение после успешной аутентификации в Keycloak.

image

Настройка секрета клиента

Теперь перейдите на вкладку Учетные данные и добавьте секрет клиента в переменную среды SYNCMASTER__AUTH__KEYCLOAK__CLIENT_SECRET:

$ export SYNCMASTER__AUTH__KEYCLOAK__CLIENT_SECRET=6x6gn8uJdWSBmP8FqbNRSoGdvaoaFeez   # as on screen below
...

image

Теперь вы можете создавать пользователей в этих сферах. Ознакомьтесь с документацией keycloak на предмет того, как управлять созданием пользователей.

ПЕРЕМЕННЫЕ СРЕДЫ

После этого вы можете использовать KeycloakAuthProvider в своем приложении с предоставленными переменными среды:

$ export SYNCMASTER__AUTH__KEYCLOAK__SERVER_URL=http://keycloak:8080
$ export SYNCMASTER__AUTH__KEYCLOAK__REDIRECT_URI=http://localhost:8000/auth/callback
$ export SYNCMASTER__AUTH__KEYCLOAK__REALM_NAME=fastapi_realm
$ export SYNCMASTER__AUTH__KEYCLOAK__CLIENT_ID=fastapi_client
$ export SYNCMASTER__AUTH__KEYCLOAK__CLIENT_SECRET=6x6gn8uJdWSBmP8FqbNRSoGdvaoaFeez
$ export SYNCMASTER__AUTH__KEYCLOAK__SCOPE=email
$ export SYNCMASTER__AUTH__KEYCLOAK__VERIFY_SSL=False
$ export SYNCMASTER__AUTH__PROVIDER=syncmaster.server.providers.auth.keycloak_provider.KeycloakAuthProvider
...