Поделиться через


Руководство по настройке Azure Active Directory B2C для работы со Strata

В этом руководстве описано, как интегрировать Azure Active Directory B2C (Azure AD B2C) с Strata Maverics Identity Orchestrator, который помогает защитить локальные приложения. Он подключается к системам удостоверений, переносит пользователей и учетные данные, синхронизирует политики и конфигурации, а также абстрагирует проверку подлинности и управление сеансами. Используйте Strata для перехода с устаревшей версии на Azure AD B2C без перезаписи приложений.

Это решение имеет следующие преимущества:

  • Единый вход клиента в локальные гибридные приложения. Azure AD B2C поддерживает единый вход клиента с Maverics Identity Orchestrator.
    • Пользователи входят с учетными записями, размещенными в Azure AD B2C или поставщике удостоверений (IdP)
    • Maverics подтверждает единый вход для приложений, которые исторически защищены устаревшими системами идентификации, такими как Symantec SiteMinder
  • Расширение стандартов единого входа в приложения. Используйте Azure AD B2C для управления доступом пользователей и включения единого входа с помощью соединителей Maverics Identity Orchestrator Security Assertion Markup Language (SAML) или OpenID Connect (OIDC)
  • Простая настройка— подключение соединителей SAML или OIDC Maverics Identity Orchestrator к Azure AD B2C

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

Чтобы приступить к работе, вам потребуется:

  • Клиент Azure AD B2C, связанный с вашей подпиской Azure.
  • Экземпляр Azure Key Vault для хранения секретов, используемых Maverics Identity Orchestrator. Подключитесь к Azure AD B2C или другим поставщикам атрибутов, таким как каталог LDAP или база данных.
  • Экземпляр Maverics Identity Orchestrator , работающий на виртуальной машине Azure или на локальном сервере. Чтобы получить программное обеспечение и документацию, перейдите по адресу strata.io Связаться с Strata Identity.
  • Локальное приложение для перехода на Azure AD B2C

Описание сценария

Интеграция Maverics Identity Orchestrator включает следующие компоненты:

  • Azure AD B2C — сервер авторизации, который проверяет учетные данные пользователя.
    • Пользователи, прошедшие проверку подлинности, получают доступ к локальным приложениям с помощью локальной учетной записи в каталоге Azure AD B2C.
  • Внешний поставщик удостоверений для социальных сетей или предприятий (IdP): поставщик OIDC, Facebook, Google или GitHub
  • Strata Maverics Identity Orchestrator: служба входа пользователя, которая передает удостоверения приложениям через заголовки HTTP.

Принцип работы системы показан на схеме архитектуры ниже.

Схема архитектуры интеграции Azure AD B2C с Maverics Identity Orchestrator для доступа к гибридным приложениям.

  1. Пользователь запрашивает доступ к локальному размещенное приложение. Maverics Identity Orchestrator выполняет запрос к приложению.
  2. Orchestrator проверяет состояние проверки подлинности пользователя. Если маркер сеанса отсутствует или маркер недопустим, пользователь переходит к Azure AD B2C для проверки подлинности.
  3. Azure AD B2C передает запрос на проверку подлинности в заданный социально-сетевой IdP.
  4. Поставщик удостоверений запрашивает у пользователя учетные данные. Может потребоваться многофакторная проверка подлинности (MFA).
  5. Поставщик удостоверений отправляет ответ проверки подлинности Azure AD B2C. Пользователь может создать локальную учетную запись в каталоге Azure AD B2C.
  6. Azure AD B2C отправляет запрос пользователя в конечную точку, указанную во время регистрации приложения Orchestrator в клиенте Azure AD B2C.
  7. Orchestrator оценивает политики доступа и значения атрибутов для заголовков HTTP, перенаправленных в приложение. Orchestrator может вызывать других поставщиков атрибутов для получения сведений для задания значений заголовка. Orchestrator отправляет запрос приложению.
  8. Пользователь проходит проверку подлинности и имеет доступ к приложению.

Maverics Identity Orchestrator

