Управление поведением проверки подлинности приложений

Свойство authenticationBehaviors объекта приложения позволяет настраивать критические изменения, связанные с выдачей маркера. Приложения могут принимать новые критические изменения, включая поведение, или продолжать использовать ранее существовавшее поведение, отключая его.

Вы можете настроить следующие варианты поведения:

Примечание.

Свойство AuthenticationBehaviors (включая coopEnforcement) доступно в Microsoft Graph версии 1.0 и бета-версии для глобальной службы. coopEnforcement недоступен в национальных облачных развертываниях.

Чтение параметра authenticationBehaviors для приложения

Свойство authenticationBehaviors возвращается только по $select запросам.

Чтобы прочитать свойство и другие указанные свойства всех приложений в клиенте, выполните следующий образец запроса. Запрос возвращает код ответа 200 OK и JSON-представление объекта приложения, в котором отображаются только выбранные свойства.

GET https://graph.microsoft.com/v1.0/applications?$select=id,displayName,appId,authenticationBehaviors

Чтобы прочитать только свойство authenticationBehaviors для одного приложения, выполните следующий образец запроса.

GET https://graph.microsoft.com/v1.0/applications/03ef14b0-ca33-4840-8f4f-d6e91916010e/authenticationBehaviors

Свойство appId также можно использовать следующим образом:

GET https://graph.microsoft.com/v1.0/applications(appId='37bf1fd4-78b0-4fea-ac2d-6c82829e9365')/authenticationBehaviors

Управление принудительным применением политик перекрестного происхождения

Свойство coopEnforcement определяет, включают ли ответы проверки подлинности Microsoft Entra для приложения принудительные заголовки Cross-Origin-Opener-Policy (COOP). COOP изолирует окна браузера от доступа открывающего браузера между источниками и помогает защитить потоки проверки подлинности в браузере. Служба применяет этот параметр для приложения, если для запроса доступна оценка переопределения COOP для каждого приложения.

Приложения, использующие проверку подлинности всплывающих окон, сначала следует внедрить COOP-совместимый поток проверки подлинности. Если ваше приложение использует MSAL.js, перейдите на MSAL.js v5 или более позднюю версию и настройте поддерживаемый мост перенаправления. Дополнительные сведения см. в разделах Миграция с браузера MSAL версии 4 на версию 5 и Настройка страницы моста перенаправления в браузере MSAL. Если пакет SDK или платформа размещения владеет всплывающим окном и обратным вызовом, обновитесь до совместимого выпуска платформы или сообщите о проблеме владельцу этой платформы.

Свойство поддерживает следующие значения:

  • true: явное принудительное применение COOP для приложения.
  • false: явное отключение принудительного применения COOP в качестве временного исключения совместимости.
  • null: удаление явного переопределения и использование службы по умолчанию.

Примечание.

coopEnforcement доступен только в глобальной службе и недоступен в национальных облачных развертываниях.

Важно!

Прежде чем присвоить coopEnforcement значение true, проверьте полный поток аутентификации приложения, включая закрытие всплывающего окна и доставку результата аутентификации в хост-приложение. Присвоение false свойству значения является временным исключением совместимости на время восстановления приложения или платформы-владельца; это не является исправлением безопасности. Срок действия исключения не истекает автоматически. Сбросьте свойство на null "после исправления" или задайте для него значение true "после исправления".

Явное включение принудительного применения COOP

В следующих примерах принудительное применение COOP явно включается для приложения.

Вариант 1

Этот шаблон указания свойства в URL-адресе запроса позволяет обновить только указанное свойство в запросе.

PATCH https://graph.microsoft.com/v1.0/applications/03ef14b0-ca33-4840-8f4f-d6e91916010e/authenticationBehaviors
Content-Type: application/json

{
    "coopEnforcement": true
}

Вариант 2

Этот шаблон указания свойства в теле запроса позволяет обновлять другие свойства одноранговых узлов в том же запросе.

