Настройка oAuth авторизации через Keycloak+FreeIPA в DokuWiki
OAuth — открытый протокол авторизации, который позволяет предоставить третьей стороне ограниченный доступ к защищённым ресурсам пользователя без необходимости передавать ей логин и пароль.
Установка Keycloak была рассмотрена в одной из предыдущих статей.
Установка DokuWiki так же была рассмотрена в одной из предыдущих статей.
Настройка User federation с FreeIPA в Keycloak
В вэб-админке Keycloak создаем новую область (realm
), например myrealm
, и переходим в раздел User federation
. Там добавляем LDAP-провайдера
Вкладка Settings:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Вкладка Settings:
Console display name: freeipa.itdraft.ru
Vendor: Red Hat Directory Server
Connection URL: ldap://freeipa.itdraft.ru
# Во FreeIPA должен быть заведен пользователей keycloak с паролем mypass
Bind DN: uid=keycloak,cn=users,cn=accounts,dc=itdraft,dc=ru
Bind credentials: mypass
Edit mode: READ_ONLY
Users DN: cn=users,cn=accounts,dc=itdraft,dc=ru
Username LDAP attribute: uid
RDN LDAP attribute: uid
UUID LDAP attribute: uid
User object classes: inetOrgPerson, organizationalPerson
# Разрешаем доступ для группы gr-keycloak
User LDAP filter: (&(objectclass=person)(uid=*)(memberOf=cn=gr-keycloak,cn=groups,cn=accounts,dc=itdraft,dc=ru))
Проверяем подключение, сохраняем
Вкладка Mappers > first name
1
LDAP Attribute: givenname
Сохраняем
Создаем клиента для DokuWiki: переходим в раздел Clients и создаем нового клиента (Create client)
1
2
3
4
5
6
7
General Settings
Client type: OpenID Connect
Client ID: dokuwiki #Понадобится для настройки плагина в dokuwiki
Capability config
Client authentication: On
Authentication flow: All
Сохраняем, переходим в настройки клиента dokuwiki
1
2
3
4
5
6
Вкладка Settings
Valid redirect URIs: https://dokuwiki.itdraft.ru/*
Вкладка Credentials
Client Authenticator: Client Id and Secret
Client secret: ... #Понадобится для настройки плагина в dokuwiki
Настройка Keycloak завершена
Настройка DokuWiki
Авторизуемся в DokuWiki, переходим в Управление > Управление дополнениями > Поиск и установка
Ищем дополнение: oAuth
Устанавливаем плагины:
oauth plugin
oAuth Keycloak Service
Переходим в Управление > Настройки вики
1
2
3
4
5
6
7
8
9
Механизм аутентификации: oauth
...
Oauth
Register authenticated users even if self-registration is disabled in main configuration: yes
...
Oauthkeycloak
Client ID: dokuwiki #Из настроек клиента в Keycloak
Cient Secret: ... #Из настроек клиента в Keycloak
OpenID Connect Auto Discovery URL: https://keycloak.itdraft.ru:8443/realms/myrealm/.well-known/openid-configuration
Переходим в профиль пользователя и разрешаем авторизацию через Keycloak