单个Azure B2C应用程序的多个域

时间:2018-04-03 10:48:13

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

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

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

然而,Azure门户提供了错误

  

"您不得使用超过1个外部域名"

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

3 个答案:

答案 0 :(得分:2)

正如Wayne所说,目前无法回复多个域名。

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

答案 1 :(得分:1)

不幸的是,你无法做到这一点。

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

您还可以在Azure门户中看到此注释:

enter image description here

  

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

对于Web API或Web App,正如我所知,目前无法实现此目的。

我建议你可以在this Uservoice Page中提出这个想法,AAD B2C团队会审核它。

希望这有帮助!

答案 2 :(得分:0)

万一有人像我今天那样偶然发现此问题,我找到了解决方法。

警告:根据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再次警告不要使用此功能,但希望他们会尽快正式支持它。