3

鉴于通过 AAD B2C 以https://login.microsoftonline.com/tfp/MyTenantName.onmicrosoft.com/signinsingunp作为颁发者 url 保护的 azure 函数,我可以通过 msal.js 应用程序成功验证 b2c 用户,就像我尝试将颁发者 url 更新为我的 b2ctenant 域登录 url(因为这个建议将 URL 重定向到 b2clogin.com)并更新 msal.js 应用程序中的权限以匹配域(myapp.b2clogin.com/tfp/MyTenantName.onmicrosoft.com/signinsingunp) ,我收到 401 相同的天蓝色功能,任何建议将不胜感激。

以下是详细的设置细节,

提前致谢!

4

2 回答 2

2

我终于找到了解决这个问题的方法......

花了很多时间,但归结为GitHub 上提出的这个问题

本质上,我在设置我UserAgentApplication使用其他人提到的新 b2clogin.com 域时更改了权限。虽然这并没有立即奏效,但我收到了您在评论中提到的相同错误,所以我不得不设置validateAuthority: false我的配置。

我在下面提供了一个关于我如何设置的示例。Azure 中的我的 ClientID 与 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);

希望这可以帮助!

于 2019-05-21T19:03:57.803 回答
0

您需要做的就是更改颁发者 URL(您写为颁发者 URL,但必须是 .well-known 配置 URL)以匹配 b2clogin.com 域。

从上面我看到你在 Azure 函数中的 OpenID 配置 URL 是

login.microsoftonline.com/......./opendid......

但它应该与您的 b2clogin 域的静态网站的 .well-known 配置相匹配。它应该像

https://tenantname.b2clogin.com/tfp/tenantname.onmicrosoft.com/B2C_1_Policy/v2.0/.well-known/openid-configuration

于 2019-03-14T06:09:17.033 回答