Обзор
Многие организации спрашивали, можно ли по утверждениям (claims) в токене безопасности, например в ответе SAML или токене OAuth, определить, прошёл ли пользователь многофакторную проверку подлинности (MFA). В этой статье я объясню, как Entra ID (ранее Azure AD) включает эту информацию в токены безопасности и как проверить её для вашего сценария.
Что такое утверждения проверки подлинности
Утверждения проверки подлинности SAML и OAuth
- Токены SAML: Entra ID использует имя утверждения
http://schemas.microsoft.com/claims/authnmethodsreferences, чтобы указать метод проверки подлинности, использованный в процессе входа. - Токены OAuth: значение
amr(Authentication Methods References — ссылки на методы проверки подлинности) используется для указания метода проверки подлинности в токенах OAuth.
Конфигурация Entra ID
Хорошая новость: Entra ID по умолчанию включает утверждение http://schemas.microsoft.com/claims/authnmethodsreferences, чтобы указать, была ли выполнена MFA. Дополнительная настройка на стороне Entra ID не требуется.
Как проверить утверждения MFA в токенах безопасности
Случай 1: вход только по паролю (без MFA)
Если пользователь входит только по паролю (без MFA), утверждение http://schemas.microsoft.com/claims/authnmethodsreferences будет иметь одно значение:
- Значение утверждения:
http://schemas.microsoft.com/ws/2008/06/identity/authenticationmethod/password
Пример утверждения в токене:
<Attribute Name="http://schemas.microsoft.com/claims/authnmethodsreferences">
<AttributeValue>http://schemas.microsoft.com/ws/2008/06/identity/authenticationmethod/password</AttributeValue>
</Attribute>
Случай 2: вход по паролю и с MFA
Если пользователь входит и по паролю, и с MFA (например, с помощью приложения для проверки подлинности или другого метода проверки), утверждение http://schemas.microsoft.com/claims/authnmethodsreferences будет включать два значения:
- Значения утверждения:
http://schemas.microsoft.com/ws/2008/06/identity/authenticationmethod/passwordhttp://schemas.microsoft.com/claims/multipleauthn
Пример утверждения в токене:
<Attribute Name="http://schemas.microsoft.com/claims/authnmethodsreferences">
<AttributeValue>http://schemas.microsoft.com/ws/2008/06/identity/authenticationmethod/password</AttributeValue>
<AttributeValue>http://schemas.microsoft.com/claims/multipleauthn</AttributeValue>
</Attribute>
Как проверить выполнение MFA
Чтобы проверить, была ли выполнена MFA, достаточно проверить наличие значения http://schemas.microsoft.com/claims/multipleauthn в утверждении с именем http://schemas.microsoft.com/claims/authnmethodsreferences.
- Если значение присутствует: MFA была выполнена.
- Если значение отсутствует: пользователь вошёл только по паролю.
Почему это важно
Проверяя утверждения в токенах безопасности, можно программно подтвердить, применялась ли MFA при проверке подлинности. Это особенно полезно для организаций, которым нужно обеспечить соответствие политикам безопасности или интегрироваться со сторонними поставщиками, требующими проверки MFA.
Заключение
Entra ID упрощает проверку утверждений MFA в токенах безопасности, включая необходимую информацию по умолчанию. Независимо от того, работаете ли вы с токенами SAML или OAuth, утверждение http://schemas.microsoft.com/claims/authnmethodsreferences предоставляет сведения, необходимые для определения, была ли выполнена MFA в процессе входа пользователя.
Если вы внедряете это в своей организации или вам нужно поделиться этим с партнёром или поставщиком, просто укажите им соответствующие значения утверждений, описанные выше.