问题标签 [azure-ad-b2c-custom-policy]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
1652 浏览

azure-ad-b2c - 如何解决 Azure Active Directory B2C 自定义属性中的验证错误

Azure AD B2C 自定义策略验证失败,并且没有提及导致验证错误的原因。

在我将简单的 companyName 字符串添加到注册过程之前,我已经为我的应用程序定义了自定义策略,并且一切正常。我按照本指南中详述的步骤添加了一个在注册时收集的字段。在成功上传 TrustFrameworkBase 策略后,我在上传 singup_signing 自定义策略时遇到了问题。它告诉我

验证失败:在租户“xxxxx”的策略“B2C_1A_SIGNUP_SIGNIN”中发现 1 个验证错误。策略“B2C_1A_signup_signin”的 Azure Active Directory 提供程序技术配置文件“AAD-UserReadUsingObjectId”不支持输出声明“companyName”。如果是具有默认值的声明,请将 AlwaysUseDefaultValue="true" 添加到输出声明映射中。

所以我按照建议做了,并将 AlwaysUseDefaultValue="true" 和 DefaultValue="" 属性添加到“AAD-UserReadUsingObjectId”技术配置文件中的 OutputClaim 中。这使我能够成功上传策略文件。

但是,当我测试 signup_signin 策略时,我收到一条消息,说明

无法验证提供的信息。

我也为此租户设置了 Application Insights,并看到同样模糊的错误消息

返回的错误是 400/Request_BadRequest:指定的一个或多个属性值无效。

我将声明类型添加到 FrameworkBase 中的声明模式

我将 PersistedClaim 添加到 TechnicalProfile 'AAD-UserWriteUsingLogonEmail' <PersistedClaim ClaimTypeReferenceId="companyName" />

我将 OutputClaim 添加到 TechnicalProfiles 'AAD-UserReadUsingEmailAddress' <OutputClaim ClaimTypeReferenceId="companyName" /> 和 'AAD-UserReadUsingObjectId' <OutputClaim ClaimTypeReferenceId="companyName" AlwaysUseDefaultValue="true" DefaultValue="" />

我也将 OutputClaim 添加到了 signup_signin.xml <OutputClaim ClaimTypeReferenceId="companyName" />

我希望用户已成功注册,但会收到上面的验证错误

0 投票
1 回答
77 浏览

azure-ad-b2c - 如何在 AD B2C 自定义策略中隐藏授权码验证步骤?

是否可以在不输入激活码的情况下在会员激活步骤创建自定义策略来重置密码?

我正在使用 Graph API 创建一个用户,并向指定的电子邮件地址发送一封邀请电子邮件,并将extension_activationCode声明作为令牌。

我希望用户单击该电子邮件中的链接并为其帐户设置密码。目前,UI 正在自动填充代码并显示Continue按钮,以便用户可以单击它。

我想隐藏激活码步骤 UI 但不想跳过这一步。

有没有办法对用户隐藏这一步?

0 投票
1 回答
355 浏览

azure-ad-b2c - 具有自定义 TOTP 的自定义 B2C 策略验证失败并出现错误:“启用 JavaScript 时请在内容定义中使用页面协定”

我正在研究支持自定义 TOTP 的 IEF 策略。我使用以下示例代码作为我工作的基础:https ://github.com/azure-ad-b2c/samples/tree/master/policies/custom-mfa-totp

我创建了支持 IEF 将根据策略定义发出的 TOTP 请求的服务。

我的问题是上传 IEF 策略时出现以下错误

至此,我基本上只是修改示例策略文件以包含在我的系统中工作的特定信息。示例策略文件分为两个:TrustFrameworkExtensions.xml 和 SignUpOrSignIn.xml

加载扩展文件有效,但在尝试加载 SignUpOrSignIn 文件时出现前面提到的错误。

我发现了一些其他 StackOverflow 帖子提到了类似的错误,而推荐的解决方案并不能解决问题。推荐的解决方案建议使用此处所述的相应值更新元素:内容定义并确保依赖方允许 JS 执行,如此处所述允许 JS 执行

之后,这就是我的 Policy 的 ContentDefintion 的样子:

即使有了这些更新,策略仍然无法加载,我无法尝试甚至排除故障。

关于可能导致该错误的原因的任何想法?

0 投票
1 回答
191 浏览

azure-ad-b2c - 尽管已经同意,但登录时会弹出服务条款

我正在使用基于 MSAL.js 和 Azure AD B2C 的单页应用程序以及A B2C IEF 自定义策略 - 使用“使用条款”提示和自定义 RestAPI 配置文件注册和登录来丰富输出声明。

一切似乎都很好,直到我按下应用程序的“调用 API”按钮,提示“我同意服务条款”弹出窗口:

在此处输入图像描述

这不应该发生,因为最新的 ToS 是在注册时达成的。如果我注销并再次登录,也会发生同样的情况。因此,以某种方式获取访问令牌会提示相同的弹出窗口。

我相信这个提示应该只在登录时显示(即在获取 id 令牌时),所以我的配置有问题。

顺便说一句,id 令牌对我来说看起来不错:

在此处输入图像描述

