问题标签 [aad-b2c]

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 回答
115 浏览

azure-active-directory - AAD B2C 自定义策略 - 默认显示密码帮助文本

我希望使用自定义策略创建的 AAD B2C 登录流程默认显示密码帮助文本,以便用户在输入安全性不足的密码之前预先知道密码要求是什么。是否可以不将自定义 html 元素注入注册表单?

这是密码声明类型定义:

0 投票
1 回答
103 浏览

microsoft-graph-api - 使用逻辑应用中的 MS Graph 重置 Azure B2C 密码

我正在使用逻辑应用来自动创建新用户并更新 Azure B2C 租户中的属性。它适用于除密码重置之外的所有内容。当我尝试重置用户密码时,我收到以下错误消息:

我尝试向逻辑应用授予所有权限,但无法使逻辑应用正常工作。 B2C 中的 API 权限

我不知道我错过了什么。有人可以帮忙吗?

0 投票
1 回答
522 浏览

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

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

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

用户正确地完成了密码重置用户流程,它被重定向回我们的应用程序,从而将用户重定向到我们的SignIn自定义策略用户旅程!

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

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

这是 UserJourney 和 SubJourney:

0 投票
1 回答
200 浏览

azure-ad-b2c - AAD B2C 有条件的 MFA - 不注册

我们为 30k 用户和一系列应用程序使用 AAD B2C。我想逐步向一部分用户推出 MFA。条件访问策略听起来很完美,除了作为内置登录用户流程的一部分,系统会提示用户注册 MFA 并输入电子邮件/电话,即使他们不在条件访问策略范围内。这默认了缓慢推出 MFA 的目的。

此页面建议无论条件访问如何都进行注册。 https://docs.microsoft.com/en-us/azure/active-directory-b2c/conditional-access-user-flow?pivots=b2c-user-flow

我找到了通过 Graph API 更新用户身份验证电话或电子邮件的方法……但我不想这样做,因为我不确定我手头有正确的电话号码。

有没有办法延迟注册过程?

0 投票
1 回答
276 浏览

azure-ad-b2c - Azure AD B2C - 运行“自助密码重置”后,自定义策略“会话”处于不正确状态

我们有一个基于SocialAndLocalAccounts启动包的自定义策略。

我们一直在添加Home Realm Discovery基于此示例HomeRealmDiscovery-Modern的支持,以将使用第三方提供商的用户重定向到正确的登录页面 (IdP)

我们还增加了对通过第三方身份提供商登录的用户Domain Hints完全跳过登录页面的支持。

该政策根据官方文档使用新发布的自助密码重置。

有什么问题?

当用户进行“自助密码重置”时,B2C 会话处于损坏状态。如果用户被重定向回 B2C,则不会获取会话。

我们怎么能这么说?用例是什么?

重现步骤:

1:用户转到将用户重定向到 B2C 登录页面的应用程序。

2:用户输入本地帐户电子邮件 (Gmail),然后在下一个屏幕上单击“忘记密码”链接,该链接使用自助密码重置实现。

3:用户正确完成密码重置流程,最终进入“MFA”因素(短信代码)。

4:用户正确地被重定向到带有 ID 令牌的应用程序,成功登录。

6:用户使用相同的自定义策略单击指向新/不同应用程序的链接。

7:新应用程序将用户重定向到 B2C(相同的自定义策略)

预期结果:用户应该有一个有效的 B2C 会话,并且不应提示再次登录,而是重定向到具有有效id-token.

实际结果:用户被发送回新应用程序,回调 URL 中有错误消息,并由于错误重定向回 B2C 重新登录。

错误信息:

重要提示:如果用户通过正常登录流程(无密码重置),一切正常。用户可以在不同的应用程序之间切换,并且 B2C 可以正确获取会话,而不会引发错误或提示新的登录。不同应用程序之间的 SSO 按预期工作。

这是TrustFrameworkExtention包含所有逻辑并从启动包的基本文件扩展而来的完整文件: TrustFrameworkExtention.xml

0 投票
0 回答
49 浏览

azure-ad-b2c - 自助密码重置(嵌入式密码重置示例)不会使用用户已在电子邮件字段中输入的内容预填充电子邮件字段

使用自助密码重置(嵌入式密码重置示例)时,如果用户已填写电子邮件字段,并且他们单击“忘记密码”链接,则在重置密码流程中提示用户输入电子邮件再次。

有没有办法用用户已经在电子邮件字段中输入的内容预先填充它?

0 投票
2 回答
245 浏览

