【问题标题】:Multiple domains for single Azure B2C Application单个 Azure B2C 应用程序的多个域
【发布时间】:2018-09-12 16:01:35
【问题描述】:

我们有一个应用程序,我们只想托管一次,但允许 2 个不同的域指向一个实例,然后我们根据传入的主机更改品牌。例如https://app.abc.com 指向与https://app.def.com 相同的实例。

所以它们不是子域,而是独立的域。这意味着它们还共享相同的 Azure 注册应用程序,但返回 URL 的 https://app.abc.com/auth/openid/returnhttps://app.def.com/auth/openid/return 不同。

但是,Azure 门户给出了错误

“您不能使用超过 1 个外部域”

有没有办法解决这个问题,而不必托管同一应用程序的 2 个实例,每个实例都有自己的 Azure 应用程序/客户端 ID?

【问题讨论】:

标签: azure azure-active-directory azure-ad-b2c


【解决方案1】:

如果有人像我今天一样偶然发现这个问题,我找到了解决方法。

注意:根据 Azure 门户中 MS 的警告(见第二张截图),MS 不正式支持此方法


1) 在您的 B2C 租户中,导航“所有服务--> 搜索“应用注册”--> 单击“应用注册” All services --> App registrations screenshot

2) 在应用程序列表中找到您的应用程序并单击它。注意来自 MS 的警告(见截图) App registration list screenshot

3) 单击“身份验证”并将您的重定向 URI 添加到列表中。这是与非 B2C 租户相同的 UI。 Redirect URI list screenshot


它允许我输入具有不同域的重定向 URI。它似乎没有“Azure AD B2C”刀片的限制。我不得不等待一分钟才能传播更改,但它对我有用。我不会很快接受这个,所以我现在可以这样做。当我决定上线时,如果 MS 仍然没有为这种方法开绿灯,我可能会找到其他方法来做我想做的事。

再次,MS 警告目前不要使用它,但希望他们会尽快正式支持它。

【讨论】:

  • 有趣的发现。我今天还刚刚发现,现在可以在普通的 b2c 刀片中添加任何域,即使回复 URL 工具提示说这是不可能的。它有效。
【解决方案2】:

正如韦恩所说,目前无法回复多个域。

但是,一种解决方法是在其中一个网站中构建代理。你总是重定向到这个代理,然后它会重定向到正确的站点。您可以使用 state 参数来存储用户从哪个“站点”单击“登录”,然后正确地基于该重定向。您必须小心确保令牌安全通过。

【讨论】:

【解决方案3】:

很遗憾,您无法做到这一点。

回复 URL 必须都属于同一个域。并且重定向 URI 必须都属于同一个域。这是a limitation for AAD B2C application Registration

您还可以在 Azure 门户中查看此说明:

有没有办法解决这个问题而不必托管 2 个实例 相同的应用程序,每个都有自己的 Azure 应用程序/客户端 ID?

据我所知,对于 Web API 或 Web App,目前还没有办法实现。

我建议您可以在this Uservoice Page 中投票这个想法,AAD B2C 团队将对其进行审核。

希望这会有所帮助!

【讨论】:

    猜你喜欢
    • 2018-02-09
    • 2016-03-09
    • 2022-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-31
    相关资源
    最近更新 更多