• Русский
  • Управление 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 issuer + /callback.

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

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

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

    6. Нажмите Create.

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

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

    Пример: настройка коннектора OIDC

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

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

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

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

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

    5. Необходимо настроить сопоставления claim.

    apiVersion: dex.coreos.com/v1
    kind: Connector
    # Connector basic information
    id: oidc               # Connector unique identifier
    name: oidc             # Connector display name
    type: oidc             # Connector type is OIDC
    metadata:
      annotations:
        cpaas.io/description: "11"  # Connector description
      name: oidc
      namespace: cpaas-system
    spec:
      config:
        # OIDC server configuration
        # Configure server connection information, including server address, client credentials, and callback address
        issuer: http://auth.com/auth/realms/master               # OIDC server address
        clientID: dex                                            # Client ID
        # Service account secret key, valid when creating Connector resources for the first time
        clientSecret: xxxxxxx
        redirectURI: https://example.com/dex/callback            # Callback address, must match the address registered by the OIDC client
    
        # Security configuration
        # Configure SSL verification and user information acquisition method
        insecureSkipVerify: true                                # Whether to skip SSL verification, it is recommended to set to false in a production environment
        getUserInfo: false                                      # Whether to obtain additional user information through the UserInfo endpoint
    
        # Logout configuration
        # Configure the redirect address after user logout
        logoutURL: https://test.com                            # Logout redirect address, can be customized to the page jumped after user logout
    
        # Scope configuration
        # Configure the required authorization scope, ensure that the OIDC server supports these scopes
        scopes:
          - openid                                             # Required, used for OIDC basic authentication
          - profile                                            # Optional, used to obtain user basic information
          - email                                              # Optional, used to obtain user email
    
        # Claim mapping configuration
        # Configure the mapping relationship between OIDC returned claims and platform user attributes
        overrideClaimMapping: false                          # Whether to enforce the claimMapping rules when standard claims are also returned
        claimMapping:
          email: email                                         # Email mapping, used for user unique identification
          groups: groups                                       # Group claim mapping. For non-standard claims, set it to the actual key, such as "cognito:groups"
          phone: ""                                            # Phone mapping, optional
          preferred_username: preferred_username               # Username mapping, used for display name
    
        # Custom claimextra configuration
        # External custom fields will be dynamically added to the user object spec.extra field
        claimExtra:
          - field: xxx            # Custom field name
            type: string          # Field type value is consistent with the definition of golang language type. For example: string, int, bool, map[string]string, []string, []int
    
        # User group configuration
        # Configure user group synchronization related parameters, ensure that the token contains group information
        groupsKey: groups                                      # Key name used to read group data. Keep it consistent with claimMapping.groups
        insecureEnableGroups: false                           # Whether to enable group synchronization (group claims may be stale until ID token refresh)

    Поля, связанные с группами OIDC

    Когда требуется синхронизировать группы пользователей из поставщика OIDC, настройте следующие поля совместно:

    ПолеОписание
    overrideClaimMappingУправляет тем, будут ли сопоставления в claimMapping переопределять поведение выбора claims по умолчанию. Установите значение true, если ваш поставщик возвращает как стандартные, так и нестандартные claims, и вы хотите принудительно использовать пользовательские сопоставления.
    claimMapping.groupsСопоставляет claim поставщика со стандартным claim groups, используемым платформой. Если ваш поставщик возвращает нестандартный ключ (например, cognito:groups), укажите в этом поле этот ключ.
    groupsKeyУказывает, какой ключ claim используется для чтения данных групп при синхронизации. Чтобы избежать несоответствий, используйте то же значение, что и в claimMapping.groups.
    insecureEnableGroupsВключает обработку group-claim для входа через OIDC. Это следует включать только тогда, когда требуется синхронизация групп и ваш поставщик возвращает group claims.

    Примечания

    • Если поставщик требует явного scope для групп, включите groups в scopes.
    • claimMapping может не переопределять стандартные claims, возвращаемые поставщиком, если для overrideClaimMapping не установлено значение true.
    • Claims групп обновляются при обновлении ID token. Изменения состава групп на стороне поставщика могут отражаться не сразу.

    Связанные операции

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

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

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