SSO身份验证 - Apache / PHP / ActiveDirectory

时间:2013-09-23 11:30:56

标签: php apache authentication

我想通过Active Directory创建一个带有SSO身份验证的Intranet。我搜索过,我发现可能有两种方式:

  1. 使用apache模块 mod_authnz_sspi 。我可以获得用户名和域名,但似乎没有身份验证。也许我真的不明白......

    这里我的apache为这个模块配置:

     
        AuthType SSPI
        SSPIAuth On
        SSPIAuthoritative On
        SSPIOfferBasic On
        SSPIOmitDomain Off
        SSPIDomain MyDOMAIN
        Require valid-user
    
    

    所以我猜“连接”并不安全......

  2. 使用apache模块 mod_authnz_ldap ,但我无法使其正常运行...

    这里我的apache为这个模块配置:

     
       
       AuthName "LDAP Authentication"
       AuthType Basic
       AuthBasicProvider ldap
       AuthLDAPBindAuthoritative off
       AuthLDAPURL "ldap://ad.server.fr:389/DC=server,DC=local?sAMAccountName?sub?(objectClass=person)" NONE
       AuthLDAPBindDN ldap@server.local
       AuthLDAPBindPassword password
       AuthLDAPRemoteUserAttribute on
       LDAPReferrals Off
    
    

    我收到此错误LDAP: SSL support unavailable: LDAP: CA certificates cannot be set using this method, as they are stored in the registry instead.但我不想使用SSL进行连接...

    其实我真的不明白这是怎么回事。我的活动目录没有从我的apache获得连接,也可能只是匿名。

  3. 现在我不知道如何在我的Intranet上进行SSO身份验证。 哪种方式更好?还有另外一个吗?

    我使用wache( for windows )和apache 2.4.4。

1 个答案:

答案 0 :(得分:1)

我在windows xp上使用apache 2.4.4,使用mod_authnz_sspi以及以下适用于使用IE8的人。但我不是在使用PHP。使用Django。

<Location "/k/">
    AuthName "Something"
    AuthType SSPI
    SSPIAuth On
    SSPIAuthoritative On
    SSPIDomain "COMPANY"
    SSPIUsernameCase "upper" 
    require valid-user
    SSPIPerRequestAuth Off
    require user "NT AUTHORITY\ANONYMOUS LOGON" denied
</Location>