首页 > 解决方案 > 添加 Azure AD 连接服务会覆盖 AAD 门户中的重定向 URI

问题描述

我已在 Azure AD (aad.portal.azure.com) 中注册了一个应用程序。 Azure AD 门户 我想使用此应用程序注册来使用 OpenIDConnect 对具有不同主机名的多个 web 应用程序进行身份验证。我可以在门户中配置多个重定向 URI。

当我在 Visual Studio 2019 中创建新项目并使用添加连接的服务向导时,它要求我指定是否创建新的 Azure AD 应用程序(我们的 AAD 管理员不允许使用此选项,但我不想这样做无论如何),或使用现有 AAD 应用程序中的设置。 添加连接的服务向导

问题是,无论我在此处指定什么重定向 URI,当我保存连接的服务配置时,Visual Studio 都会将该重定向 URI 写回 AAD 门户并删除我已经在此处指定的任何重定向 URI。

我不希望视觉工作室这样做。有没有办法抑制这种覆盖行为,也许是视觉工作室中的设置?否则,每次创建新的 Visual Studio 解决方案并运行向导时,我都需要重新创建以前存在的所有 URI。

如果有区别,项目类型是 .net5 current mvc。

谢谢。

标签: azure-active-directoryvisual-studio-2019connected-services

解决方案


我没有找到关于这种行为的官方文件,但它确实存在。

首先我们需要知道的是,虽然我们可以为多个应用程序/项目使用一个应用程序注册,但不建议这样做。因为按照最小权限的原则,我们应该给不同的应用不同的权限,而不是把所有的权限都给所有的应用。

Visual Studio Add Connected Service 功能默认应遵循此原则:一个应用程序注册应用到一个应用程序。因此它会删除其他重定向 url 并将您指定的重定向 url 放入应用程序注册中。

有一个解决方法来设置重定向 url,只需要你做一个小的手动操作。

添加连接服务时,将重定向 URL保留为空。它将使用项目的 SSL URL(例如https://localhost:44372/signin-oidc)作为项目中的重定向 url,并且不会删除应用注册中的直接 url。

然后再次打开Add Connected Service并根据需要修改重定向 URL,例如:https://localhost:47800/signin-oidc. 之后,不要忘记https://localhost:47800/signin-oidc手动添加到应用注册中。

与重新创建以前存在的所有 URI 相比,它将节省更多时间。

更新:

尝试直接在文件下进行launchUrl更改launchUrlSettings.json。请注意真正的直接网址是这个launchUrl+ CallbackPath(在appsettings.json文件下)。所以你也需要修改CallbackPath。这不会更新门户。


推荐阅读