Чтобы получить программное обеспечение и документацию, перейдите по адресу strata.io Связаться с Strata Identity. Определите предварительные требования Orchestrator. Установка и настройка.

Подготовка клиента Azure AD B2C

В следующих инструкциях задокументируйте:

  • Имя и идентификатор клиента
  • Идентификатор клиента
  • Секрет клиента
  • Настроенные утверждения
  • URI перенаправления
  1. Зарегистрируйте веб-приложение в Azure Active Directory B2C в клиенте Azure AD B2C.
  2. Предоставьте приложениям разрешения на доступ к API Microsoft Graph. Используйте разрешения: offline_access, openid.
  3. Добавьте URI перенаправления, соответствующий параметру oauthRedirectURL конфигурации соединителя Orchestrator Azure AD B2C, например https://example.com/oidc-endpoint.
  4. Создание пользовательских потоков и настраиваемых политик в Azure Active Directory B2C.
  5. Добавьте поставщика удостоверений в клиент Azure Active Directory B2C. Войдите в систему пользователя с помощью локальной учетной записи, социальной сети или предприятия.
  6. Определите атрибуты, которые будут собираться во время регистрации.
  7. Укажите атрибуты, возвращаемые приложению с помощью экземпляра Orchestrator.

Примечание

Orchestrator использует атрибуты из утверждений, возвращаемых Azure AD B2C, и может получать атрибуты из подключенных систем идентификации, таких как каталоги LDAP и базы данных. Эти атрибуты находятся в заголовках HTTP и отправляются в вышестоящий локального приложения.

Настройка Maverics Identity Orchestrator

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

Требования к серверу Maverics Identity Orchestrator

Экземпляр Orchestrator можно запускать на любом сервере — как локальном, так и в общедоступной облачной инфраструктуре, например от таких поставщиков, как Azure, AWS или GCP.

  • Операционная система: REHL 7.7 или более поздней версии, CentOS 7+
  • Диск: 10 ГБ (небольшой)
  • Память: 16 ГБ
  • Порты: 22 (SSH/SCP), 443, 80
  • Корневой доступ: для задач установки и администрирования
  • Maverics Identity Orchestrator: запускается от имени пользователя maverics в systemd
  • Исходящий сетевой трафик: с сервера, на котором размещен Оркестратор удостоверений Maverics, который может достичь клиента Microsoft Entra.

Установка Maverics Identity Orchestrator

  1. Получите последнюю версию пакета RPM Maverics.

  2. Поместите пакет в систему, которую вы хотите установить Maverics. При копировании на удаленный узел используйте SSH scp.

  3. Выполните следующую команду: Используйте имя файла для замены maverics.rpm.

    sudo rpm -Uvf maverics.rpm

    По умолчанию Maverics находится в каталоге /usr/local/bin .

  4. Maverics выполняется как служба в .systemd

  5. Чтобы убедиться, что служба Maverics запущена, выполните следующую команду:

    sudo service maverics status

  6. Появится следующее сообщение (или аналогичное).

Redirecting to /bin/systemctl status maverics.service
  maverics.service - Maverics
  Loaded: loaded (/etc/systemd/system/maverics.service; enabled; vendor preset: disabled)
  Active: active (running) since Thu 2020-08-13 16:48:01 UTC; 24h ago
  Main PID: 330772 (maverics)
  Tasks: 5 (limit: 11389)
  Memory: 14.0M
  CGroup: /system.slice/maverics.service
          └─330772 /usr/local/bin/maverics --config /etc/maverics/maverics.yaml

Примечание

Если Maverics не удается запустить, выполните следующую команду:

journalctl --unit=maverics.service --reverse

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

  1. Файл по умолчанию maverics.yaml создается в каталоге /etc/maverics .
  2. Настройте Orchestrator для защиты приложения,
  3. Интеграция с Azure AD B2C и хранение.
  4. Получение секретов из Key Vault Azure.
  5. Определите расположение, из которого Orchestrator считывает свою конфигурацию.

Задание источника конфигурации с помощью переменных среды

Настройте экземпляры Orchestrator с помощью переменных среды.

MAVERICS_CONFIG

