Php 在网页上使用Kerberos进行SSO

Php 在网页上使用Kerberos进行SSO,php,linux,kerberos,Php,Linux,Kerberos,我不太习惯使用Kerberos。但是我想用Kerberos实现单点登录 我想实现的目标是,您只需使用Windows 7登录,然后打开浏览器,无需其他身份验证,例如,对于intranet。这可能吗 Kerberos正在使用票据。第一步是拿到授权票,不是吗?Windows Server正在使用Kerberos进行身份验证。那么,在登录Windows后是否有票据授予票据?我可以用这个(如果有)获得其他服务的服务票吗 关于apache的另一个问题是:当我在linux服务器上使用Kerberos时,我需要

我不太习惯使用Kerberos。但是我想用Kerberos实现单点登录

我想实现的目标是,您只需使用Windows 7登录,然后打开浏览器,无需其他身份验证,例如,对于intranet。这可能吗

Kerberos正在使用票据。第一步是拿到授权票,不是吗?Windows Server正在使用Kerberos进行身份验证。那么,在登录Windows后是否有票据授予票据?我可以用这个(如果有)获得其他服务的服务票吗

关于apache的另一个问题是:当我在linux服务器上使用Kerberos时,我需要一个名为mod_auth_kerb的mod,不是吗?如果这安装在我的linux服务器上,我可以使用Kerberos身份验证吗?如果linux服务器上有intranet,那么如何使用kerberos进行身份验证呢。我应该在PHP代码中进行身份验证,还是可以通过某种方式“学习”apache进行身份验证

非常感谢您的帮助:)

亲切问候,,
Wuz

是的,这一切都是可能的,而且一直都在做。当您登录到域帐户时,Windows会使用您的密码从域控制器获取Kerberos凭据(票证授予票证或TGT),从而允许您在不重新输入密码的情况下获取其他服务的票证。您可以通过klist.exe查看TGT和其他特定服务的票证。Web浏览器使用HTTP协商交换向Web服务器发送票证,服务器可以使用票证识别您(可选的返回令牌还可以向客户端验证服务器)。服务器必须是同一Kerberos领域的成员,或者是对您的领域具有信任链的服务器

mod_auth_kerb是Apache中用于Kerberos身份验证的最常见模块。您可以使用setspn.exe(格式为HTTP/server hostname)将web服务器的Kerberos主体添加到AD帐户。然后使用Windows上的ktpass.exe或Unix上的ktutil之类的程序(需要AD帐户的密码)创建一个保存该主体密钥的文件,称为“keytab”。mod_auth_路缘石配置指的是键选项卡。mod_auth_kerb将环境变量REMOTE_USER设置为客户端的标识,您只需在应用程序中读取它(本例中为PHP代码)

您必须将web浏览器配置为实际使用HTTP协商身份验证,其详细信息因浏览器而异

这只是以一种高层次的方式回答你眼前的问题;当然,还涉及很多其他细节,因为您需要处理整个基础架构和几个需要协调的部分:Kerberos、DNS名称、主体名称、浏览器配置、Apache等


顺便说一下:英语中的单词是“authenticate”,而不是“authenticificate”。

是的,这一切都是可能的,而且一直都在进行。当您登录到域帐户时,Windows会使用您的密码从域控制器获取Kerberos凭据(票证授予票证或TGT),从而允许您在不重新输入密码的情况下获取其他服务的票证。您可以通过klist.exe查看TGT和其他特定服务的票证。Web浏览器使用HTTP协商交换向Web服务器发送票证,服务器可以使用票证识别您(可选的返回令牌还可以向客户端验证服务器)。服务器必须是同一Kerberos领域的成员,或者是对您的领域具有信任链的服务器

mod_auth_kerb是Apache中用于Kerberos身份验证的最常见模块。您可以使用setspn.exe(格式为HTTP/server hostname)将web服务器的Kerberos主体添加到AD帐户。然后使用Windows上的ktpass.exe或Unix上的ktutil之类的程序(需要AD帐户的密码)创建一个保存该主体密钥的文件,称为“keytab”。mod_auth_路缘石配置指的是键选项卡。mod_auth_kerb将环境变量REMOTE_USER设置为客户端的标识,您只需在应用程序中读取它(本例中为PHP代码)

您必须将web浏览器配置为实际使用HTTP协商身份验证,其详细信息因浏览器而异

这只是以一种高层次的方式回答你眼前的问题;当然,还涉及很多其他细节,因为您需要处理整个基础架构和几个需要协调的部分:Kerberos、DNS名称、主体名称、浏览器配置、Apache等

顺便说一句:英语中的单词是“authenticate”,而不是“authenticificate”