Управление OIDC

Платформа поддерживает протокол OIDC (OpenID Connect), позволяющий администраторам платформы входить в систему с использованием сторонних аккаунтов после добавления конфигурации OIDC. Администраторы платформы также могут обновлять и удалять настроенные сервисы OIDC.

Содержание

Обзор OIDC

OIDC (OpenID Connect) — это стандартный протокол аутентификации личности, основанный на протоколе OAuth 2.0. Он использует сервер авторизации OAuth 2.0 для предоставления аутентификации пользователя сторонним клиентам и передачи соответствующей информации об аутентификации личности клиенту.

OIDC позволяет всем типам клиентов (включая серверные, мобильные и JavaScript-клиенты) запрашивать и получать аутентифицированные сессии и информацию о конечном пользователе. Этот набор спецификаций расширяем, что позволяет участникам использовать дополнительные функции, такие как шифрование данных личности, обнаружение OpenID Provider и управление сессиями, когда это имеет смысл. Для получения дополнительной информации обратитесь к официальной документации OIDC.

Добавление OIDC

Добавив OIDC, вы можете использовать сторонние аккаунты платформы для входа на платформу.

Примечание: После успешного входа пользователей OIDC на платформу платформа будет использовать атрибут email пользователя в качестве уникального идентификатора. Пользователи сторонних платформ с поддержкой OIDC должны иметь атрибут email; в противном случае они не смогут войти на платформу.

Порядок действий

  1. В левой навигационной панели нажмите Users > IDPs.

  2. Нажмите Add OIDC.

  3. Настройте параметры Basic Information.

  4. Настройте параметры OIDC Server Configuration:

    • Identity Provider URL: URL издателя, который является адресом доступа к провайдеру идентификации OIDC.

    • Client ID: идентификатор клиента для OIDC клиента.

    • Client Secret: секретный ключ для OIDC клиента.

    • Redirect URI: адрес обратного вызова после входа на стороннюю платформу, который представляет собой URL издателя dex + /callback.

    • Logout URL: адрес, на который пользователь будет перенаправлен после выполнения операции Logout. Если пусто, адрес выхода будет начальной страницей входа платформы.

  5. В области IDP Service Configuration Validation введите Username и Password действительной учетной записи OIDC для проверки конфигурации.

    Совет: Если имя пользователя и пароль введены неверно, при добавлении будет выдана ошибка с указанием недействительных учетных данных, и OIDC не сможет быть добавлен.

  6. Нажмите Create.

Добавление OIDC через YAML

Помимо конфигурации через форму, платформа также поддерживает добавление OIDC через YAML, что позволяет более гибко настраивать параметры аутентификации, сопоставление claims, синхронизацию групп пользователей и другие расширенные функции.

Пример: Конфигурация OIDC коннектора

Следующий пример демонстрирует, как настроить OIDC коннектор для интеграции с сервисами аутентификации личности OIDC. Этот пример конфигурации подходит для следующих сценариев:

  1. Необходима интеграция OIDC в качестве сервера аутентификации личности.

  2. Требуется поддержка синхронизации информации о группах пользователей.

  3. Нужно настроить адрес перенаправления после выхода из системы.

  4. Необходимо настроить конкретные области (scopes) OIDC.

  5. Требуется настроить сопоставление claims.

apiVersion: dex.coreos.com/v1
kind: Connector
# Connector basic information
id: oidc               # Уникальный идентификатор коннектора
name: oidc             # Отображаемое имя коннектора
type: oidc             # Тип коннектора — OIDC
metadata:
  annotations:
    cpaas.io/description: "11"  # Описание коннектора
  name: oidc
  namespace: cpaas-system
spec:
  config:
    # Конфигурация OIDC сервера
    # Настройка информации для подключения к серверу, включая адрес сервера, учетные данные клиента и адрес обратного вызова
    issuer: http://auth.com/auth/realms/master               # Адрес OIDC сервера
    clientID: dex                                            # Client ID
    # Секретный ключ сервисного аккаунта, актуален при первом создании ресурсов Connector
    clientSecret: xxxxxxx
    redirectURI: https://example.com/dex/callback            # Адрес обратного вызова, должен совпадать с адресом, зарегистрированным у клиента OIDC

    # Конфигурация безопасности
    # Настройка проверки SSL и способа получения информации о пользователе
    insecureSkipVerify: true                                # Пропускать ли проверку SSL, рекомендуется установить в false в продакшн-среде
    getUserInfo: false                                      # Получать ли дополнительную информацию о пользователе через endpoint UserInfo

    # Конфигурация выхода из системы
    # Настройка адреса перенаправления после выхода пользователя
    logoutURL: https://test.com                            # Адрес перенаправления при выходе, можно настроить на страницу, куда будет переход после выхода пользователя

    # Конфигурация областей (scopes)
    # Настройка необходимых областей авторизации, убедитесь, что сервер OIDC поддерживает эти области
    scopes:
      - openid                                             # Обязательно, используется для базовой аутентификации OIDC
      - profile                                            # Опционально, используется для получения базовой информации о пользователе
      - email                                              # Опционально, используется для получения email пользователя

    # Конфигурация сопоставления claims
    # Настройка соответствия между возвращаемыми OIDC claims и атрибутами пользователя платформы
    claimMapping:
      email: email                                         # Сопоставление email, используется для уникальной идентификации пользователя
      groups: groups                                       # Сопоставление групп пользователя, используется для структуры организации
      phone: ""                                            # Сопоставление телефона, опционально
      preferred_username: preferred_username               # Сопоставление имени пользователя, используется для отображаемого имени

    # Конфигурация дополнительных claimextra
    # Внешние пользовательские поля будут динамически добавлены в поле spec.extra объекта пользователя
    claimExtra:
      - field: xxx            # Имя пользовательского поля
        type: string          # Тип поля соответствует определению типа языка golang. Например: string, int, bool, map[string]string, []string, []int

    # Конфигурация групп пользователей
    # Настройка параметров синхронизации групп пользователей, убедитесь, что токен содержит информацию о группах
    groupsKey: groups                                      # Указание имени ключа информации о группах
    insecureEnableGroups: false                           # Включена ли функция синхронизации групп

Соответствующие операции

Вы можете нажать на справа на странице списка или нажать Actions в правом верхнем углу на странице деталей, чтобы при необходимости обновить или удалить OIDC.

ОперацияОписание
Обновить OIDCОбновить добавленную конфигурацию OIDC. После обновления информации конфигурации OIDC исходные пользователи и методы аутентификации будут сброшены и синхронизированы в соответствии с текущей конфигурацией.
Удалить OIDCУдалить OIDC, который больше не используется платформой. После удаления OIDC все пользователи, синхронизированные на платформу через этот OIDC, получат статус Invalid (связь между пользователями и ролями сохраняется), и они не смогут войти на платформу. После повторной интеграции пользователи могут быть активированы успешным входом на платформу.

Совет: После удаления IDP, если необходимо удалить пользователей и группы пользователей, синхронизированные на платформу через OIDC, отметьте флажок Clean IDP Users and User Groups под всплывающим окном.