• Русский
  • Управление 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 Connector

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

    Примечания

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

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

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

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

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