Использование Azure AD и получение роли приложения в приложении C# для Windows

У меня есть требование аутентифицировать пользователя на стороне клиента и передать токен в приложение на стороне сервера. Приложение на стороне сервера анализирует токен и в зависимости от роли возвращает результат. поэтому мы создали приложение Windows C# как клиентское и приложение Java как серверную часть.

Я пытаюсь использовать следующий образец https://docs.microsoft.com/en-us/azure/active-directory/develop/quickstart-v2-windows-desktop для аутентификации на стороне клиента и передачи токена авторизации. но я не получаю роли приложения, назначенные пользователю.

Я зарегистрировал приложение в Azure Active Directory через регистрацию приложения и добавил роли приложения в файл манифеста.

когда я получаю токен авторизации, у меня есть все детали, но роли не приходили как часть токена. не могли бы вы помочь мне, так как у меня очень ограниченные знания в Azure Active Directory

2 ответа

Чтобы получить роли приложения, следуйте этому руководству: https://docs.microsoft.com/en-us/azure/active-directory/develop/howto-add-app-roles-in-azure-ad-apps

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

после этого он должен быть в id_token. также обратите внимание, когда вы объявляете роли приложения в манифесте,

"allowedMemberTypes": [
    "User"]

Он должен содержать как минимум User, если вы хотите, чтобы роль могла быть назначена пользователям.

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

Если у вас возникли проблемы с авторизацией webAPI с ролью приложения в информации токена в соответствии с документом

If you have a backend web API which is separate from the web app, the app role assignments for the web app don't apply to the web API. 
Другие вопросы по тегам