Category Archive: Discourse

Интеграция 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, который теперь знает о вашем присутствии 🙂