我该如何解决这个问题?


这是我正在使用的自定义策略:

0 投票
0 回答
308 浏览

azure-ad-b2c - 在 Azure Active Directory B2C 自定义策略中通过电子邮件查找现有用户

我正在 Azure AD B2C 中创建自定义策略,让受邀用户通过另一个 Azure AD(甚至 ADFS)登录。我遇到的问题是在他们登录时创建了一个新用户(而不是受邀用户)。我发现我一直在尝试使用alternativesecurityid 或objectid 在我的AAD 中查找现有用户,但两者都不匹配。所以我认为我需要通过电子邮件找到现有用户,而不是任何 ID。这也不起作用,因为我可以看到受邀用户的电子邮件位于 otherMails 和邮件属性中(通过 GraphAPI),显然我无法通过这些字段查询 B2C。

<InputClaim ClaimTypeReferenceId="emailFromSocialAccount" PartnerClaimType="signInNames.emailAddress" Required="true" />通过验证,但该字段没有任何数据。

如何找到受邀用户?

0 投票
1 回答
91 浏览

azure - 在自定义策略中使用显示控件时如何在 mfa 页面上自动填充电子邮件字段

我必须使用自定义电子邮件模板,所以我在自定义策略中添加了一个显示控件,因此我现在遇到了以下问题。

  1. 当用户登录时,会出现带有空文本框的 mfa 页面。我希望它自动填充。我按照在 Azure AD B2C 业务流程中填充电子邮件地址文本框中提供的步骤操作, 但似乎它不适用于显示控件。

  2. 如何使用 ms graph api 访问/更新“extension_mfaByPhoneOrEmail”字段。我为此找到了一个示例,但它使用了一些我在 azure 门户上找不到的“extension_mfaByPhoneOrEmail”的 id。我在哪里可以得到这个ID?“https://graph.microsoft.com/v1.0/me/extensions/{{ExtensionId}}”

0 投票
0 回答
173 浏览

azure - SignInSignup 登录后 Azure B2C 路由重置密码流只有几个用户

第一次来这里。我有一个使用 azure b2c 进行身份验证的网站。有时在成功登录后(或者我认为),用户会被重定向到密码重置流程而不是网站。这不是预期的行为,这些不是第一次使用的用户。我的用户根本无法使用该网站,因为这个问题(它在成功验证令牌后循环),即使在缓存清除之后也是如此。

我有一个用户,在他通过链接触发密码重置挑战后,他能够进入该网站。但话又说回来,注销,登录,然后不断出现循环的密码重置流程。

我创建了一个用户,其唯一目的是测试具有不同结果的行为,并不一致。

问题是,我应该在网站代码上寻找什么方法来解决这种不希望出现的行为。或者,如果首先我必须检查 azure b2c 流上的属性或标志,或者它可能是特定于用户注册表的东西。

我非常感谢任何可以帮助我解决此问题的帮助

编辑:使用 .Net Framework 4.5 和 MVC 5 c#

在有问题的用户帐户上,成功登录后,在重定向到网站时,声明值变为空。在此之后,密码重置流程触发。

用户是否有可能在 azure 中被阻止或风险标记?如果是这样,我在哪里检查它

0 投票
1 回答
343 浏览

azure-ad-b2c - 在 Azure B2C 自定义策略中保留 strongAuthenticationEmailAddress,重置 strongAuthenticationPhoneNumber,反之亦然

我能够通过修改策略扩展文件中定义的“ProfileEditWithUsername”用户旅程来编辑“strongAuthenticationEmailAddress”(https://github.com/azure-ad-b2c/samples/tree/master/policies/username-注册或登录)。我将 strongAuthenticationEmailAddress 保留在“AAD-UserWriteProfileUsingObjectId”技术配置文件中,上述用户旅程将其用作编排步骤 4 中的验证配置文件。

但是,我注意到,如果我运行策略来更改 strongAuthenticationEmailAddress,电子邮件会成功更改,但 strongAuthenticationPhoneNumber 和备用电话(用于身份验证)被设置为空白。同样,我实施了 edit-MFA 电话号码策略(https://github.com/azure-ad-b2c/samples/tree/master/policies/edit-mfa-phone-number),使用它我可以编辑strongAuthenticationPhoneNumber,但它将 strongAuthenticationEmailAddress 设置为空白。

0 投票
1 回答
46 浏览

azure-active-directory - 我正在尝试使用 web api 在 azure b2c 中读/写用户,但我获得的权限不足

我使用https://github.com/AzureADQuickStarts/B2C-GraphAPI-DotNet使用图形 apis 创建和读取用户。我已经在 b2c 中为应用程序添加了所需的权限(甚至还有一些额外的权限)。 在此处输入图像描述

当我尝试读取或写入任何用户时,它会给我一个权限不足的错误。有什么帮助吗?

0 投票
2 回答
819 浏览

azure-ad-b2c - Azure AD B2C - Populating email in input claim from previous orchestration step and Verify.email not working alongwith

First orchestration step is login- taking email output claim Second step is email verify- I want to populate email from login and verify with email OTP.

Problem- If email populated, verify button does not come. If verify button comes, email not populated.