Эта переменная среды сообщает экземпляру Orchestrator, какие файлы конфигурации YAML следует использовать и где их найти во время запуска или перезапуска. Устанавливается она в файле /etc/maverics/maverics.env.

Создание конфигурации TLS Orchestrator

Поле tls в maverics.yaml объявляет конфигурации безопасности транспортного уровня, которые использует экземпляр Orchestrator. Соединители используют объекты TLS и сервер Orchestrator.

Ключ maverics зарезервирован для сервера Orchestrator. Используйте другие ключи для внедрения объекта TLS в соединитель.

tls:
  maverics:
    certFile: /etc/maverics/maverics.cert
    keyFile: /etc/maverics/maverics.key

Настройка соединителя Azure AD B2C

Экземпляры Orchestrator используют соединители для интеграции с поставщиками проверки подлинности и атрибутов. Шлюз приложений Orchestrators использует соединитель Azure AD B2C в качестве поставщика проверки подлинности и атрибутов. Azure AD B2C использует социальных удостоверений для проверки подлинности, а затем предоставляет атрибуты Orchestrator, передавая их в утверждения, заданные в http-заголовках.

Конфигурация соединителя соответствует приложению, зарегистрированного в клиенте Azure AD B2C.

  1. Из конфигурации приложения скопируйте идентификатор клиента, секрет клиента и URI перенаправления в клиент.
  2. Введите имя соединителя (например, azureADB2C).
  3. Задайте для соединителя type значение azure.
  4. Запишите имя соединителя. Это значение будет использоваться в других параметрах конфигурации.
  5. Измените authType на oidc.
  6. oauthClientID Для параметра задайте скопированный идентификатор клиента.
  7. oauthClientSecret Для параметра задайте скопированный секрет клиента.
  8. oauthRedirectURL Для параметра задайте скопированный URI перенаправления.
  9. Соединитель OIDC Azure AD B2C использует конечную точку OIDC для обнаружения метаданных, включая URL-адреса и ключи подписывания. Для конечной точки клиента используйте .oidcWellKnownURL
connectors:
  name: azureADB2C
  type: azure
  oidcWellKnownURL: https://<tenant name>.b2clogin.com/<tenant name>.onmicrosoft.com/B2C_1_login/v2.0/.well-known/openid-configuration
  oauthRedirectURL: https://example.com/oidc-endpoint
  oauthClientID: <azureADB2CClientID>
  oauthClientSecret: <azureADB2CClientSecret>
  authType: oidc

Задание Azure AD B2C в качестве поставщика проверки подлинности

Поставщик проверки подлинности определяет проверку подлинности для пользователей, которые не представляют допустимый сеанс во время запроса ресурса приложения. Azure AD конфигурации клиента B2C определяет, как пользователям запрашиваются учетные данные, при этом применяются другие политики проверки подлинности. Примером является требование второго фактора для завершения проверки подлинности и решения о том, что будет возвращено шлюзу приложений Orchestrator после проверки подлинности.

Значение для должно соответствовать значению authProvider соединителя name .

authProvider: azureADB2C

Защита локальных приложений с помощью шлюза приложений Orchestrator

Конфигурация Шлюза приложений Orchestrator объявляет, как Azure AD B2C защищает приложение и как пользователи получают к приложению доступ.

  1. Введите имя шлюза приложений.
  2. Задайте location. В примере используется корневой каталог /приложения .
  3. Определите защищенное приложение в upstream. Используйте соглашение host:port: https://example.com:8080.
  4. Задайте значения для страниц ошибки и отказа в авторизации.
  5. Определите имена заголовков HTTP и значения атрибутов для приложения, чтобы установить проверку подлинности и управление. Имена заголовков обычно соответствуют конфигурации приложения. Значения атрибутов определяются пространством имен соединителем. В этом примере значения, возвращаемые из Azure AD B2C, имеют префикс с именем azureADB2Cсоединителя . Суффикс — это имя атрибута с обязательным значением, например given_name.
  6. Задайте политики. Определены три действия: allowUnauthenticated, allowAnyAuthenticated и allowIfAny. Каждое действие связано с resource. Для этого resourceвычисляется политика .

