20 Jan. 7, 2025, 8:30 p.m.

Авторизация в Nextcloud через OpenID

Задача: для существующего пользователя добавить возможность авторизации через keycloak.

Нужно установить приложение OpenID Connect Login

В config.php добавить строки:

<?php
$CONFIG = array (
<...>
  'oidc_login_client_id' => '<client-id>',
  'oidc_login_client_secret' => '<client-secret>', 
  'oidc_login_provider_url' => 'https://keycloak.example.com/realms/<ваш realm>',
  'oidc_login_end_session_redirect' => false, # если оставить true тогда при выходе будет ошибка.
  'oidc_login_logout_url' => 'https://keycloak.example.com/realms/<ваш realm>/protocol/openid-connect/logout', 
  'oidc_login_auto_redirect' => false, # если исользуется как единственный вариант авторизации тогда нужно true
  'oidc_login_redir_fallback' => true,
  'oidc_login_disable_registration' => true, # отключает регистрацию если пользователя не существует в БД nextcloud
  'oidc_login_attributes' => array(
    'id' => 'preferred_username', # должно совпадать с существующим пользователем чтобы осуществить безшевную миграцию.
    'mail' => 'email',
    'name' => 'name',
  ),
  'auth.webauthn.enabled' => false, # отключение параметра входа "по ключу"
  'hide_login_form' => false, # указать true для отключения формы логина и пароля
<...>
);

Источники

OpenID Connect Login