Настройка разрешений приложений в Azure AD

Фон

У меня есть веб-API, зарегистрированный в Azure AD и защищенный с помощью WindowsAzureActiveDirectoryBearerAuthentication (токен носителя OAuth2). Это сценарий типа B2B, в котором нет интерактивных пользователей - приложения, вызывающие API, являются фоновыми приложениями, похожими на демоны. Поэтому мне не нужно никакого согласия - я просто хочу, чтобы доверенные приложения могли вызывать API, а другие приложения - даже если они представляют действительный токен OAuth - должны быть отклонены.

Что я пробовал

Этот образец казалось, описал мой сценарий почти точно. Однако способ определения, является ли вызывающий объект доверенным приложением или нет, заключается в сравнении идентификатора клиента, представленного в заявке вызывающего абонента, с жестко заданным значением. Очевидно, что вы можете хранить список доверенных клиентских идентификаторов извне вместо жесткого кодирования, но мне кажется, что я должен быть в состоянии выполнить это с помощью конфигурации на портале AAD, так что а) мне не нужно вести список клиентских идентификаторов и б) Мне не нужно писать собственную логику авторизации.

Кажется, что я должен иметь возможность определить разрешение для моего API, предоставить это разрешение каждому вызывающему приложению в AAD (или единовременное согласие администратора), а затем в моем API просто проверить наличие этого разрешения вscp Запрос.

Глядя на портал, кажется, что именно для этого предназначены разрешения приложений:

Я могу просто создать разрешение через манифест приложения. К сожалению, я не могу понять, как указать, что это разрешение приложения, а не делегированное разрешение! Я пытался изменитьtype от пользователя к администратору, как описано наMSDN, но это, казалось, не имело никакого эффекта.

"oauth2Permissions": [
{
  ...
  "type": "Admin",
  ...
}
Вопрос

Правильно ли я считаю, что разрешения для приложений - лучшее решение для моего сценария? Если да, то как мне это настроить? Или, как я боюсь, это еще одна функция, которая есть на The Roadmap ™, но в настоящее время не работает?

Ответы на вопрос(1)

Ваш ответ на вопрос