Azure active directory 添加Azure AD连接服务覆盖AAD门户中的重定向URI

Azure active directory 添加Azure AD连接服务覆盖AAD门户中的重定向URI,azure-active-directory,visual-studio-2019,connected-services,Azure Active Directory,Visual Studio 2019,Connected Services,我已经在Azure AD(aad.portal.Azure.com)中注册了一个应用程序。 我想使用此应用注册进行身份验证,使用OpenIDConnect对几个具有不同主机名的Web应用进行身份验证。我可以在门户中配置几个重定向URI 当我在Visual Studio 2019中创建一个新项目并使用“添加连接的服务”向导时,它会要求我指定是创建一个新的Azure AD应用程序(我们的AAD管理员不允许使用此选项,但我无论如何都不想这样做),还是使用现有AAD应用程序中的设置。 问题在于,无论我

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

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

问题在于,无论我在这里指定什么重定向URI,当我保存连接的服务配置时,VisualStudio都会将该重定向URI写回AAD门户,并删除我在那里已经指定的任何重定向URI

我不希望visual studio执行此操作。是否有任何方法可以抑制此覆盖行为,可能是visual studio中的设置?否则,每次创建新的VisualStudio解决方案并运行向导时,我都需要重新创建以前存在的所有URI

如果有区别,则项目类型为.net5 current mvc


谢谢。

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

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

Visual Studio添加连接服务功能默认情况下应遵循以下原则:一个应用程序注册应用于一个应用程序。因此,它会删除其他重定向url,并将您指定的url放入应用程序注册中

设置重定向url有一个变通方法,只需要执行一个小的手动操作

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

然后再次打开添加连接的服务,并根据需要修改重定向URL,例如:
https://localhost:47800/signin-oidc
。之后,别忘了添加
https://localhost:47800/signin-将oidc
手动输入应用程序注册

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

更新:


尝试直接在
launchUrlSettings.json
文件下的
launchUrl
中进行更改。请注意,真正的直接url是这个
launchUrl
+
CallbackPath
(在
appsettings.json
文件下)。因此,您还需要修改
CallbackPath
。这不会更新门户。

不幸的是,我刚刚尝试了这个,但没有成功。我有一个现有的项目,在那里我配置了AAD认证连接服务。我在VS中编辑并保存它,然后检查门户,它已经更新了门户(我在VS中指定的新重定向URI是门户上唯一的重定向URI)。另一个问题:如果我们有开发、测试和发布环境,每个环境都有自己的主机名,我们是否需要在AAD中注册4个独立的应用程序(一个用于本地主机,另一个用于其他每个Web服务器地址)?@NedBalzer尝试直接在
launchUrlSettings.json
文件下的
launchUrl
中进行更改。请注意,真正的直接url是这个
launchUrl
+
CallbackPath
(在
appsettings.json
文件下)。因此,您还需要修改
CallbackPath
。这不会更新门户。是的,你应该有单独的应用程序。谢谢@Allen——我根据你的建议标记了你的答案,直接更新json文件。