【问题标题】:Password-less authentication using corporate Active Directory on external (internet) site在外部(互联网)站点上使用公司 Active Directory 进行无密码身份验证
【发布时间】:2015-07-01 12:15:56
【问题描述】:

我需要限制对外部网站的访问,以便:

  • 公司网络中的用户可以完全访问网站的功能,
  • 那些不是 - 只有有限的功能。

在企业网络中,用户确实针对 Windows 域进行身份验证。在网络中,我可以设置一个可以进行身份​​验证的服务器/服务。这是安全的,我毫不怀疑,尤其是当它在里面的时候。

外部网站不是域的一部分。

我对自己的建议是设置一个服务,该服务将对用户进行身份验证,创建一个安全令牌,然后将用户重定向到外部站点。这样用户就可以在那里进行身份验证而无需输入密码(甚至可能没有登录)。

我有疑问:如何做到这一点?这有多安全?有多少重度/加密货币开发?

我假设安全令牌应该是有时间限制的,外部站点和内部身份验证服务都应该支持 SSL/TLS(对称/非对称密钥?)。 我在这里错过了什么吗?当然,我是,但什么?

【问题讨论】:

  • 所以您想要一个在您的网络之外托管的网站,只对您网络内的人开放,对吗?
  • 不,外部用户和企业用户都可以使用外部站点。但是外部用户只有有限的功能——他们只能访问他们的数据。企业用户可以查看所有数据。
  • 您正在寻找的是一种称为身份联合的东西。

标签: authentication active-directory one-time-password token


【解决方案1】:

使外部站点成为 SAML 2.0 服务提供商 (SP)。

设置内部 SAML 2.0 身份提供商 (IdP) 以使用 SAML 2.0 ADFS 对企业用户进行身份验证。使用 SP 发起的 SSO,并将外部站点配置为使用 HTTP-POST 移交给您的 IdP。

可以将 IdP 配置为使用能够透明地支持 NTLM 的浏览器对登录到您的 ActiveDirectory 域的用户进行身份验证。它应该只对它们进行身份验证并签署一个断言,然后将它们重定向回外部站点。如果他们没有 NTLM,系统将首先提示他们输入域凭据。

更新:正如@Steve 所指出的,外部站点仍然需要对外部用户进行身份验证。使您的外部站点成为 SAML SP 并不能解决这个问题。您可以让外部网站执行一些内置身份验证,或者您可以为外部用户使用不同的 SP 端点 (URL),并为他们使用另一个 IdP。

【讨论】:

  • 第二部分是您必须将站点配置为使用第二个 IdP 供外部用户使用,或者在站点本身内实施用户身份验证系统。
  • @alain-odea 据我了解,要配置 ADFS,需要访问域控制器吗?或者我可以创建自己的 IdP 吗?如果是后者,那怎么办?
  • 您确实需要访问域控制器才能为 ActiveDirectory 配置 SAML。 ADFS 是最直接且可能是最受支持的选项。它为您提供由 Microsoft 直接集成和维护的 SAML 2.0 IdP。有一个使用 ADFS 对 IIS 后面的 Tomcat 应用程序进行身份验证的示例,该应用程序使用 Shibboleth SP 接受来自 ADFS 的断言作为 IdP。它还提供了一个使用 ADFS 作为 SP 来接受来自 Shibboleth IdP technet.microsoft.com/en-us/library/gg317734(v=ws.10).aspx 的断言的示例
  • @alain-odea,很遗憾,我没有这样的权限(访问和控制 DC)。有没有办法实现某种自定义 IdP?
  • @prot 绝对。我安装了 Shibboleth IdP v3 并将其配置为使用笔记本电脑上的本地 LDAP 服务器。如果您想要更多即插即用的东西,有一个 docker repo 可以为您设置一个 LDAP 服务器容器。不过,您仍然需要配置 Shibboleth IdP 才能与之交谈。 github.com/osixia/docker-openldap/blob/stable/README.md
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-12
  • 2018-11-10
  • 1970-01-01
相关资源
最近更新 更多