Проблема с разрешением API при регистрации приложения Azure - PullRequest
2 голосов
/ 12 июня 2019

У меня есть приложение API, зарегистрированное в Azure Active Directory -> Регистрация приложений. Это приложение API предоставляет конечные точки, к которым будут обращаться клиенты из организации. Клиенты - это не пользователи, а фоновые службы, которые получают доступ к конечным точкам.

Когда я пытаюсь предоставить клиенту разрешение API для доступа к приложению API, я вижу разрешение приложения отключенным / серым. Нужно ли делать что-то другое при настройке разрешений API.

Пожалуйста, смотрите прикрепленное изображение.

Кто-нибудь сталкивался с этой проблемой или я делаю что-то глупое? Администратор Azure в нашей организации сказал мне, что он не может помочь с этим, поскольку он не видел ничего подобного раньше.

enter image description here

1 Ответ

2 голосов
/ 12 июня 2019

Скорее всего, вы не определили какие-либо роли (например, права доступа к приложениям) для регистрации приложения и, следовательно, когда вы пытаетесь добавить разрешения для клиентского приложения, вы видите только вариант для делегированных разрешений.

Как определить роли / разрешения приложения

Перейдите на портал Azure> Azure AD> Регистрация приложений> Регистрация для приложения API> Манифест

Найдите коллекцию appRoles в манифесте JSONи если он пуст, добавьте свои собственные appRoles здесь.Пример:

"appRoles": [
        {
            "allowedMemberTypes": [
                "Application"
            ],
            "description": "Apps that have this role have the ability to invoke my API",
            "displayName": "Can invoke my API",
            "id": "fc803414-3c61-4ebc-a5e5-cd1675c14bbb",
            "isEnabled": true,
            "lang": null,
            "origin": "Application",
            "value": "MyAPIValidClient"
        }
    ]

Обратите внимание, что я оставил «allowMemberTypes» как «Приложение», чтобы его можно было использовать только как Разрешение для приложения.Другой возможностью является использование «User» в качестве allowMemberType, но это для другого случая использования, когда вы хотите назначить роли пользователям, а это не то, что вы ищете.

Теперь, если вы перейдете кПри регистрации клиентского приложения, которому вы хотите предоставить эту роль (Разрешение приложения), вы должны увидеть «Разрешения приложения» как включенные.

Вы также должны увидеть разрешение приложения «MyAPIValidClient» с егоописание доступно для выбора.Теперь я определил только одно Разрешение приложения в приведенном выше примере, но, как вы можете видеть, это массив, поэтому вы также можете определить несколько.Просто убедитесь, что вы генерируете новые GUID, которые будут назначаться в качестве «id» для каждого разрешения приложения.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...