我们有一个应用程序,我们只想托管一次,但允许2个不同的域指向一个实例,然后我们根据传入的主机更改品牌。例如,https://app.abc.com
指向与https://app.def.com
相同的实例。
因此,它们不是子域,而是独立域。这意味着他们也共享相同的Azure注册应用程序但不同的返回网址https://app.abc.com/auth/openid/return
和https://app.def.com/auth/openid/return
。
然而,Azure门户提供了错误
"您不得使用超过1个外部域名"
。
有没有办法解决这个问题而不必托管同一个应用程序的2个实例,每个实例都有自己的Azure应用程序/客户端ID?
答案 0 :(得分:2)
正如Wayne所说,目前无法回复多个域名。
但是,一种解决方法是在其中一个网站中构建代理。您始终重定向到此代理,然后重定向到正确的站点。您可以使用state参数存储用户单击“登录”的“站点”,然后正确地基于该重定向。您必须小心确保令牌安全通过。
答案 1 :(得分:1)
不幸的是,你无法做到这一点。
回复网址必须全部属于同一个域。并且重定向URI必须都属于同一个域。这是a limitation for AAD B2C application Registration。
您还可以在Azure门户中看到此注释:
有没有办法解决这个问题,而无需托管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再次警告不要使用此功能,但希望他们会尽快正式支持它。