Безопасный гибридный доступ с помощью интеграции Microsoft Entra
Идентификатор Microsoft Entra поддерживает современные протоколы проверки подлинности, которые помогают обеспечить безопасность приложений. Однако многие бизнес-приложения работают в защищенной корпоративной сети, а некоторые используют устаревшие методы проверки подлинности. Поскольку компании создают стратегии нулевого доверия и поддерживают гибридные и облачные среды, существуют решения, которые подключают приложения к идентификатору Microsoft Entra и предоставляют проверку подлинности для устаревших приложений.
Дополнительные сведения: безопасность нулевого доверия
Идентификатор Microsoft Entra id изначально поддерживает современные протоколы:
- Язык разметки заявлений системы безопасности (SAML)
- Федерация веб-служб (WS-Fed)
- OpenID Connect (OIDC)
Прокси приложения Microsoft Entra или прокси приложения Microsoft Entra поддерживает проверку подлинности kerberos и на основе заголовков. Другие протоколы, такие как Secure Shell (SSH), (Microsoft Windows NT LAN Manager) NTLM, протокол LDAP и файлы cookie, не поддерживаются. Но независимые поставщики программного обеспечения (НЕЗАВИСИМЫе поставщики программного обеспечения) могут создавать решения для подключения этих приложений с идентификатором Microsoft Entra.
Поставщики программного обеспечения могут помочь клиентам обнаруживать и переносить приложения как услуга (SaaS) в идентификатор Microsoft Entra. Они могут подключать приложения, использующие устаревшие методы проверки подлинности с идентификатором Microsoft Entra. Клиенты могут объединиться с идентификатором Microsoft Entra, чтобы упростить управление приложениями и реализовать принципы нулевого доверия.
Обзор решения
Создаваемые вами решения могут включать следующие возможности:
- Обнаружение приложений . Часто клиенты не знают о каждом используемом приложении
- Обнаружение приложений находит приложения, упрощая интеграцию приложений с идентификатором Microsoft Entra
- Миграция приложений— создание рабочего процесса для интеграции приложений с идентификатором Microsoft Entra без использования Центра администрирования Microsoft Entra
- Интеграция приложений, которые клиенты используют сегодня
- Поддержка устаревшей проверки подлинности — Подключение приложения с устаревшими методами проверки подлинности и единым входом (единый вход)
- Условный доступ . Разрешить клиентам применять политики Microsoft Entra к приложениям в решении без использования Центра администрирования Microsoft Entra
Дополнительные сведения: Что такое условный доступ?
Ознакомьтесь со следующими разделами, чтобы ознакомиться с техническими рекомендациями и рекомендациями.
Публикация приложений в Azure Marketplace
Azure Marketplace является для ИТ-администраторов доверенным источником приложений. Приложения совместимы с идентификатором Microsoft Entra и поддерживают единый вход, автоматизацию подготовки пользователей и интеграцию с внешними клиентами с автоматической регистрацией приложений.
Вы можете предварительно интегрировать приложение с идентификатором Microsoft Entra для поддержки единого входа и автоматической подготовки. См. запрос на публикацию приложения в коллекции приложений Microsoft Entra.
Мы рекомендуем стать проверенным издателем, поэтому клиенты знают, что вы доверенный издатель. См. проверку издателя.
Включение единого входа для ИТ-администраторов
Существует несколько способов включения единого входа для ИТ-администраторов в решение. См. раздел " Планирование развертывания единого входа" и "Параметры единого входа".
В Microsoft Graph применяется OIDC/OAuth. Клиенты используют OIDC для входа в решение. Используйте проблемы с идентификатором идентификатора Microsoft Entra в формате JSON (JWT) для взаимодействия с Microsoft Graph. См. Подключение OpenID на платформа удостоверений Майкрософт.
Если решение использует SAML для единого входа ИТ-администратора, токен SAML не позволит вашему решению взаимодействовать с Microsoft Graph. Вы можете использовать SAML для единого входа ИТ-администратора, но решение должно поддерживать интеграцию OIDC с идентификатором Microsoft Entra ID, чтобы он смог получить JWT из идентификатора Microsoft Entra для взаимодействия с Microsoft Graph. См. сведения о том, как платформа удостоверений Майкрософт использует протокол SAML.
Вы можете использовать один из следующих подходов SAML:
- Рекомендуемый подход SAML: создайте новую регистрацию в Azure Marketplace, которая является приложением OIDC. Клиенты добавляют приложения SAML и OIDC в свой клиент. Если приложение не в коллекции Microsoft Entra, можно начать с мультитенантного приложения, отличного от коллекции.
- Альтернативный подход SAML: клиенты могут создать регистрацию приложения OIDC в клиенте Microsoft Entra и задать URI, конечные точки и разрешения
Используйте тип предоставления учетных данных клиента, который требует, чтобы решение позволило клиентам вводить идентификатор клиента и секрет. Для решения также требуется хранить эти сведения. Получите JWT из идентификатора Microsoft Entra, а затем используйте его для взаимодействия с Microsoft Graph. См. раздел " Получение маркера". Мы рекомендуем выполнить повторную документацию по клиенту о том, как создать регистрацию приложений в клиенте Microsoft Entra. Включите конечные точки, URI и разрешения.
Примечание.
Прежде чем приложения используются для единого входа ИТ-администратора или пользователя, ИТ-администратор клиента должен согласиться с приложением в своем клиенте. См. предоставление согласия администратора на уровне клиента приложению.
Потоки проверки подлинности
Потоки проверки подлинности решения поддерживают следующие сценарии:
- ИТ-администратор клиента входит в систему с помощью единого входа для администрирования решения.
- ИТ-администратор клиента использует решение для интеграции приложений с идентификатором Microsoft Entra с Microsoft Graph
- Пользователи войдите в устаревшие приложения, защищенные вашим решением и идентификатором Microsoft Entra
ИТ-администратор клиента выполняет единый вход в решение.
Решение может использовать SAML или OIDC для единого входа, когда ИТ-администратор клиента входит в систему. Мы рекомендуем ИТ-администратору войти в решение с помощью учетных данных Microsoft Entra, что позволяет использовать текущие элементы управления безопасностью. Интеграция с идентификатором Microsoft Entra для единого входа с помощью SAML или OIDC.
На следующей схеме показан поток проверки подлинности пользователя:
- ИТ-администратор входит в решение с помощью учетных данных Microsoft Entra
- Решение перенаправляет ИТ-администратора в идентификатор Microsoft Entra с помощью SAML или запроса на вход в OIDC
- Microsoft Entra проверяет подлинность ИТ-администратора и перенаправляет их в решение с помощью токена SAML или JWT, который будет авторизован в решении.
ИТ-администраторы интегрируют приложения с идентификатором Microsoft Entra
ИТ-администраторы интегрируют приложения с идентификатором Microsoft Entra с помощью решения, которое использует Microsoft Graph для создания регистраций приложений и политик условного доступа Microsoft Entra.
На следующей схеме показан поток проверки подлинности пользователя:
- ИТ-администратор входит в решение с помощью учетных данных Microsoft Entra
- Решение перенаправляет ИТ-администратора в идентификатор Microsoft Entra с помощью SAML или запроса на вход в OIDC
- Microsoft Entra проверяет подлинность ИТ-администратора и перенаправляет их в решение с помощью токена SAML или JWT для авторизации
- Когда ИТ-администратор интегрирует приложение с идентификатором Microsoft Entra, решение вызывает Microsoft Graph с помощью JWT для регистрации приложений или применения политик условного доступа Microsoft Entra
Вход пользователей в приложения
При входе пользователей в приложения они используют OIDC или SAML. Если приложениям необходимо взаимодействовать с Защищенным API Microsoft Graph или Microsoft Entra, рекомендуется настроить их для использования OICD. Эта конфигурация гарантирует применение JWT для взаимодействия с Microsoft Graph. Если приложений не требуется взаимодействовать с Microsoft Graph или защищенными API Microsoft Entra, используйте SAML.
На следующей схеме показан поток проверки подлинности пользователей:
- Пользователь входит в приложение
- Решение перенаправляет пользователя на идентификатор Microsoft Entra с помощью SAML или запроса на вход в OIDC
- Microsoft Entra проверяет подлинность пользователя и перенаправляет их в решение с помощью токена SAML или JWT для авторизации
- Решение разрешает запрос с помощью протокола приложения
API Microsoft Graph
Рекомендуется использовать следующие API. Используйте идентификатор Microsoft Entra для настройки делегированных разрешений или разрешений приложения. Для этого решения используйте делегированные разрешения.
- API шаблонов приложений. В Azure Marketplace используйте этот API для поиска соответствующего шаблона приложения.
- Необходимые разрешения: Application.Read.All
- API регистрации приложений— создание регистрации приложений OIDC или SAML для пользователей, защищенных с помощью вашего решения
- Необходимые разрешения: Application.Read.All, Application.ReadWrite.All
- API субъекта-службы. После регистрации приложения обновите объект субъекта-службы, чтобы задать свойства единого входа.
- Необходимые разрешения: Application.ReadWrite.All, Directory.AccessAsUser.All, AppRoleAssignment.ReadWrite.All (для назначения)
- API условного доступа . Применение политик условного доступа Microsoft Entra к пользовательским приложениям
- Необходимые разрешения: Policy.Read.All, Policy.ReadWrite.ConditionalAccess и Application.Read.All
Дополнительные сведения об использовании API Microsoft Graph
Сценарии API Microsoft Graph
Используйте следующие сведения для реализации регистрации приложений, подключения устаревших приложений и включения политик условного доступа. Узнайте, как автоматизировать согласие администратора, получить сертификат подписи маркеров и назначить пользователей и группы.
Использование API Microsoft Graph для регистрации приложений с помощью идентификатора Microsoft Entra
Добавление приложений в Azure Marketplace
Некоторые приложения, используемые клиентами, находятся в Azure Marketplace. Вы можете создать решение, которое добавляет приложения во внешний клиент. Используйте следующий пример с API Microsoft Graph для поиска в Azure Marketplace для шаблона.
Примечание.
В API шаблонов приложений отображаемое имя учитывает регистр.
Authorization: Required with a valid Bearer token
Method: Get
https://graph.microsoft.com/v1.0/applicationTemplates?$filter=displayname eq "Salesforce.com"
Если вы нашли совпадение из вызова API, зафиксировать идентификатор. Выполните следующий вызов API и укажите отображаемое имя приложения в тексте JSON:
Authorization: Required with a valid Bearer token
Method: POST
Content-type: application/json
https://graph.microsoft.com/v1.0/applicationTemplates/cd3ed3de-93ee-400b-8b19-b61ef44a0f29/instantiate
{
"displayname": "Salesforce.com"
}
После вызова API создается объект субъекта-службы. Зафиксировать идентификатор приложения и идентификатор субъекта-службы для использования в следующих вызовах API.
Исправление объекта субъекта-службы с помощью протокола SAML и URL-адреса входа:
Authorization: Required with a valid Bearer token
Method: PATCH
Content-type: servicePrincipal/json
https://graph.microsoft.com/v1.0/servicePrincipals/aaaaaaaa-bbbb-cccc-1111-222222222222
{
"preferredSingleSignOnMode":"saml",
"loginURL": "https://www.salesforce.com"
}
Исправление объекта приложения с помощью URI перенаправления и URI идентификатора:
Authorization: Required with a valid Bearer token
Method: PATCH
Content-type: application/json
https://graph.microsoft.com/v1.0/applications/00001111-aaaa-2222-bbbb-3333cccc4444
{
"web": {
"redirectUris":["https://www.salesforce.com"]},
"identifierUris":["https://www.salesforce.com"]
}
Добавление приложений, не входящих в Azure Marketplace
Если в Azure Marketplace нет совпадений или интегрировать пользовательское приложение, зарегистрируйте пользовательское приложение в идентификаторе Microsoft Entra с идентификатором шаблона: 8adf8e6e-67b2-4cf2-a259-e3dc5476c621. Затем выполните следующий вызов API и укажите отображаемое имя приложения в тексте JSON:
Authorization: Required with a valid Bearer token
Method: POST
Content-type: application/json
https://graph.microsoft.com/v1.0/applicationTemplates/8adf8e6e-67b2-4cf2-a259-e3dc5476c621/instantiate
{
"displayname": "Custom SAML App"
}
После вызова API создается объект субъекта-службы. Зафиксировать идентификатор приложения и идентификатор субъекта-службы для использования в следующих вызовах API.
Исправление объекта субъекта-службы с помощью протокола SAML и URL-адреса входа:
Authorization: Required with a valid Bearer token
Method: PATCH
Content-type: servicePrincipal/json
https://graph.microsoft.com/v1.0/servicePrincipals/aaaaaaaa-bbbb-cccc-1111-222222222222
{
"preferredSingleSignOnMode":"saml",
"loginURL": "https://www.samlapp.com"
}
Исправление объекта приложения с помощью URI перенаправления и URI идентификаторов:
Authorization: Required with a valid Bearer token
Method: PATCH
Content-type: application/json
https://graph.microsoft.com/v1.0/applications/00001111-aaaa-2222-bbbb-3333cccc4444
{
"web": {
"redirectUris":["https://www.samlapp.com"]},
"identifierUris":["https://www.samlapp.com"]
}
Использование единого входа Microsoft Entra
После регистрации приложений SaaS в идентификаторе Microsoft Entra приложения должны начать использовать идентификатор Microsoft Entra в качестве поставщика удостоверений (IdP):
- Приложения поддерживают единый вход с одним щелчком мыши — идентификатор Microsoft Entra позволяет приложениям. В Центре администрирования Microsoft Entra клиент выполняет единый вход с учетными данными администратора для поддерживаемых приложений SaaS.
- Дополнительные сведения: конфигурация приложения с одним щелчком мыши для единого входа
- Приложения не поддерживают единый вход с одним щелчком мыши. Клиент позволяет приложениям использовать идентификатор Microsoft Entra.
Подключение приложениям в идентификатор Microsoft Entra с устаревшей проверкой подлинности
Ваше решение может позволить клиенту использовать функции единого входа и Microsoft Entra, даже неподдерживаемые приложения. Чтобы разрешить доступ с устаревшими протоколами, приложение вызывает идентификатор Microsoft Entra для проверки подлинности пользователя и применения политик условного доступа Microsoft Entra. Включите эту интеграцию из консоли. Создайте регистрацию приложения SAML или OIDC между решением и идентификатором Microsoft Entra.
Создание регистрации приложения SAML
Используйте следующий пользовательский идентификатор шаблона приложения: 8adf8e6e-67b2-4cf2-a259-e3dc5476c621. Затем выполните следующий вызов API и укажите отображаемое имя в тексте JSON:
Authorization: Required with a valid Bearer token
Method: POST
Content-type: application/json
https://graph.microsoft.com/v1.0/applicationTemplates/8adf8e6e-67b2-4cf2-a259-e3dc5476c621/instantiate
{
"displayname": "Custom SAML App"
}
После вызова API создается объект субъекта-службы. Зафиксировать идентификатор приложения и идентификатор субъекта-службы для использования в следующих вызовах API.
Исправление объекта субъекта-службы с помощью протокола SAML и URL-адреса входа:
Authorization: Required with a valid Bearer token
Method: PATCH
Content-type: servicePrincipal/json
https://graph.microsoft.com/v1.0/servicePrincipals/aaaaaaaa-bbbb-cccc-1111-222222222222
{
"preferredSingleSignOnMode":"saml",
"loginURL": "https://www.samlapp.com"
}
Исправление объекта приложения с помощью URI перенаправления и URI идентификаторов:
Authorization: Required with a valid Bearer token
Method: PATCH
Content-type: application/json
https://graph.microsoft.com/v1.0/applications/00001111-aaaa-2222-bbbb-3333cccc4444
{
"web": {
"redirectUris":["https://www.samlapp.com"]},
"identifierUris":["https://www.samlapp.com"]
}
Создание регистрации приложения OIDC
Используйте следующий идентификатор шаблона для пользовательского приложения: 8adf8e6e-67b2-4cf2-a259-e3dc5476c621. Выполните следующий вызов API и укажите отображаемое имя в тексте JSON:
Authorization: Required with a valid Bearer token
Method: POST
Content-type: application/json
https://graph.microsoft.com/v1.0/applicationTemplates/8adf8e6e-67b2-4cf2-a259-e3dc5476c621/instantiate
{
"displayname": "Custom OIDC App"
}
Из вызова API зафиксировать идентификатор приложения и идентификатор субъекта-службы для использования в следующих вызовах API.
Authorization: Required with a valid Bearer token
Method: PATCH
Content-type: application/json
https://graph.microsoft.com/v1.0/applications/{Application Object ID}
{
"web": {
"redirectUris":["https://www.samlapp.com"]},
"identifierUris":["[https://www.samlapp.com"],
"requiredResourceAccess": [
{
"resourceAppId": "00000003-0000-0000-c000-000000000000",
"resourceAccess": [
{
"id": "7427e0e9-2fba-42fe-b0c0-848c9e6a8182",
"type": "Scope"
},
{
"id": "e1fe6dd8-ba31-4d61-89e7-88639da4683d",
"type": "Scope"
},
{
"id": "37f7f235-527c-4136-accd-4a02d197296e",
"type": "Scope"
}]
}]
}
Примечание.
Разрешения API на resourceAccess
узле предоставляют приложению разрешения openid, User.Read и offline_access, которые обеспечивают вход. См. общие сведения о разрешениях Microsoft Graph.
Применение политик условного доступа
Клиенты и партнеры могут использовать API Microsoft Graph для создания или применения политик условного доступа приложения. Для партнеров клиенты могут применять эти политики из решения без использования Центра администрирования Microsoft Entra. Существует два варианта применения политик условного доступа Microsoft Entra:
- Назначение приложения политике условного доступа
- Создайте новую политику условного доступа и назначьте приложению его
Использование политики условного доступа
Для списка политик условного доступа выполните следующий запрос. Получите идентификатор объекта политики для изменения.
Authorization: Required with a valid Bearer token
Method:GET
https://graph.microsoft.com/v1.0/identity/conditionalAccess/policies
Чтобы исправить политику, добавьте идентификатор объекта приложения, который должен находиться в область includeApplications
в тексте JSON:
Authorization: Required with a valid Bearer token
Method: PATCH
https://graph.microsoft.com/v1.0/identity/conditionalAccess/policies/{policyid}
{
"displayName":"Existing Conditional Access Policy",
"state":"enabled",
"conditions":
{
"applications":
{
"includeApplications":[
"00000003-0000-0ff1-ce00-000000000000",
"{Application Object ID}"
]
},
"users": {
"includeUsers":[
"All"
]
}
},
"grantControls":
{
"operator":"OR",
"builtInControls":[
"mfa"
]
}
}
Создание политики условного доступа
Добавьте идентификатор объекта приложения, который должен находиться в область includeApplications
в тексте JSON:
Authorization: Required with a valid Bearer token
Method: POST
https://graph.microsoft.com/v1.0/identity/conditionalAccess/policies/
{
"displayName":"New Conditional Access Policy",
"state":"enabled",
"conditions":
{
"applications": {
"includeApplications":[
"{Application Object ID}"
]
},
"users": {
"includeUsers":[
"All"
]
}
},
"grantControls": {
"operator":"OR",
"builtInControls":[
"mfa"
]
}
}
#Policy Template for Requiring Compliant Device
{
"displayName":"Enforce Compliant Device",
"state":"enabled",
"conditions": {
"applications": {
"includeApplications":[
"{Application Object ID}"
]
},
"users": {
"includeUsers":[
"All"
]
}
},
"grantControls": {
"operator":"OR",
"builtInControls":[
"compliantDevice",
"domainJoinedDevice"
]
}
}
#Policy Template for Block
{
"displayName":"Block",
"state":"enabled",
"conditions": {
"applications": {
"includeApplications":[
"{Application Object ID}"
]
},
"users": {
"includeUsers":[
"All"
]
}
},
"grantControls": {
"operator":"OR",
"builtInControls":[
"block"
]
}
}
Автоматизация предоставления согласия администратора
Если клиент добавляет приложения из решения в идентификатор Microsoft Entra ID, вы можете автоматизировать согласие администратора с помощью Microsoft Graph. Вам нужен идентификатор объекта субъекта-службы приложения, созданный в вызовах API, и идентификатор объекта субъекта-службы Microsoft Graph из внешнего клиента.
Получите идентификатор объекта субъекта-службы Microsoft Graph, выполнив следующий вызов API:
Authorization: Required with a valid Bearer token
Method:GET
https://graph.microsoft.com/v1.0/serviceprincipals/?$filter=appid eq '00000003-0000-0000-c000-000000000000'&$select=id,appDisplayName
Чтобы автоматизировать согласие администратора, выполните следующий вызов API:
Authorization: Required with a valid Bearer token
Method: POST
Content-type: application/json
https://graph.microsoft.com/v1.0/oauth2PermissionGrants
{
"clientId":"{Service Principal Object ID of Application}",
"consentType":"AllPrincipals",
"principalId":null,
"resourceId":"{Service Principal Object ID Of Microsoft Graph}",
"scope":"openid user.read offline_access}"
}
Получение сертификата для подписи маркера
Чтобы получить общедоступную часть сертификата подписи маркера, используйте GET
из конечной точки метаданных Microsoft Entra для приложения:
Method:GET
https://login.microsoftonline.com/{Tenant_ID}/federationmetadata/2007-06/federationmetadata.xml?appid={Application_ID}
Назначить пользователей и группы
После публикации приложения в идентификатор Microsoft Entra можно назначить приложение пользователям и группам, чтобы убедиться, что оно отображается на портале Мои приложения. Это назначение находится в объекте субъекта-службы, созданном при создании приложения. Ознакомьтесь с обзором портала Мои приложения.
Получение AppRole
экземпляров приложения, возможно, связано с ним. Для приложений SaaS характерно иметь разные связанные экземпляры AppRole
. Как правило, для пользовательских приложений существует один экземпляр по умолчанию AppRole
. Получите идентификатор экземпляра AppRole
, который вы хотите назначить:
Authorization: Required with a valid Bearer token
Method:GET
https://graph.microsoft.com/v1.0/servicePrincipals/aaaaaaaa-bbbb-cccc-1111-222222222222
В идентификаторе Microsoft Entra получите идентификатор пользователя или объекта группы, который вы хотите назначить приложению. Возьмите идентификатор роли приложения из предыдущего вызова API и отправьте его с текстом исправления на субъекте-службе:
Authorization: Required with a valid Bearer token
Method: PATCH
Content-type: servicePrincipal/json
https://graph.microsoft.com/v1.0/servicePrincipals/aaaaaaaa-bbbb-cccc-1111-222222222222
{
"principalId":"{Principal Object ID of User -or- Group}",
"resourceId":"{Service Principal Object ID}",
"appRoleId":"{App Role ID}"
}
Партнерство
Чтобы защитить устаревшие приложения, используя сетевые и контроллеры доставки, корпорация Майкрософт имеет партнерские отношения со следующими поставщиками контроллера доставки приложений (ADC).
- Доступ к корпоративному приложению Akamai
- Citrix ADC
- Диспетчер политик доступа F5 BIG-IP
- Kemp LoadMaster
- Пульсовый безопасный виртуальный Диспетчер трафика
Следующие поставщики VPN-решений подключаются к идентификатору Microsoft Entra, чтобы включить современные методы проверки подлинности и авторизации, такие как единый вход и многофакторная проверка подлинности (MFA).
- Безопасный брандмауэр Cisco — безопасный клиент
- Fortinet FortiGate
- Диспетчер политик доступа F5 BIG-IP
- Palo Alto Networks GlobalProtect
- Pulse Connect Secure
Следующие программные поставщики решений периметра (SDP) подключаются к идентификатору Microsoft Entra для методов проверки подлинности и авторизации, таких как единый вход и MFA.
- Брокер доступа Datawiza
- Периметр 81
- Платформа проверки подлинности Silverfort
- Оркестратор удостоверений Strata Maverics
- Zscaler Private Access