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