Добавление поставщиков удостоверений

Добавление поставщиков удостоверений#

Прежде чем подключаться к поставщику удостоверений и импортировать его пользователей, необходимо создать доменные группы для этих пользователей и назначить этим группам соответствующие роли.

Предварительные требования

  • Локальные группы домена создаются, как описано в разделе Создание доменных групп.

  • URL-адрес перенаправления (redirect_uri) для кластера должен быть https://<url>:8800/api/v2/login/idp/.

Добавление поставщика удостоверений

  1. На экране Проекты и пользователи выберите нужный домен.

  2. Перейдите в раздел Настройки → Поставщик удостоверений и нажмите Добавить.

  3. В окне Добавить поставщика удостоверений укажите следующие параметры:

    1. Пользовательское имя поставщика удостоверений, которое будет отображаться на экране входа в систему.

    2. Уникальный идентификатор эмитента, предоставленный поставщиком OIDC. Обычно отображается как URN.

    3. Идентификатор клиента и секрет для доступа к поставщику OIDC.

    4. URL-адрес метаданных конечной точки обнаружения поставщика OIDC. URL-адрес метаданных обычно представляет собой конечную точку издателя, соединенную с путем /.well-known/openid-configuration. Например, если идентификатор эмитента https://idp.example.com/adfs/, URL-адрес метаданных будет https://idp.example.com/adfs/.well-known/openid-configuration.

    5. Области, определяющие, какие данные удостоверения пользователя будут совместно использоваться поставщиком OIDC во время проверки подлинности.

      Важно

      Области allatclaims и openid являются обязательными для поставщиков Microsoft AD FS.

      image1

  4. В разделе Сопоставление можно создавать правила сопоставления вручную или автоматически из файла сопоставления:

    • Ручное создание правил сопоставления

      1. Выберите Создать правила сопоставления, а затем нажмите Добавить.

      2. В окне Добавить правило создайте Условия сопоставления, нажав кнопку Добавить и указав необходимые параметры:

        • Укажите атрибут пользователя Атрибут, который вы получаете от поставщика удостоверений во время аутентификации.

        • В поле Условие укажите условие, которое будет применяться к атрибуту. При условии Существует будут сопоставлены все пользователи с этим атрибутом. Условие Содержит отображает пользователей, если этот атрибут содержит любое из указанных значений. Условие Не содержит сопоставляет пользователей, если этот атрибут не содержит ни одного из указанных значений.

        • В поле Значение укажите желаемое значение атрибута в виде строки, списка, разделенного запятыми, или регулярного выражения.

      3. Выберите существующую группу домена для назначения федеративных пользователей.

      4. Если у вас есть правило сопоставления с условием Существует, выберите атрибуты, из которых будет состоять имя локального пользователя. Например, с атрибутом сопоставления email и условием сопоставления Существует, имена локальных пользователей могут состоять из их адресов электронной почты.

    • Автоматическое создание правил сопоставления

      1. Выберите Загрузить файл сопоставления в формате JSON с уже настроенными правилами сопоставления.

      2. Напишите правила сопоставления в формате JSON в поле Данные сопоставления. Либо щелкните Загрузить, а затем просмотрите файл JSON на локальном сервере, чтобы загрузить данные сопоставления.

        Файл сопоставления может выглядеть следующим образом:

        # cat mapping.json
        [
            {
                "local": [
                    {
                        "user": {
                            "name": "{0}"
                        },
                        "group": {
                            "name":"users"
                        }
                    }
                ],
                "remote": [{"type": "email"}]
            }
        ]
        

        В этом примере все пользователи с атрибутом email будут сопоставлены группе users домена default. Для получения подробных сведений о создании файла сопоставления см. документацию OpenStack.

  5. Нажмите Добавить.

Используйте следующую команду:

vinfra domain idp create --domain <domain> --issuer <issuer> --scope <scope>
                         [--metadata-url <metadata-url>] [--client-id <client-id>]
                         [--client-secret <client-secret>] [--mapping <path>]
                         [--enable] [--disable] <name>
--domain <domain>

Имя или ID домена

--issuer <issuer>

Эмитент поставщика удостоверений

--scope <scope>

Область, определяющая, какие данные удостоверения пользователя будут совместно использоваться поставщиком удостоверений во время проверки подлинности.

Важно

Области allatclaims и openid являются обязательными для поставщиков Microsoft AD FS.

--metadata-url <metadata-url>

URL-адрес метаданных конечной точки обнаружения поставщика удостоверений

--client-id <client-id>

Идентификатор клиента для доступа к поставщику удостоверений

--client-secret <client-secret>

Секрет клиента для доступа к поставщику удостоверений

--mapping <path>

Путь к файлу конфигурации сопоставления

Файл сопоставления может выглядеть следующим образом:

# cat mapping.json
[
    {
        "local": [
            {
                "user": {
                    "name": "{0}"
                },
                "group": {
                    "name":"users"
                }
            }
        ],
        "remote": [{"type": "email"}]
    }
]

В этом примере все пользователи с атрибутом email будут сопоставлены группе users домена default. Для получения подробных сведений о создании файла сопоставления см. документацию OpenStack.

--enable

Включить поставщика удостоверений

--disable

Отключить поставщика удостоверений

<name>

Имя поставщика удостоверений

Например, чтобы добавить поставщика удостоверений с именем My ADFS в домене mydomain, запустите команду:

# vinfra domain idp create --domain mydomain --issuer https://idp.example.com/adfs/ \
--scope "allatclaims openid email" --client-id xxx --client-secret xxx --mapping mapping.json "My ADFS"

Добавленный поставщик удостоверений появится в выводе команды vinfra domain idp list:

# vinfra domain idp list --domain mydomain
+-------------+---------+-------------------------------+--------------------------+-----------+
| id          | name    | issuer                        | scope                    | domain_id |
+-------------+---------+-------------------------------+--------------------------+-----------+
| df5a54ce<…> | My ADFS | https://idp.example.com/adfs/ | allatclaims openid email | 36f454<…> |
+-------------+---------+-------------------------------+--------------------------+-----------+