azure-active-directory - Azure AD B2C 和 MS Teams 应用(机器人 + 选项卡)身份验证

我们正在使用带有机器人和选项卡的 Teams 应用程序将我们的应用程序与 MS Teams 集成,我们正在努力进行身份验证。

我们的场景是:

  • 我们使用 Azure AD B2C 对我们的应用进行身份验证(使用预定义的用户流)。
  • 我们有不同的客户使用 Azure AD(每个客户都有自己的 Azure AD 租户)。我们创建了一个自定义身份提供程序,使用户能够使用他们自己的 Azure AD 凭据登录/注册我们的应用程序。
  • 我们使用“通用 Oauth 2”服务提供程序创建了一个机器人通道注册,以使用 Azure AD B2C 连接到我们的机器人。

我们的挑战是:

  • 理想情况下,我们希望在 Teams 中为我们的机器人实施 SSO,以允许我们的客户能够使用他们的 MS Teams 凭据登录我们的应用程序。我们设法按照此示例OAuthPrompt使用Teams进行身份验证,但我们看到的挑战是用户每次打开机器人时都需要登录(即刷新令牌不起作用),而且我们无法发送“ domain_hint" 查询字符串以区分我们的客户。
  • 理想情况下,我们希望仅使用一个机器人通道注册来处理身份验证可能可以通过为每个客户创建一个通道注册来实现,但从长远来看,我们需要为每个客户创建一个机器人,这可能是难以维护/避免我们的客户在其 Azure AD 上安装应用程序注册。

任何人都有过使用 Azure AD B2C 为多个 Azure AD 租户处理 MS Teams 应用程序的类似经历吗?您推荐处理这种情况的最佳方法是什么?

您的帮助将不胜感激!

提前致谢!

0 投票
1 回答
18 浏览

c# - 在启动时添加 MicrosoftIdentityWebApi 不适用于 Web 应用程序

我之所以添加这个问题,是因为我挣扎了一段时间才找到这个问题,并想在这里为任何因同一问题而烦恼的人添加参考。

在连接 Azure B2C 时,我试图让后端能够读取来自 Azure 的令牌中的声明。我验证了令牌是有效的,并且应该在 jwt.io 和示例应用程序的帮助下进行声明,并且我设置了我的应用程序以读取令牌,但是每次我的应用程序尝试读取 AuthorizationHandlerContext.User.Identity.Claims 中的声明时,它们总是空的。

进一步调查后,很明显在 Startup.cs 中我设置的身份验证从未被命中。

以下行被击中:

但实际设置选项的代码从未被击中。

如果您遇到类似的问题,请参阅下面的我的回答。

0 投票
0 回答
24 浏览

azure-ad-b2c-custom-policy - 首次登录时强制应用 MFA 重置密码

我只使用 LocalAndSocialAccountMFA 开始打包申请 MFA,并在第一次登录时使用 GitHub 示例强制重置密码:https ://github.com/azure-ad-b2c/samples/tree/master/policies/强制密码重置首次登录

当用户首次登录并被迫更改密码时,我也想添加 MFA。

任何指南将不胜感激。谢谢

0 投票
1 回答
185 浏览

c# - 通过 REST API 创建 B2C 租户返回 401/Unauthorized

我想要做的:通过REST API创建和配置 B2C 租户。

我做了什么:

我在我的默认目录中创建了一个名为 CDTester 的应用程序注册和一个秘密,然后将其添加到具有角色的目标订阅中Contributor

我从 user-secrets 加载了一个配置对象 cfg,其中包含 CDTester 的应用程序 ID 和密钥、我的默认目录的租户 ID 和目标订阅的 ID。

在代码中,我使用ConfidentialClientApplicationBuilder.

然后我使用我得到的令牌做一些事情:

  1. 我检查是否存在特定资源组
  2. 如果它不存在,我创建它
  3. 我检查 B2C 租户的所需名称是否可用
  4. 我(尝试)创建租户。

步骤 1-3 工作正常。但是第 4 步给了我一个401/Unauthorized。响应的正文被格式化为内容类型的 HTML(而不是 JSON)并且只包含

您无权查看此目录或页面。

因为步骤 1-3 有效,所以我知道我的身份验证正确。我什至可以访问 B2C 特定的 API(我在第 3 步中使用)。

接下来我进入 Portal 并成为CDTester订阅的所有者,所以不应该有任何不允许的操作。唉,无济于事,我得到了同样的结果。

作为参考,以下是我的代码的相关部分:

谷歌搜索带来的相关命中率恰好为零,甚至只是半相关命中率。现在我被困住了。