Руководство по настройке 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
- Если у вас ее нет, получите бесплатную учетную запись Azure.
- Клиент 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.
Принцип работы системы показан на схеме архитектуры ниже.
- Пользователь запрашивает доступ к локальному размещенное приложение. Maverics Identity Orchestrator выполняет запрос к приложению.
- Orchestrator проверяет состояние проверки подлинности пользователя. Если маркер сеанса отсутствует или маркер недопустим, пользователь переходит к Azure AD B2C для проверки подлинности.
- Azure AD B2C передает запрос на проверку подлинности в заданный социально-сетевой IdP.
- Поставщик удостоверений запрашивает у пользователя учетные данные. Может потребоваться многофакторная проверка подлинности (MFA).
- Поставщик удостоверений отправляет ответ проверки подлинности Azure AD B2C. Пользователь может создать локальную учетную запись в каталоге Azure AD B2C.
- Azure AD B2C отправляет запрос пользователя в конечную точку, указанную во время регистрации приложения Orchestrator в клиенте Azure AD B2C.
- Orchestrator оценивает политики доступа и значения атрибутов для заголовков HTTP, перенаправленных в приложение. Orchestrator может вызывать других поставщиков атрибутов для получения сведений для задания значений заголовка. Orchestrator отправляет запрос приложению.
- Пользователь проходит проверку подлинности и имеет доступ к приложению.
Maverics Identity Orchestrator
Чтобы получить программное обеспечение и документацию, перейдите по адресу strata.io Связаться с Strata Identity. Определите предварительные требования Orchestrator. Установка и настройка.
Подготовка клиента Azure AD B2C
В следующих инструкциях задокументируйте:
- Имя и идентификатор клиента
- Идентификатор клиента
- Секрет клиента
- Настроенные утверждения
- URI перенаправления
- Зарегистрируйте веб-приложение в Azure Active Directory B2C в клиенте Azure AD B2C.
- Предоставьте приложениям разрешения на доступ к API Microsoft Graph. Используйте разрешения:
offline_access
,openid
. - Добавьте URI перенаправления, соответствующий параметру
oauthRedirectURL
конфигурации соединителя Orchestrator Azure AD B2C, напримерhttps://example.com/oidc-endpoint
. - Создание пользовательских потоков и настраиваемых политик в Azure Active Directory B2C.
- Добавьте поставщика удостоверений в клиент Azure Active Directory B2C. Войдите в систему пользователя с помощью локальной учетной записи, социальной сети или предприятия.
- Определите атрибуты, которые будут собираться во время регистрации.
- Укажите атрибуты, возвращаемые приложению с помощью экземпляра 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
Получите последнюю версию пакета RPM Maverics.
Поместите пакет в систему, которую вы хотите установить Maverics. При копировании на удаленный узел используйте SSH scp.
Выполните следующую команду: Используйте имя файла для замены
maverics.rpm
.sudo rpm -Uvf maverics.rpm
По умолчанию Maverics находится в каталоге
/usr/local/bin
.Maverics выполняется как служба в .
systemd
Чтобы убедиться, что служба Maverics запущена, выполните следующую команду:
sudo service maverics status
Появится следующее сообщение (или аналогичное).
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
В выходных данных отображается самая последняя запись журнала.
- Файл по умолчанию
maverics.yaml
создается в каталоге/etc/maverics
. - Настройте Orchestrator для защиты приложения,
- Интеграция с Azure AD B2C и хранение.
- Получение секретов из Key Vault Azure.
- Определите расположение, из которого 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.
- Из конфигурации приложения скопируйте идентификатор клиента, секрет клиента и URI перенаправления в клиент.
- Введите имя соединителя (например,
azureADB2C
). - Задайте для соединителя
type
значениеazure
. - Запишите имя соединителя. Это значение будет использоваться в других параметрах конфигурации.
- Измените
authType
наoidc
. -
oauthClientID
Для параметра задайте скопированный идентификатор клиента. -
oauthClientSecret
Для параметра задайте скопированный секрет клиента. -
oauthRedirectURL
Для параметра задайте скопированный URI перенаправления. - Соединитель 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 защищает приложение и как пользователи получают к приложению доступ.
- Введите имя шлюза приложений.
- Задайте
location
. В примере используется корневой каталог/
приложения . - Определите защищенное приложение в
upstream
. Используйте соглашение host:port:https://example.com:8080
. - Задайте значения для страниц ошибки и отказа в авторизации.
- Определите имена заголовков HTTP и значения атрибутов для приложения, чтобы установить проверку подлинности и управление. Имена заголовков обычно соответствуют конфигурации приложения. Значения атрибутов определяются пространством имен соединителем. В этом примере значения, возвращаемые из Azure AD B2C, имеют префикс с именем
azureADB2C
соединителя . Суффикс — это имя атрибута с обязательным значением, напримерgiven_name
. - Задайте политики. Определены три действия:
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
Проверка потока
- Перейдите по URL-адресу локального приложения
https://example.com/sonar/dashboard
. - Orchestrator перенаправляется на страницу потока пользователя.
- В списке выберите поставщика удостоверений.
- Введите учетные данные, включая маркер MFA, если это требуется поставщику удостоверений.
- Вы будете перенаправлены на Azure AD B2C, который перенаправляет запрос приложения на URI перенаправления Orchestrator.
- Orchestrator оценивает политики и вычисляет заголовки.
- Появится запрошенное приложение.