我正在尝试使用 @azure/msal-angular 从 Azure Active 目录注册用户,更准确地说,我尝试了以下教程
这些是我对项目所做的更改
export function MSALInstanceFactory(): IPublicClientApplication {
return new PublicClientApplication({
auth: {
clientId: 'my_real_client_id,
redirectUri: 'http://localhost:4200',
authority: 'https://login.microsoftonline.com/my_real_tenant_id',
postLogoutRedirectUri: '/'
},
cache: {
cacheLocation: BrowserCacheLocation.LocalStorage,
storeAuthStateInCookie: isIE, // set to true for IE 11
},
system: {
loggerOptions: {
loggerCallback,
logLevel: LogLevel.Info,
piiLoggingEnabled: false
}
}
});
}
export function MSALInterceptorConfigFactory(): MsalInterceptorConfiguration {
const protectedResourceMap = new Map<string, Array<string>>();
protectedResourceMap.set('https://graph.microsoft.com/v1.0/me', ['user.read']);
protectedResourceMap.set('http://localhost:5000/', ['profile']);
return {
interactionType: InteractionType.Redirect,
protectedResourceMap
};
}
问题是 MsalInterceptor 将V1令牌添加到 URL 以请求我的 API 需要V2。
Azure 配置为 accessTokenAcceptedVersion: 2
如果需要,我可以提供更多信息
更新
在我的情况下,问题是由于指定的范围, “user.read”和“profile”的 API都需要 V1 accessToken