Вторник, 27.09.2022, 08:34
Приветствую Вас Гость | RSS
Главная | Блог | Регистрация | Вход
Меню сайта
Категории раздела
test_category [0]
test_category
linux [6]
linux
windows [2]
microsoft windows
Вход на сайт
Поиск
Календарь
«  Май 2019  »
ПнВтСрЧтПтСбВс
  12345
6789101112
13141516171819
20212223242526
2728293031
Архив записей
Друзья сайта
  • Создать сайт
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0
    Мой сайт
    Главная » 2019 » Май » 28 » Сращиваю nextcloud с keycloak.
    10:56
    Сращиваю nextcloud с keycloak.

    Сращиваю nextcloud с keycloak.

    • Введение.

    • Подготовка.
      • Имеется сервер: ОС debian 9 , nextcloud 14.0.4 , URL = https://nextcloud-tst.example.org/ , сертификат из моей иерархии.
      • Имеется сервер: ОС debian 9 , keycloak 4.8.2 , URL = https://keycloak-tst.example.org/ , сертификат из моей иерархии. Запросы проксируются через nginx. Создан realm = demo-1.
        • В realm demo-1 создан новый пользователь - user1 , задан пароль.
      • Сохраняю сертификат keycloak.
        • Захожу (логинюсь) на https://keycloak-tst.example.org/ .
        • realm = demo-1 > Realm Settings > Keys > RSA > certifcate > Копирую текст сертификата в файл keycloak-tst_demo-1_rsa.cert .

    • По шагам. Настройка nextcloud.
      • Создаю ключевую пару (закрытый ключ и сертификат).

      • В админке nextcloud активирую и подключаю приложение (app) "SSO & SAML authentication".
      • Далее начинаю настраивать "SSO & SAML authentication". Прямая ссылка - https://nextcloud-tst.example.org/settings/admin/saml .
        • "Allow the use of multiple user back-ends" ставим галку.
        • "Add identity provider".
        • General. "Attribute to map the UID to" = username
        • "Optional display name of the identity provider..." = "SAML Keycloak"
        • Service Provider Data. Нажимаю "Show Service Provider settings…".
        • В поле "X.509 Certificate of Service provider" копирую содержимое файла (сертификат) nextcloud-tst2.example.org.cert .
        • В поле "Private Key of service provider" копирую содержимое файла (закрытый ключ) nextcloud-tst2.example.org.key .
        • Identity Provider Data. "Identifier of IdP entity" = https://keycloak-tst.example.org/auth/admin/demo-1
        • "URL Target of the IdP where the SP will send the Authentication Request Message" = https://keycloak-tst.example.org/auth/admin/demo-1/protocol/saml .
        • Нажимаю "Show optional Identity Provider settings…". "URL Location of the IdP where the SP will send the SLO Request" = https://keycloak-tst.example.org/auth/admin/demo-1/protocol/saml .
        • В поле "Public x.509 certificate of the IdP" вставляю содержимое файла keycloak-tst_demo-1_rsa.cert . В моем файле не оказалось строк "-----BEGIN CERTIFICATE-----" и "-----END CERTIFICATE-----". Добавил.
        • "Attribute mapping" не трогаю, у меня пусто.
        • Нажимаю "Show security settings…". Выставляю галки в полях:
          • "Indicates whether the <samlp:authnrequest> messages sent by this SP will be signed. [Metadata of the SP will offer this info]".
          • "Indicates whether the <samlp:logoutrequest> messages sent by this SP will be signed."
          • "Indicates whether the <samlp:logoutresponse> messages sent by this SP will be signed."
          • "Indicates a requirement for the <samlp:response>, <samlp:logoutrequest> and <samlp:logoutresponse> elements received by this SP to be signed."
          • "Indicates a requirement for the <saml:assertion> elements received by this SP to be signed. [Metadata of the SP will offer this info] ".
        • Далее, нажимаю "Download metadata XML" и сохраняю в файл nextcloud-tst.example.org_metadata.xml .

    • По шагам. Настройка keycloak.
      • В админке keycloak выбираю realm demo-1 > Clients. Прямая ссылка - https://keycloak-tst.example.org/auth/admin/master/console/#/realms/demo-1/clients .
      • Создаю нового клиента (Create) > Select file > выбираю файл nextcloud-tst.example.org_metadata.xml > Save. При этом в списке клиентов (Clients) появляется запись "https://nextcloud-tst.example.org/apps/user_saml/saml/metadata"
      • Далее, в настройках клиента (https://nextcloud-tst.example.org/apps/user_saml/saml/metadata) выбираю Mappers и создаю Mapper (Create).
        • Name = username
        • Mapper Type = User Property
        • Property = username
        • Friendly Name = username
        • SAML Attribute Name = username
        • SAML Attribute NameFormat = Basic
        • В конце нажимаю Save.
      • Далее настраиваю Client Scopes. Realm demo-1 > Client Scopes > role_list (saml) > Закладка Mappers >role list > "Single Role Attribute" = ON > Save. Если этого не сделать, в nextcloud появится ошибка: "Found an Attribute element with duplicated Name".

    • По шагам. Проверка.
      • Захожу на сайт на сайт https://nextcloud-tst.example.org/. Выбираю "SAML Keycloak".
      • На странице keycloak захожу (логинюсь) под user1 и вижу файлы и папки nextcloud.

    • Замечания. Прочее.
      • Если имя (логин) "внешнего" (keycloak) пользователя совпадает с именем внутреннего пользователя (например, админа), то "внешний" пользователь получит доступ к файлам внутреннего.
      • Описанная процедура проверена лично.

     

    Категория: linux | Просмотров: 1021 | Добавил: wown | Рейтинг: 0.0/0
    Всего комментариев: 1
    avatar
    0
    1 inoci • 14:16, 31.03.2020
    Vy prosto monstr linuxa - horosho chto u vas wse realizovamnye idei deystwennye
    avatar
    Бесплатный конструктор сайтов - uCozCopyright MyCorp © 2022