PATCH https://graph.microsoft.com/v1.0/applications/03ef14b0-ca33-4840-8f4f-d6e91916010e
Content-Type: application/json

{
    "authenticationBehaviors": {
        "coopEnforcement": true
    }
}

В случае успеха эти запросы возвращают 204 No Content ответ.


Временное отключение принудительного применения COOP

В следующих примерах принудительное применение COOP явно подавляется, пока владелец приложения исправляет несовместимый поток проверки подлинности.

Вариант 1

Этот шаблон указания свойства в URL-адресе запроса позволяет обновить только указанное свойство в запросе.

PATCH https://graph.microsoft.com/v1.0/applications/03ef14b0-ca33-4840-8f4f-d6e91916010e/authenticationBehaviors
Content-Type: application/json

{
    "coopEnforcement": false
}

Вариант 2

Этот шаблон указания свойства в теле запроса позволяет обновлять другие свойства одноранговых узлов в том же запросе.

PATCH https://graph.microsoft.com/v1.0/applications/03ef14b0-ca33-4840-8f4f-d6e91916010e
Content-Type: application/json

{
    "authenticationBehaviors": {
        "coopEnforcement": false
    }
}

В случае успеха эти запросы возвращают 204 No Content ответ. Заголовок Report-Only COOP может все еще присутствовать. После исправления приложения или платформы-владельца задайте для свойства значение true "Управляемая проверка" или измените его значение null "Использовать службу по умолчанию".


Восстановление службы по умолчанию

В следующих примерах явное переопределение удаляется.

Вариант 1

Этот шаблон указания свойства в URL-адресе запроса позволяет обновить только указанное свойство в запросе.

PATCH https://graph.microsoft.com/v1.0/applications/03ef14b0-ca33-4840-8f4f-d6e91916010e/authenticationBehaviors
Content-Type: application/json

{
    "coopEnforcement": null
}

Вариант 2

Этот шаблон указания свойства в теле запроса позволяет обновлять другие свойства одноранговых узлов в том же запросе.

PATCH https://graph.microsoft.com/v1.0/applications/03ef14b0-ca33-4840-8f4f-d6e91916010e
Content-Type: application/json

{
    "authenticationBehaviors": {
        "coopEnforcement": null
    }
}

В случае успеха эти запросы возвращают 204 No Content ответ. Чтобы подтвердить состояние сброса, прочтите приложение с помощью $select=id,appId,authenticationBehaviors. Если у приложения нет другого явного поведения аутентификации, authenticationBehaviors имеет значение null. Если настроено другое поведение проверки подлинности, сложный объект остается на месте, а параметр coopEnforcement опускается.


Примечание.

В текущей бета-версии, если coopEnforcement уже отсутствует, может вернуться 400 Request_BadRequestдругой запрос на сброс. Сначала прочтите приложение и обработайте пропущенное свойство как уже сброшенное.

Предотвращение отправки утверждений электронной почты с непроверенными владельцами доменов

Как описано в советах по безопасности Майкрософт "Потенциальный риск повышения привилегий в приложениях Microsoft Entra", приложения никогда не должны использовать утверждение по электронной почте в целях авторизации. Если ваше приложение использует утверждение электронной почты для авторизации или идентификации основного пользователя, оно подвергается атакам с целью повышения привилегий и учетных записей и привилегий. Этот риск несанкционированного доступа особенно проявляется в следующих сценариях:

  • Если атрибут mail объекта пользователя содержит адрес электронной почты с непроверенным владельцем домена
  • Для многотенантных приложений, где пользователь из одного клиента может повысить свои права доступа к ресурсам другого клиента путем изменения атрибута mail

В настоящее время по умолчанию удаляются адреса электронной почты непроверенных владельцев доменов в утверждениях, за исключением однотенантных приложений и мультитенантных приложений, в которых ранее выполнялись операции входа с непроверенными электронными адресами. Если ваше приложение попадает в одно из этих исключений и вы хотите удалить непроверенные адреса электронной почты, задайте для свойства removeUnverifiedEmailClaimauthenticationBehaviors значение true , показанное в следующих примерах. Запрос возвращает код отклика 204 No Content.

