Authentication 在外部(internet)站点上使用公司Active Directory进行无密码身份验证

Authentication 在外部(internet)站点上使用公司Active Directory进行无密码身份验证,authentication,active-directory,one-time-password,token,Authentication,Active Directory,One Time Password,Token,我需要限制对外部站点的访问,以便: 公司网络中的用户可以完全访问网站的功能 这些人不仅功能有限 在公司网络中,用户对windows域进行身份验证。在网络中,我可以设置一个服务器/服务来进行身份验证。这是安全的,我毫不怀疑,尤其是当它在里面的时候 外部站点不是域的一部分 我对自己的建议是设置一个服务,该服务将对用户进行身份验证,创建一个安全令牌,然后将用户重新定向到外部站点。这样用户就可以在那里进行身份验证,而无需输入密码(甚至可能不需要登录) 我很怀疑:这是怎么做到的?这有多安全?有多少重型

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

  • 公司网络中的用户可以完全访问网站的功能
  • 这些人不仅功能有限
在公司网络中,用户对windows域进行身份验证。在网络中,我可以设置一个服务器/服务来进行身份验证。这是安全的,我毫不怀疑,尤其是当它在里面的时候

外部站点不是域的一部分

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

我很怀疑:这是怎么做到的?这有多安全?有多少重型/加密开发

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

使外部站点成为SAML2.0服务提供商(SP)

设置内部SAML 2.0身份提供程序(IdP),以使用SAML 2.0 ADF对公司用户进行身份验证。使用SP启动的SSO,并将外部站点配置为通过HTTP-POST移交给您的IdP

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


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

因此,您希望一个托管在网络外部的网站只对网络内部的人可用,对吗?否,外部站点可供外部用户和公司用户使用。但是外部用户的功能有限——他们只能访问自己的数据。公司用户可以查看所有数据。您要查找的是一种称为“身份联合”的东西。第二部分是,您必须将站点配置为与外部用户的第二个IdP一起工作,或者在站点本身内实现用户身份验证系统。@alain odea据我所知,要配置ADF,是否需要访问域控制器?或者我可以创建自己的IdP吗?如果是后者,则如何进行?您确实需要访问域控制器才能为ActiveDirectory配置SAML。ADFS是最直接、可能也是最受支持的选项。它为您提供了由Microsoft直接集成和维护的SAML2.0 IdP。这里有一个使用ADFS对IIS后面的Tomcat应用程序进行身份验证的示例,该应用程序使用Shibboleth SP将来自ADFS的断言作为IdP接受。它还提供了一个使用ADFS作为SP来接受来自Shibboleth IdP@alain odea的断言的示例,遗憾的是,我没有这样的权限(对DC的访问和控制)。有没有实现某种自定义IdP的方法?@prot肯定有。我安装了Shibboleth IdP v3,并将其配置为使用笔记本电脑上的本地LDAP服务器。如果您想要更多的即插即用功能,有一个docker repo可以为您设置LDAP服务器容器。不过,您仍然需要配置Shibboleth IdP来与它对话。