Пост

Настройка oAuth авторизации через Keycloak+FreeIPA в DokuWiki

OAuth — открытый протокол авторизации, который позволяет предоставить третьей стороне ограниченный доступ к защищённым ресурсам пользователя без необходимости передавать ей логин и пароль.

Настройка 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

Авторский пост защищен лицензией CC BY 4.0 .

© IT Draft. Некоторые права защищены.