鉴于通过AAD B2C以https://login.microsoftonline.com/tfp/MyTenantName.onmicrosoft.com/signinsingunp作为发行者URL保护的天蓝色功能,我可以通过msal.js应用程序成功验证b2c用户,就好像我尝试将发行者URL更新为我的b2ctenant域登录URL(因为这个建议redirect URLs to b2clogin.com)和更新msal.js应用程序中的权限以匹配域(myapp.b2clogin.com/tfp/MyTenantName.onmicrosoft.com/signinsingunp),我收到401相同的azure功能,任何建议将不胜感激。
以下是详细的设置细节,
提前致谢!
我终于找到了解决方案......
这需要大量的淘汰,但这取决于这个issue raised on GitHub
基本上,我在设置我的UserAgentApplication
时使用了别人提到的新b2clogin.com域名时更改了权限。虽然这不能立即起作用,但我收到了你在评论中提到的同样的错误,所以我不得不在我的配置上设置validateAuthority: false
。
我在下面列举了一个例子,说明我如何设置我的。我的ClientID在Azure中与在MSAL.js中相同
var msalConfig = {
auth: {
clientId: "xxxx",
authority: "https://xxxx.b2clogin.com/tfp/xxxx.onmicrosoft.com/B2C_xxxx",
webApi: 'https://xxxx.azurewebsites.net',
b2cScopes: this.appConfig.b2cScopes,
validateAuthority: false
},
cache: {
cacheLocation: "localStorage",
storeAuthStateInCookie: true
}
};
this.clientApplication = new Msal.UserAgentApplication(msalConfig);
希望这可以帮助!
您需要做的就是更改Issuer URL(您写为Issuer URL但必须是.well-已知的配置URL)以匹配b2clogin.com域。
从上面我看到Azure函数的OpenID配置URL是
login.Microsoft online.com/......./open的ID......
但它应该与您的b2clogin域的静态网站的.well-known配置相匹配。应该是这样的