Примечание

headers и policies используйте расширения службы JavaScript или GoLang для реализации произвольной логики.

appgateways:
  - name: Sonar
    location: /
    upstream: https://example.com:8080
    errorPage: https://example.com:8080/sonar/error
    unauthorizedPage: https://example.com:8080/sonar/accessdenied

    headers:
      SM_USER: azureADB2C.sub
      firstname: azureADB2C.given_name
      lastname: azureADB2C.family_name

    policies:
      - resource: ~ \.(jpg|png|ico|svg)
        allowUnauthenticated: true
      - resource: /
        allowAnyAuthenticated: true
      - resource: /sonar/daily_deals
        allowIfAny:
          azureADB2C.customAttribute: Rewards Member

Azure Key Vault в качестве поставщика секретов

Защитите секреты, используемые Orchestrator для подключения к Azure AD B2C и другим системам идентификации. Maverics загружает секреты в виде обычного текста из maverics.yaml, однако в этом руководстве используйте Azure Key Vault в качестве поставщика секретов.

Следуйте инструкциям из статьи Краткое руководство. Установка и получение секрета из Azure Key Vault с помощью портал Azure. Добавьте секреты в хранилище и запишите для каждого секрета SECRET NAME . Например, AzureADB2CClientSecret.

Чтобы объявить значение как секрет в файле конфигурации maverics.yaml, заключите секрет в угловые скобки:

connectors:
  - name: AzureADB2C
    type: azure
    oauthClientID: <AzureADB2CClientID>
    oauthClientSecret: <AzureADB2CClientSecret>

Значение в угловых скобках должно соответствовать SECRET NAME заданному секрету в Key Vault Azure.

Чтобы загрузить секреты из Azure Key Vault, задайте переменную MAVERICS_SECRET_PROVIDER среды в файле /etc/maverics/maverics.envс учетными данными, найденными в файле azure-credentials.json. Используйте следующий шаблон:

MAVERICS_SECRET_PROVIDER='azurekeyvault://<KEYVAULT NAME>.vault.azure.net?clientID=<APPID>&clientSecret=<PASSWORD>&tenantID=<TENANT>'

Завершение настройки

В следующих сведениях показано, как выглядит конфигурация Orchestrator.

version: 0.4.2
listenAddress: ":443"
tls:
  maverics:
    certFile: certs/maverics.crt
    keyFile: certs/maverics.key

authProvider: azureADB2C

connectors:
  - name: azureADB2C
    type: azure
    oidcWellKnownURL: https://<tenant name>.b2clogin.com/<tenant name>.onmicrosoft.com/B2C_1_login/v2.0/.well-known/openid-configuration
    oauthRedirectURL: https://example.com/oidc-endpoint
    oauthClientID: <azureADB2CClientID>
    oauthClientSecret: <azureADB2CClientSecret>
    authType: oidc

appgateways:
  - name: Sonar
    location: /
    upstream: http://example.com:8080
    errorPage: http://example.com:8080/sonar/accessdenied
    unauthorizedPage: http://example.com:8080/sonar/accessdenied

    headers:
      SM_USER: azureADB2C.sub
      firstname: azureADB2C.given_name
      lastname: azureADB2C.family_name

    policies:
      - resource: ~ \.(jpg|png|ico|svg)
        allowUnauthenticated: true
      - resource: /
        allowAnyAuthenticated: true
      - resource: /sonar/daily_deals
        allowIfAny:
          azureADB2C.customAttribute: Rewards Member

Проверка потока

  1. Перейдите по URL-адресу локального приложения https://example.com/sonar/dashboard.
  2. Orchestrator перенаправляется на страницу потока пользователя.
  3. В списке выберите поставщика удостоверений.
  4. Введите учетные данные, включая маркер MFA, если это требуется поставщику удостоверений.
  5. Вы будете перенаправлены на Azure AD B2C, который перенаправляет запрос приложения на URI перенаправления Orchestrator.
  6. Orchestrator оценивает политики и вычисляет заголовки.
  7. Появится запрошенное приложение.

Дальнейшие действия