• Русский
  • Управление 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
    
        # 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 provider, настройте вместе следующие поля:

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

    Примечания

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

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

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

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

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