标签: aad-b2c

登录 Azure B2C 页面上的内容安全策略错误

在登录/重置密码流程中的不同步骤上单击“下一步/继续”按钮时,Azure B2C 页面会引发内容安全策略错误。如果我输入电子邮件(或没有电子邮件)并在登录的第一步单击“下一步”按钮,则会引发错误,但如果按 Enter 键,则不会出现错误。

图片1:

在此输入图像描述

原因是,一方面,这些页面上的 CSP 不允许使用内联代码,但另一方面,Azure B2C 插入了一些内联代码。表单中的 Fe action="javascript:void(0)"。

图片2:

在此输入图像描述

调试 js 代码显示有一行代码阻止( action="javascript:void(0)")在按 Enter 键时调用此内联操作,并且在单击“下一步”按钮时没有此类阻止。不同步骤上的表单中有几个这样的地方。

这部分代码是由Azure B2C生成的。无法更改 CSP,因为它也在 Azure 端设置。事实上,这个错误并不会阻止登录流程,而是在每个步骤上抛出很多错误

有人有同样的问题并建议如何避免吗?

content-security-policy azure-ad-b2c aad-b2c

6
推荐指数
1
解决办法
1967
查看次数

Azure AD B2C:完成密码重置流程后无法立即登录

我们创建了内置的密码重置用户流程。

我们使用 Microsoft Graph API 在 B2C 中自动注册用户,并发送一封电子邮件,其中包含密码重置流程的直接链接,以便他们在首次登录时重置密码。

用户正确完成密码重置用户流程,并将其重定向回我们的应用程序,该应用程序将用户重定向到我们的SignIn自定义策略用户旅程!

我们有 Home Realm Discovery,用户首先会看到一个屏幕来输入他们的电子邮件地址,单击“下一步”,然后输入密码。

输入电子邮件地址并单击“下一步”后,我们收到以下错误:

Sorry, but we're having trouble signing you in.
We track these errors automatically, but if the problem persists feel free to contact us. In the meantime, please try again.

Correlation ID: d5a7e1ed-a6d2-4b6d-bc87-b8612a5419b4

Timestamp: 2021-05-27 12:19:05Z

AADB2C: An exception has occurred.
Run Code Online (Sandbox Code Playgroud)

这是 UserJourney 和 SubJourney:

<UserJourneys>
<UserJourney Id="HRDSignUpSignInMFAEmebeddedPasswordReset">
  <OrchestrationSteps>

    <OrchestrationStep Order="1" Type="ClaimsExchange">
      <ClaimsExchanges>
        <ClaimsExchange Id="ParseDomainHint" TechnicalProfileReferenceId="ParseDomainHint" />
      </ClaimsExchanges>
    </OrchestrationStep>

    <!-- api.hrd reference to custom login …
Run Code Online (Sandbox Code Playgroud)

change-password azure-ad-graph-api azure-ad-b2c microsoft-graph-api aad-b2c

5
推荐指数
1
解决办法
1194
查看次数

如何使用 api 连接器和 asp net core web api 通过自定义声明丰富 azure b2c 令牌

我有一个用户流 B2C_1_singupsingin1 我添加了一个 api 连接器,将其嵌入到该流和 API 调用的端点 url 中。使用的文章: https://learn.microsoft.com/en-us/azure/active-directory-b2c/add-api-connector-token-enrichment ?pivots=b2c-user-flow

从文章中可以清楚地看出,API 连接器具体化为 HTTP POST 请求,发送自定义属性。

我的 Web api 有一个端点,代码如下:

[HttpPost("enrich")]
public IActionResult Enrich([FromBody] JsonElement body)
{
    var responseProperties = new Dictionary<string, object> //for example
    {
        { "version", "1.0.0" },
        { "action", "Continue" },
        { "postalCode", "12349" },
        { "userId", 123 } 
    };

    return new JsonResult(responseProperties) { StatusCode = 200 };
}
Run Code Online (Sandbox Code Playgroud)

当我启动自定义流程时,一切正常,我可以到达 api 中的该端点。但存在一个问题,JsonElement 主体不包含自定义属性。我在里面看到了body.ValueKind = Undefined。告诉我我做错了什么?

另外,毕竟,我想添加一个自定义的“userId”声明,其中包含数据库中的一些值。以便将其包含在后续发行的token中。上面的代码对此正确吗?

c# azure azure-ad-b2c azure-ad-b2c-custom-policy aad-b2c

3
推荐指数
1
解决办法
2269
查看次数