Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/xpath/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Active directory 本机应用程序能否使用OS SSO登录信息?_Active Directory_Ldap_Single Sign On_Kerberos - Fatal编程技术网

Active directory 本机应用程序能否使用OS SSO登录信息?

Active directory 本机应用程序能否使用OS SSO登录信息?,active-directory,ldap,single-sign-on,kerberos,Active Directory,Ldap,Single Sign On,Kerberos,如果用户使用单一登录系统(如Active Directory、LDAP或Kerberos)登录到他们的计算机,那么他们运行的应用程序是否可能知道他们是谁以及他们使用什么系统进行身份验证?我能从这些系统中获得足够的信息来验证它们的身份,而不需要任何额外的用户输入吗 具体而言,我希望能够检查以下内容: 他们是通过单一登录系统登录的,还是仅仅使用这台机器上的常规用户帐户 他们使用什么系统 系统是否有一些URI将其与任何其他目录区分开来 当前用户在该目录中的可分辨名称是什么 我可以得到一些信息,我可以

如果用户使用单一登录系统(如Active Directory、LDAP或Kerberos)登录到他们的计算机,那么他们运行的应用程序是否可能知道他们是谁以及他们使用什么系统进行身份验证?我能从这些系统中获得足够的信息来验证它们的身份,而不需要任何额外的用户输入吗

具体而言,我希望能够检查以下内容:

  • 他们是通过单一登录系统登录的,还是仅仅使用这台机器上的常规用户帐户
  • 他们使用什么系统
  • 系统是否有一些URI将其与任何其他目录区分开来
  • 当前用户在该目录中的可分辨名称是什么
  • 我可以得到一些信息,我可以传递给另一个主机,向该主机证明该用户就是他们所说的那个人吗?例如,可用于查询SSO系统的令牌
我认为所有这些事情都应该是可能的,事实上是受到鼓励的,但我并不乐观。我确信获取此信息的方法是基于令牌的SSO(至少对于ActiveDirectoy使用的Kerberos)。一旦用户请求访问kerberized系统,系统就会查询令牌并检查其访问系统的有效性。这和查询用户名和密码一样好。当用户没有使用Kerberos帐户登录时,没有tiket,因此没有自动访问

使用该令牌,您可以获得用户的登录名,然后可以使用该登录名查询SSO后端(通常是LDAP),以获取有关该用户的更多信息

LDAP不是SSO系统,因为它只是一个存储查询协议,但它通常用作SSO系统的后端

问题通常是kerberizing应用程序。对于Webapps,这意味着您必须对web服务器进行kerberize,以便该服务器可以使用SSO服务处理身份验证过程,然后将该信息传递给解除服务的webapp

希望这能回答你的问题


有关更多信息,请查看web上的kerberos

您确实在问两件事:

认证:你是谁

授权:你可以做什么

Kerberos实际上只回答了第一个问题,您需要一个辅助系统,如LDAP或activedirectory(在单个服务器中同时是Kerberos和LDAP)来回答第二个问题

如果系统正确使用kerberos,则任何用户登录都应具有关联的kerberos票证。有了这张票,你可以申请“服务”票 向支持kerberos的远程服务器证明您的身份。票 包含您在域(user@DOMAIN.NET)那是可能的 用于查询授权系统

然而,可以说,让句子中的所有活动部分“在同一页”一起工作所需的细节可能非常复杂。远程服务必须支持接受kerberos凭据,它必须位于同一领域或配置了跨领域信任关系。。。。名单
时间很长。根据具体的应用程序环境,使用所有这些东西可能非常简单,也可能几乎不可能

我想知道如何做第一步。用户登录并启动我的应用程序后,如何获取他们的kerberos令牌?我想知道如何执行第一步。用户登录并启动我的应用程序后,如何获取他们的kerberos令牌?当应用程序尝试联系kerberized服务时,kerberos API将为您解决这一问题。如果您想知道用于检查票据的API调用,请查看klist的源代码。