如何根据Windows Active DirectoryvalidationTWiki

如何让TWiki通过单点login对Windows Active Directory进行透明的身份validation?

我写了这个function的补充文档的一部分。 该指南的目标是TWiki 4.2,但安装过程保持不变。

Kerberos SSO在Firefox中工作,只要确保在about:config中将您的服务器名称添加到network.negotiate-auth.trusted-uris

名称映射是最难的部分。 TWiki LDAP插件有一个将Active Directorylogin名映射到TWiki用户名的正则expression式。 它有我们的firstname.lastname格式的大写问题,但改变正则expression式产生我们想要的TWiki用户名。

你是指单点login还是仅仅是validation?

身份validation可能很容易。 只要将twiki指向您保留用户的OU,如果它与其他所有LDAP身份validationscheme一样。 单点login要复杂得多,我不知道。

这是一个HOWTO,可能有帮助: http : //twiki.org/cgi-bin/view/Support/LdapAuthenticationHowTo

Matt Simmons的回答是一个很好的起点。

我添加了一些细节,因为我使用TWiki与LDAP(纯LDAP不是AD)。

在你通常拥有的apache conf中:

AuthUserFile /var/www/twiki42/data/.htpasswd ... 

用这个replace它:

 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启用适当的validation模块。 在基于debian的系统上使用:

 a2enmod authnz_ldap 

确保你有

 $TWiki::cfg{PasswordManager} = 'TWiki::Users::HtPasswdUser'; 

在你的LocalSite.cfg另一种方法是使用pipe理界面进行设置。 也许你也想禁用注册:

 $TWiki::cfg{Register}{EnableNewUserRegistration} = 0; 

只要问你是否有任何问题。

这是做到这一点的一种方法(也许是最简单的)。 另一种方法是使用ldap插件并强制用户根据ldap数据注册一个新用户(这不是我想要的)。

据我了解,您将需要支持Kerberos SSO的Web浏览器。 IE可能会有内置的function,至less与AD服务器进行通信。

在Firefox中也有Kerberos的支持,但是我只是检查了一下,例如Debian Stable中的一个似乎没有链接到它。

对AD进行单点login的一种方法是使用NTLM。 您可以通过HTTP执行NTLM,为您的用户提供自动login,但这并不简单。

我从2006年就已经看到了这篇文章 , 从2005年开始 , 这个 网站就更加花哨了 ,但是这个第三个也是最后一个链接似乎更有用。 希望他们中的一个能帮助你!