У вас есть одностраничное приложение (SPA), которое вызывает веб-API Azure App Service (API A). API A должен вызывать нижестоящий API (API B) от имени вошедшего в систему пользователя и применять разрешения пользователя в API B. API B уже предоставляет области (scopes) в своей регистрации приложения. Вам необходимо сохранить идентификатор пользователя при вызове API B и избежать предоставления API A широких разрешений приложения. Какие два действия следует выполнить?
Выберите ответ
Нажмите на вариант, чтобы проверить свой ответ.
Правильный ответ: В API A используйте MSAL для обмена входящего пользовательского токена на нижестоящий токен, вызвав AcquireTokenOnBehalfOf с входящим токеном-носителем (bearer token) в качестве UserAssertion, и отправьте этот токен в API B., В Azure AD добавьте API B в качестве делегированного разрешения в регистрацию приложения API A и предоставьте согласие администратора для требуемых областей (scopes)..
Почему это правильный ответ
Для сохранения идентификатора пользователя и применения его разрешений в API B, API A должен получить токен для API B от имени пользователя. Это достигается с помощью потока On-Behalf-Of (OBO). Первое правильное действие: В API A используйте MSAL для обмена входящего пользовательского токена на нижестоящий токен, вызвав AcquireTokenOnBehalfOf с входящим токеном-носителем в качестве UserAssertion, и отправьте этот токен в API B. Метод AcquireTokenOnBehalfOf в MSAL позволяет API A обменять токен, полученный от SPA, на новый токен для API B, сохраняя при этом контекст пользователя. Второе правильное действие: В Azure AD добавьте API B в качестве делегированного разрешения в регистрацию приложения API A и предоставьте согласие администратора для требуемых областей. Это необходимо, чтобы API A имел разрешение на вызов API B от имени пользователя. Делегированные разрешения позволяют приложению действовать от имени пользователя. Изменение API A для использования потока учетных данных клиента неверно, так как этот поток не сохраняет идентификатор пользователя, а использует идентификатор приложения API A. Настройка API B для использования ролей приложения вместо областей неверно, так как это не решает проблему получения токена для API B от имени пользователя и не является заменой для потока OBO.
Сдайте экзамен — без бесконечного поиска ответов
Получите все проверенные вопросы и объяснения для этого экзамена в одном месте и сэкономьте часы подготовки. 1000+ сертификаций · 20+ языков · начните бесплатно.
Сдайте экзамен быстрее → Карта не требуется