Удаление адресов электронной почты с непроверенными владельцами доменов из утверждений

Вариант 1

Этот шаблон указания свойства в URL-адресе запроса позволяет обновить только указанное свойство в запросе.

PATCH https://graph.microsoft.com/v1.0/applications/03ef14b0-ca33-4840-8f4f-d6e91916010e/authenticationBehaviors
Content-Type: application/json

{
    "removeUnverifiedEmailClaim": true
}

Вариант 2

Этот шаблон указания свойства в теле запроса позволяет обновлять другие свойства одноранговых узлов в том же запросе.

PATCH https://graph.microsoft.com/v1.0/applications/03ef14b0-ca33-4840-8f4f-d6e91916010e
Content-Type: application/json

{
    "authenticationBehaviors": {
        "removeUnverifiedEmailClaim": true
    }
}

Принимать адреса электронной почты с непроверенными владельцами доменов в заявках

Вариант 1

PATCH https://graph.microsoft.com/v1.0/applications/03ef14b0-ca33-4840-8f4f-d6e91916010e/authenticationBehaviors
Content-Type: application/json

{
    "removeUnverifiedEmailClaim": false
}

Вариант 2

PATCH https://graph.microsoft.com/v1.0/applications/03ef14b0-ca33-4840-8f4f-d6e91916010e
Content-Type: application/json

{
    "authenticationBehaviors": {
        "removeUnverifiedEmailClaim": false
    }
}

Восстановить поведение по умолчанию

Вариант 1

PATCH https://graph.microsoft.com/v1.0/applications/03ef14b0-ca33-4840-8f4f-d6e91916010e/authenticationBehaviors
Content-Type: application/json

{
    "removeUnverifiedEmailClaim": null
}

Вариант 2

PATCH https://graph.microsoft.com/v1.0/applications/03ef14b0-ca33-4840-8f4f-d6e91916010e/
Content-Type: application/json

{
    "authenticationBehaviors": {
        "removeUnverifiedEmailClaim": null
    }
}

Предоставление расширенного доступа к Azure AD Graph до 31 августа 2025 г.

По умолчанию приложения, созданные после 31 августа 2024 г., получают ошибку 403 Unauthorized при выполнении запросов к API Graph Azure AD, если только они не настроены на разрешение расширенного доступа Azure AD Graph. Кроме того, необходимо настроить существующие приложения, созданные до 31 августа 2024 г. и отправляющие запросы к API Graph Azure AD, чтобы разрешить расширенный доступ к Azure AD Graph к 1 февраля 2025 г. Этот расширенный доступ будет доступен только до 30 июня 2025 г., когда Azure AD Graph будет полностью снят с учета. После этой даты все приложения получают сообщение об 403 Unauthorized ошибке при выполнении запросов к API Graph Azure AD независимо от их конфигурации расширенного доступа. Дополнительные сведения см. в обновлении за июнь 2024 г. о прекращении Azure AD API Graph поддержки.

В следующем запросе показано, как обновить приложение, чтобы включить расширенный доступ к Azure AD Graph. В этом примере используется идентификатор объекта, а не идентификатор приложения. Запрос возвращает код отклика 204 No Content.

Вариант 1

PATCH https://graph.microsoft.com/v1.0/applications/5c142e6f-0bd3-4e58-b510-8a106704f44f/authenticationBehaviors
Content-Type: application/json

{
    "blockAzureADGraphAccess": false
}

Вариант 2

PATCH https://graph.microsoft.com/v1.0/applications/5c142e6f-0bd3-4e58-b510-8a106704f44f
Content-Type: application/json

{
    "authenticationBehaviors": {
        "blockAzureADGraphAccess": false
    }
}