gpt4 book ai didi

angular - Angular 和 microsoft msal 的 acquireTokenSilent 失败并显示 AADB2C90077/AADB2C90205

转载 作者:行者123 更新时间:2023-12-02 07:58:30 33 4
gpt4 key购买 nike

我尝试使用 angular9 和 microsoft/msal 从 AAD B2C 配置获取 token

我的模块配置如下所示;

MsalModule.forRoot(
{
auth: {
clientId: "xxxxxxxxxxxxxxxxx",
authority:
"https://login.microsoftonline.com/tfp/isthereanynewscodeblast.onmicrosoft.com/B2C_1_itansignup",
validateAuthority: false,
},
cache:{
cacheLocation:"localStorage",
storeAuthStateInCookie:true
}
}
),

这用于登录并且有效。我能够获得这样的基本信息: enter image description here

接下来,一旦登录,我就会尝试获取更多图形数据或自定义范围的数据,如下所示:

getToken() {
const accessTokenRequest = {
scopes: [
"https://graph.microsoft.com/User.Read",
// // "https://isthereanynewscodeblast.onmicrosoft.com/05cd7635-e6f4-47c9-a5ce-8ec04368b297/application_reader",
// // "https://isthereanynewscodeblast.onmicrosoft.com/05cd7635-e6f4-47c9-a5ce-8ec04368b297/application_writer",
],
clientId: "xxxxxxxxxxxxxxxx",
authority: "https://login.microsoftonline.com/tfp/isthereanynewscodeblast.onmicrosoft.com/B2C_1_itansignup",
redirectUri: "http://localhost:4200",
// postLogoutRedirectUri: 'http://localhost:4200/',
};
this.authService
.acquireTokenSilent(accessTokenRequest)
.then((res) => {
console.log("acquireTokenPopup");
this.token = res.accessToken;
this.getUser();
})
.catch((e) => {
console.log("acquireTokenPopup catch");
console.log(e);
});
}

获取 token 失败并出现以下错误:

InteractionRequiredAuthError: AADB2C90077: User does not have an existing session and request prompt parameter has a value of 'None'.

我不知道我做错了什么或在哪里寻找答案:

  • 我的范围看起来很可靠(^C^V - 名称和链接)

  • 我尝试将用户流 session 行为更改为禁用

  • 更改的 acquireTokenPopup 返回此错误:

    服务器错误:AADB2C90205:此应用程序没有足够的权限对​​此 Web 资源执行该操作。

最佳答案

首先,B2C 中的 microsoftonline.com URL 已弃用 ( link )。您应该使用这样的内容作为您的权限:

`https://${tenant}.b2clogin.com/${tenant}.onmicrosoft.com/${policyId}`

此外,目前无法代表 B2C 用户访问 MS Graph API。因此,您不应指定 MS Graph API 范围。您应该能够为已注册为 B2C 应用程序的 API 指定范围:

app.acquireTokenSilent({ scopes: ['api-client-id/ScopeName'] });

或者,如果您想要 id token ,您可以指定客户端 id:

app.acquireTokenSilent({ scopes: [clientId] });

关于angular - Angular 和 microsoft msal 的 acquireTokenSilent 失败并显示 AADB2C90077/AADB2C90205,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61148741/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com