Настройка NextCloud + OIDC
Автор Denis Dmitriev, Last modified by Mariya Vorozhba на 22 февраля 2024 10:49 PM

Продукты: Indeed AM
Раздел: Руководства 


Описание: Настройка NextCloud + OIDC

Предусловия:

  • Установленный и настроенный Indeed AM IDP.
  • Установленные сертификаты для https подключения на Indeed AM IDP и Nextcloud.
  • Установленный и настроенный Nextcloud
  • Проверить доверие между Nextcloud и indeedam:
    curl https://indeedam.indeed.local/am/idp/.well-known/openid-configuration
    curl https://nextcloud.indeed.local

Настройка NextCloud:

  1. Переходим в раздел "Приложения" и устанавливаем "OpenID Connect user backend".
  2. Переходим в раздел "Параметры сервера" - "OpenID Connect" - выбираем "Registered Providers".
  3. В появившихся полях указываем:
    Identifier - название для кнопки входа в Nextcloud.
    Client id - идентификатор клиента.
    Client secret - секрет клиента.
    Discovery endpoint - адрес конфигурации OIDC indeed.
    Scope - openid.
    Extra claims - sub.
    User ID mapping - sub.
    Остальные параметры не потребуются.
  4. Для настройки корректного выхода нужно добавить в конфигурационный файл nextcloud config.php блок:

      'user_oidc' => [

        'single_logout' => false,

      ],

Настройка Indeed IDP:

  1. Переходим в каталог "C:\inetpub\wwwroot\am\idp" и открываем конфигурационный файл "app-settings.json".
  2. Находим блок "OIDC", указываем отпечаток сертификата idp в параметре "CertificateThumbprint".
  3. Копируем блок с примером конфигурации:
          {
            "ClientId": "example-client",
            "ClientSecret": "secret_secret_secret",
            "DisplayName": "Example client application",
            "Permissions": [
              "ept:authorization",
              "ept:device",
              "ept:introspection",
              "ept:logout",
              "ept:revocation",
              "ept:token",
              "gt:authorization_code",
              "gt:client_credentials",
              "gt:urn:ietf:params:oauth:grant-type:device_code",
              "gt:implicit",
              "gt:password",
              "gt:refresh_token",
              "rst:code",
              "rst:code id_token",
              "rst:code id_token token",
              "rst:code token",
              "rst:id_token",
              "rst:id_token token",
              "rst:none",
              "rst:token",
              "scp:address",
              "scp:email",
              "scp:phone",
              "scp:profile",
              "scp:roles"
            ],
            "PostLogoutRedirectUris": [
              "https://localhost:5003/signout-callback-oidc"
            ],
            "RedirectUris": [
              "https://localhost:5003/signin-oidc"
            ],
            "Requirements": [
              "ft:pkce"
            ]
          }
  4. Вставляем его ниже, не забываем поставить между блоками запятую.
    Значение ClientId и ClientSecret меняем на указанные в NextCloud.
    Значение RedirectUris меняем на указанное в Nextcloud:

    В блоке "Requirements" убираем параметр "ft:pkce".
    После этого сохраняем файл "app-settings.json".

  5. Открываем IIS,  Пулы приложений, выбираем IndeedAM.IDPПерезапуск:
  6. Пробуем подключиться к Nextcloud, в окне логина появится дополнительная кнопка с названием указанного в Nextcloud identifier, нажимаем ее без ввода логина и пароля.

  7. Происходит перенаправление на страницу Indeed IDP, где мы вводим имя пользователя, выбираем способ аутентификации и входим в Nextcloud.
(4 голос(а))
Эта статья полезна
Эта статья бесполезна

Комментарии (0)
Добавить новый комментарий
 
 
Полное имя:
Email:
Комментарии: