Приоритет разрешений Azure Delegated и Application

Я создал пример веб-приложения, вызывающего веб-API и использующего поток предоставления кода oAuth для Azure AD. Приложение зарегистрировано в Azure AD, и я также получил необходимые разрешения через портал Azure. Кажется, все работает, как ожидалось.

Есть два варианта разрешения

  • Разрешение делегата

  • Разрешение на применение

Рекомендуется ли использовать смешанный набор разрешений (приложение + делегат) для вашего приложения?

Если я предоставлю аналогичное разрешение моему API как для Делегата, так и для Приложения, какой набор разрешений будет иметь приоритет? Будет ли это зависеть от потока oAuth, например, предоставления кода или неявного?

В моем коде, как я могу дифференцировать эти наборы разрешений при доступе к одному и тому же ресурсу. Я хочу вызывать в контексте пользователя только те же типы разрешений для приложений, которые уже есть?

1 ответ

Решение

Разрешения приложений и делегированные разрешения полностью независимы друг от друга.

Разрешения приложений применяются, когда вы следуете потоку учетных данных клиента (также известному как поток только для приложений). Когда вы будете следовать этому потоку, AAD попытается предоставить разрешения клиентскому приложению на основе разрешений приложения, которые он предварительно определил при регистрации приложения. Эти разрешения появятся в маркере только для приложений в role Запрос.

Практически в любом другом потоке, в котором участвует пользователь ( От имени, Поток предоставления кода авторизации, Поток неявного предоставления и т. Д.), AAD попытается предоставить клиенту разрешения на основе предопределенных делегированных разрешений. Эти разрешения появятся в жетонах App+User в scp (объем) претензии.

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

Другие вопросы по тегам