Я использую MSAL для JavaScript в приложении реагирования для аутентификации в Azure AD. Я могу успешно аутентифицировать пользователя, получить идентификатор токена и токен доступа. Но полученный токен доступа не может получить доступ к API, защищенному с помощью Azure AD.
Все настроено найти на стороне Azure AD, так как я могу использовать полученный токен доступа для связи с API с помощью основного веб-приложения dotnet.
Разница между основным приложением dotnet и реагирующим приложением заключается в атрибуте "ресурс". Я не уверен, как включить это в запрос с MSAL.
Мой код реакции:
userAgentApplication = new UserAgentApplication(
"<clientid>",
"<azureAdUrl>",
this.authCallback,
{ redirectUri: "http://localhost:3000/", cacheLocation: "localStorage" }
);
authCallback(errorDesc, token, error, tokenType) {
if (token) console.log(token);
}
login() {
this.userAgentApplication.loginRedirect().then(function(idToken) {
this.userAgentApplication.acquireTokenSilent().then(
function(accessToken) {
console.log('Access Token: ' + accessToken);
}
);
});
}
В основном приложении dotnet я использую те же конфигурации, что и оба URL-адреса, настроенные в приложении Azure AD, с одним добавлением.
.AddOpenIdConnect(o =>
{
....
o.Resource = "GUID of the API";
});
Я не отправляю этот параметр ресурса с помощью MSAL. Не знаю, как отправить это, и если это проблема.
Любая помощь приветствуется.