本地主机和生产环境的 Azure Active Directory 应用程序注册

Posted

技术标签:

【中文标题】本地主机和生产环境的 Azure Active Directory 应用程序注册【英文标题】:Azure active directory application registration for localhost and production 【发布时间】:2019-03-12 10:42:40 【问题描述】:

我成功注册了我的 ASP.NET MVC 应用程序以使用 Azure AD。目前登录 URL 参数(Azure Active Directory->应用注册->新应用注册)看起来像https://localhost:44302/

但对于生产来说,它显然会是另一个(比如,https://mycoolapp.com)

应该如何设置应用程序,以便我可以在本地(例如用于调试)和生产环境中使用 Azure AD。

每次都更改登录 URL 参数似乎不是一个好的选择。

【问题讨论】:

【参考方案1】:

首先,您无需每次更改登录 URL 即可轻松运行。您只需要确保这两个 URL.. 即 https://localhost:44302/ 和 https://mycoolapp.com 在此应用程序的回复 URL 中可用。

您在创建应用注册时提供的登录 URL 值包含在两个位置。它成为您的 Web 应用程序的“属性”下的主页 URL,并且它还被添加为您的 Web 应用程序的回复 URL 集合中的第一个 URL。只需确保在您的应用注册后将第二个 URL 添加到回复 URL 集合即可。

附带说明,即使您可以使用单个应用注册来进行生产和本地调试,但您可能需要考虑为生产和本地开发设置两个单独的应用程序注册,并授予生产权限如果有意义,仅适用于管理员/开发人员的应用程序。

想象一下任何敏感设置,例如,如果您为 Web 应用程序使用密钥,即使在调试代码时,您可能也不希望您的开发团队有权访问您的生产应用程序注册的密钥。您可以随时根据配置更改在 dev v/s 生产代码中使用的应用注册。

在托管服务标识非常合适的情况下,有些令人头疼的问题,但是这是否有意义与这个讨论有点不同。

【讨论】:

你的意思是通过web.config转换来改变ClientId和RedirectUrl吗? 1.使其工作的简单方法 - 只需转到应用程序设置的“回复 URL”,并确保生产和本地 URL 都可用。无论现在缺少哪个,添加它,然后单击保存。看看我在回答中的第二张截图 2.更长的路线(仅当您想在本地开发应用程序注册与生产应用程序注册之间保持分离时)-仅在这种情况下..您可以创建两个单独的应用程序注册..一个带有生产登录 URL,另一个带有本地登录 URL .. 然后如您所说.. 决定 web.config 转换使用哪个 ClientID。这不是唯一的方法,只是一个选项,因此我说您可以选择一个.. 1(简单方式)或 2(更长的路线),具体取决于您的应用场景。 我确实确保生产和本地主机 URL 都可用,但是登录后生产仍然重定向到本地主机。screencast.com/t/L2ScpuZWx 我想知道生产(或本地主机)环境应该如何知道哪个回复 url选择? 好的,知道了。我想这可能是因为从配置中读取的固定重定向 URL 就像在此处的 ASP.NET MVC 示例 docs.microsoft.com/en-us/azure/active-directory/develop/… 中一样。如果您也是这种情况,请确保使用配置转换为生产 ("mycoolapp.com") 与本地 ("localhost:44302") 设置不同的值。现在,由于您在 App Registration 的回复 URL 集合中将它们都作为有效的回复 URL。它适用于生产和本地。试试看。【参考方案2】:

我会将生产 URL 指定为登录 URL,将生产 + localhost 指定为重定向 URL(因为您可以添加 multiple 重定向 URL!)。

见:Register a new application using the Azure portal

【讨论】:

我已经检查过:如果我添加 localhost:44302 以在门户上回复 URL,它会在登录后将我重定向到 localhost(生产,xyz.azurewebsites.net)我没有明白你的意思在 和生产 + localhost 作为重定向 URL 您可以添加多个回复网址 我确实添加了多个网址

以上是关于本地主机和生产环境的 Azure Active Directory 应用程序注册的主要内容,如果未能解决你的问题,请参考以下文章

spring 项目分开发和生产环境

将本地设备连接到 Azure Active Directory 域服务

Azure Active Directory密码同步问题

用 Docker Machine 创建 Azure 虚拟主机

用 Docker Machine 创建 Azure 虚拟主机

Azure Active Directory document ---reading notes