У меня есть приложение MVC, в котором я использую OpenIdConnectAuthenticationMiddleware
для аутентификации пользователя с AAD. Это приложение MVC использует несколько бэкэнд-сервисов, которые требуют контекста аутентификации пользователя.Как получить токен для последующей службы в AAD
Если я зарегистрирую эти службы отдельно в AAD, я могу получить токен для них, используя AuthenticationContext.AcquireTokenSilentAsync
. Но регистрация этих сервисов отдельно с AAD кажется неправильной, поскольку они требуют от пользователя согласия на них отдельно (они действительно являются частью приложения).
Итак, я хотел бы использовать токен JWT, который я получил от AAD, когда пользователь аутентифицировался и использовал его как токен-носитель для вызова служб нисходящего потока. Я понимаю, что эти службы должны иметь ту же аудиторию, что и приложение MVC.
Но как я могу получить этот токен JWT. Первый идентификатор ClaimPrincipal не имеет контекста начальной загрузки.
Спасибо Vittorio, я боролся с этим. У нас есть дюжина бэкэнд-услуг, но они не имеют отношения к пользователю или администратору AAD (подробности реализации). Пользователь должен согласиться только на приложение, а не на все службы, которые он использует в бэкэнд. Каким будет рекомендуемый подход? – MvdD
Пока ваше приложение перечисляет эти службы в качестве необходимых ресурсов в своем объявлении, должно быть одно приглашение. Это правда, что просмотр длинного списка строк рядом с приложением может быть запутанным для некоторых пользователей, но это должно быть одно время. Другой альтернативой является использование согласия администратора - в этом случае только администратор видит приглашение, и каждый пользователь автоматически соглашается после этого – vibronet
А, поэтому я могу перечислить эти службы в манифесте и получить одно приглашение! У вас есть указатель на дополнительную информацию об этом? – MvdD