Rym Asked: 2009-06-10 03:43:50 +0800 CST2009-06-10 03:43:50 +0800 CST 2009-06-10 03:43:50 +0800 CST 如何针对 Windows Active Directory 对 TWiki 进行身份验证 772 我将如何让TWiki通过单点登录对 Windows Active Directory 进行透明身份验证? apache-2.2 active-directory authentication wiki twiki 5 个回答 Voted Matt Everson 2009-06-11T11:41:04+08:002009-06-11T11:41:04+08:00 我为此功能编写了部分补充文档。该指南针对 TWiki 4.2,但设置过程保持不变。 Kerberos SSO 在 Firefox 中工作,只需确保在 about:config 中将您的服务器名称添加到 network.negotiate-auth.trusted-uris 名称映射是最难的部分。TWiki LDAP 插件有一个将 Active Directory 登录名映射到 TWiki 用户名的正则表达式。我们的 firstname.lastname 格式存在大小写问题,但更改正则表达式会产生我们想要的 TWiki 用户名。 Matt Simmons 2009-06-10T03:48:47+08:002009-06-10T03:48:47+08:00 你的意思是单点登录还是仅仅是身份验证? 身份验证可能很容易。只需将 twiki 指向您保留用户的 OU,如果它与其他所有 LDAP 身份验证方案一样。单点登录要复杂得多,我不知道。 这是一个可能有帮助的 HOWTO:http: //twiki.org/cgi-bin/view/Support/LdapAuthenticationHowTo cstamas 2009-06-10T09:13:31+08:002009-06-10T09:13:31+08:00 Matt Simmons 的回答是一个很好的起点。 当我将 TWiki 与 LDAP(纯 LDAP 而非 AD)一起使用时,我添加了一些细节。 在您通常拥有的apache conf中: AuthUserFile /var/www/twiki42/data/.htpasswd ... 用这个替换它: AuthType Basic AuthBasicProvider ldap AuthzLDAPAuthoritative off AuthName "login with your AD/domain credentials ..." AuthLDAPURL ldap://your.ad.example.org/ou=people,dc=example,dc=org require valid-user (当然,您必须在 AuthLDAPURL 中设置正确的值。)您必须为 ldap 启用正确的身份验证模块。在基于 debian 的系统上使用: a2enmod authnz_ldap 确保你有 $TWiki::cfg{PasswordManager} = 'TWiki::Users::HtPasswdUser'; 在您的 LocalSite.cfg 中,另一种方法是使用管理界面进行设置。也许您还想禁用注册: $TWiki::cfg{Register}{EnableNewUserRegistration} = 0; 只要问你是否有任何问题。 这是一种方法(也许是最简单的)。另一种方法是使用 ldap 插件并强制您的用户根据 ldap 数据注册一个新用户(这不是我想要的)。 Bernd Haug 2009-06-10T04:40:52+08:002009-06-10T04:40:52+08:00 据我了解,您将需要一个支持 Kerberos 进行 SSO 的 Web 浏览器。IE 可能具有内置的功能,至少可以与 AD 服务器进行通信。 Firefox 中也曾经有 Kerberos 支持,但我刚刚检查过,例如来自 Debian Stable 的支持似乎没有链接。 Dan Udey 2009-06-12T23:47:02+08:002009-06-12T23:47:02+08:00 针对 AD 进行单点登录的一种方法是使用 NTLM。您可以通过 HTTP 执行 NTLM 来为您的用户提供自动登录,但这并不是很简单。 我从 2006 年开始看到这篇文章,从 2005 年开始看到这个更花哨的网站,但是这第三个也是最后一个链接似乎更有用。希望其中一位能帮到你!
我为此功能编写了部分补充文档。该指南针对 TWiki 4.2,但设置过程保持不变。
Kerberos SSO 在 Firefox 中工作,只需确保在 about:config 中将您的服务器名称添加到 network.negotiate-auth.trusted-uris
名称映射是最难的部分。TWiki LDAP 插件有一个将 Active Directory 登录名映射到 TWiki 用户名的正则表达式。我们的 firstname.lastname 格式存在大小写问题,但更改正则表达式会产生我们想要的 TWiki 用户名。
你的意思是单点登录还是仅仅是身份验证?
身份验证可能很容易。只需将 twiki 指向您保留用户的 OU,如果它与其他所有 LDAP 身份验证方案一样。单点登录要复杂得多,我不知道。
这是一个可能有帮助的 HOWTO:http: //twiki.org/cgi-bin/view/Support/LdapAuthenticationHowTo
Matt Simmons 的回答是一个很好的起点。
当我将 TWiki 与 LDAP(纯 LDAP 而非 AD)一起使用时,我添加了一些细节。
在您通常拥有的apache conf中:
用这个替换它:
(当然,您必须在 AuthLDAPURL 中设置正确的值。)您必须为 ldap 启用正确的身份验证模块。在基于 debian 的系统上使用:
确保你有
在您的 LocalSite.cfg 中,另一种方法是使用管理界面进行设置。也许您还想禁用注册:
只要问你是否有任何问题。
这是一种方法(也许是最简单的)。另一种方法是使用 ldap 插件并强制您的用户根据 ldap 数据注册一个新用户(这不是我想要的)。
据我了解,您将需要一个支持 Kerberos 进行 SSO 的 Web 浏览器。IE 可能具有内置的功能,至少可以与 AD 服务器进行通信。
Firefox 中也曾经有 Kerberos 支持,但我刚刚检查过,例如来自 Debian Stable 的支持似乎没有链接。
针对 AD 进行单点登录的一种方法是使用 NTLM。您可以通过 HTTP 执行 NTLM 来为您的用户提供自动登录,但这并不是很简单。
我从 2006 年开始看到这篇文章,从 2005 年开始看到这个更花哨的网站,但是这第三个也是最后一个链接似乎更有用。希望其中一位能帮到你!