【问题标题】:Windows Authentication (AD Authentication) to AWS Elastic Beanstalk到 AWS Elastic Beanstalk 的 Windows 身份验证(AD 身份验证)
【发布时间】:2020-12-14 09:27:53
【问题描述】:
我有一个带有本地 Active Directory 身份验证的 ASP.net MVC Web 应用程序,我想将其迁移到 AWS PaaS 服务。用于 ASP.Net MVC Web 应用程序的我的 SQL 数据库将保留在本地。
我做了一些研究,发现 AWS ECS 是一个很好的容器化功能。但我不是在寻找 IaaS 方法。
我主要寻找 PaaS 方法来迁移我的本地应用程序。
-
对于 AWS Elastic Beanstalk 网站,我没有找到启用本地 Active Directory 身份验证的选项。有可能吗?
-
我还可以使用 Windows 身份验证/AD 身份验证从 AWS Elastic Beanstalk 网站连接到本地 SQL 服务器吗?
【问题讨论】:
标签:
amazon-web-services
active-directory
azure-active-directory
amazon-elastic-beanstalk
【解决方案1】:
是的。有可能的。我正在使用它。
这需要大量的研究和反复试验。由于我们的 AWS 云 VPC 与我们的本地 AD 域位于不同的域中,并且我们的用户位于本地 AD 域中。
这是我的设置。
我们在 AWS 域(即 XYZAWS)中为我的组织设置了托管 AD,该组织名为 XYZ,它与我们的本地 AD 即 XYZ 域具有单向信任。
现在,当我们将启用 Windows 身份验证的 .Net 应用程序部署到 EB(弹性 beanstalk)时,我们的 EB 服务器正在 AWS 域中运行,即 XYZAWS,并且该 EB 服务器默认未加入域,因此您需要加入域首先是您的 EB 服务器,然后您将在 AWS 托管 AD 上进行此域加入,即 XYZAWS 域。
由于 EB 是加入 AWS 托管 AD 的域,因此不会对您的本地 AD 用户进行身份验证,因此您需要使用本地 AD 中的用户模拟您的 IIS 应用程序池。
例如,我使用用户 XYZ\service-account-user 模拟我的 IIS 身份池,正如我所说,我们在 AWS 托管 AD 和本地 AD 之间建立了一种信任方式,因此您的应用程序现在应该能够在 - prem AD 用户,因为您的应用正在作为本地 AD 服务帐户运行。
您必须在登录应用程序时包含域名
假设用户 John 必须登录到应用程序,那么他必须使用用户名“XYZ\john”和他的密码登录才能让应用程序对他进行身份验证。
我使用 .ebextensions 配置文件自动完成了整个设置。
如果我曾经写过这方面的博客,会在这里更新。