Настройка oAuth авторизации через Keycloak в Seafile
OAuth — открытый протокол авторизации, который позволяет предоставить третьей стороне ограниченный доступ к защищённым ресурсам пользователя без необходимости передавать ей логин и пароль.
Настройка Keycloak
Настроим клиента в Keycloak: переходим в раздел Clients и создаем нового клиента (Create client)
1
2
3
4
5
6
7
8
General Settings
Client type: OpenID Connect
Client ID: seafile #Понадобится для дальнейшей настройки Seafile
Capability config
Client authentication: On
Authentication flow: Standard flow
, Direct access grants
Сохраняем, переходим в настройки клиента Seafile
1
2
3
4
5
6
7
8
Вкладка Settings:
Root URL: http://seafile.itdraft.ru
Valid redirect URIs: http://seafile.itdraft.ru/*
/oauth/callback/
Вкладка Credentials
Client Authenticator: Client Id and Secret
Client secret: ... #Понадобится для дальнейшей настройки Seafile
Настройка Keycloak завершена
Настройка SeaFile
Отредактируем конфигурационный файл seahub_settings.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$ sudo nano /opt/seafile/conf/seahub_settings.py
...
# Keycloak
ENABLE_OAUTH = True
OAUTH_ENABLE_INSECURE_TRANSPORT = True
OAUTH_CLIENT_ID = "seafile" #Client ID из вкладки Settings в Keycloak
OAUTH_CLIENT_SECRET = "pass" #Ключ из вкладки Credentials в Keycloak
OAUTH_REDIRECT_URL = 'http://seafile.itdraft.ru/oauth/callback/'
OAUTH_PROVIDER_DOMAIN = 'seafile.gge.ext'
OAUTH_AUTHORIZATION_URL = 'https://keycloak.itraft.ru:8443/realms/myrealm/protocol/openid-connect/auth'
OAUTH_TOKEN_URL = 'https://keycloak.itraft.ru:8443/realms/myrealm/protocol/openid-connect/token'
OAUTH_USER_INFO_URL = 'https://keycloak.itraft.ru:8443/realms/myrealm/protocol/openid-connect/userinfo'
OAUTH_SCOPE = ["profile", "email"]
OAUTH_ATTRIBUTE_MAP = {
"id": (False, "not used"),
"name": (False, "name"),
"email": (True, "email"),
}
Перезапускаем Seafile
1
$ sudo systemctl restart seafile seahub
В Web-интерфейсе должна появиться ссылка “Единая точка входа”, при нажатии на которую нас перебросит в интерфейс авторизации Keycloak
Авторский пост защищен лицензией CC BY 4.0 .