Monthly Archives: Август 2016

Интеграция Discourse с Keycloak

Статья подразумевает, что у вас уже установлены и настроены Discourse c Keycloak.
Интегрировать Discourse с Keycloak будем через плагин discourse-oauth2-basic.
Для этого нужно папку плагина discourse-oauth2-basic перенести в директорию plugins, которая находится в корневой папке Discourse.

После запуска Discourse c новым плагином, который автоматически подтянется из директории plugins, в админке появятся новые поля настроек. Их можно найти по ссылке http://localhost:3000/admin/site_settings/category/login, либо найти самостоятельно по пути: Админка -> Настройки -> Учетные записи.
Новые появившиеся поля нужно заполнить в соответствиями с настройками вашего клиента в Keycloak:

Название параметра

Значение параметра

oauth2 enabled

oauth2 client id

discourse-client

oauth2 client secret

3b0eab79-34df-4fd3-861e-6654f3bc4c13

oauth2 authorize url

http://localhost:18100/auth/realms/ltms/protocol/openid-connect/auth

oauth2 token url

http://localhost:18100/auth/realms/ltms/protocol/openid-connect/token

oauth2 user json url

http://localhost:18100/auth/realms/ltms/protocol/openid-connect/userinfo

oauth2 json user id path

sub

oauth2 json username path

name

oauth2 json name path

name

oauth2 json email path

email

oauth2 email verified

oauth2 send auth header

oauth2 button title

with OAuth2

Применив указанные выше настройки, в интерфейсе аутентификации появится кнопка для авторизации через OAuth2.
discourse-with-aouth2

После нажатия кнопки with OAuth2 (название можно поменять в настройках) открывается окно аутентификации Keycloak.
keycloak-auth
Успешно залогинившись, вы возвращаетесь в Discourse, который теперь знает о вашем присутствии 🙂