使用 ldap 的 Shibboleth 身份验证失败

Shibboleth authentication failure with ldap

我是第一次尝试安装 Shibboleth Idp(2.4.2)。我正在使用 LDAP 身份验证。 我成功配置了 Tomcat7、Shibboleth Idp、Apache 和 ldap。但是当我尝试对用户进行身份验证时, 我收到以下错误:

登录失败。仔细检查您的用户名和密码。

我确认我的用户名和密码是正确的。

下面是 slapd 系统日志:

Jun 10 12:55:03 shib-VirtualBox slapd[6499]: conn=1008 fd=13 ACCEPT from IP=10.0.0.100:49434 (IP=0.0.0.0:389)
Jun 10 12:55:04 shib-VirtualBox slapd[6499]: conn=1008 op=0 BIND dn="cn=admin,dc=mysys242,dc=subdomain,dc=idp" method=128
Jun 10 12:55:04 shib-VirtualBox slapd[6499]: conn=1008 op=0 BIND dn="cn=admin,dc=mysys242,dc=subdomain,dc=idp" mech=SIMPLE ssf=0
Jun 10 12:55:04 shib-VirtualBox slapd[6499]: conn=1008 op=0 RESULT tag=97 err=0 text=
Jun 10 12:55:04 shib-VirtualBox slapd[6499]: conn=1008 op=1 SRCH base="dc=mysys242,dc=subdomain,dc=idp" scope=2 deref=3 filter="(uid=admin)"
Jun 10 12:55:04 shib-VirtualBox slapd[6499]: conn=1008 op=1 SRCH attr=1.1
Jun 10 12:55:04 shib-VirtualBox slapd[6499]: conn=1008 op=1 SEARCH RESULT tag=101 err=0 nentries=0 text=
Jun 10 12:55:04 shib-VirtualBox slapd[6499]: conn=1008 op=2 UNBIND
Jun 10 12:55:04 shib-VirtualBox slapd[6499]: conn=1008 fd=13 closed

以下是我在 login.conf 文件中的配置方式:

ShibUserPassAuth {
  edu.vt.middleware.ldap.jaas.LdapLoginModule required
  ldapUrl="ldap://mysys242.subdomain.idp:389"
  baseDn="dc=mysys242,dc=subdomain,dc=idp"
  bindDn="cn=admin,dc=mysys242,dc=subdomain,dc=idp"
  bindCredential="mypassword"
  ssl="false"
  subtreeSearch="true"
  userFilter="uid={0}";
};


Here follows how I configured in attribute-resolver.xml
 <resolver:DataConnector xsi:type="dc:LDAPDirectory"
                          xmlns="urn:mace:shibboleth:2.0:resolver:dc"
                          id="myLDAP"
                          ldapURL="ldap://mysys242.subdomain.idp:389"
                          baseDN="dc=mysys242,dc=subdomain,dc=idp"
                          principal="cn=admin,dc=mysys242,dc=subdomain,dc=idp"
                          principalCredential="welcome"
                          lowercaseAttributeNames="true">
    <dc:FilterTemplate>
      <![CDATA[
        (uid=$requestContext.principalName)
      ]]>
    </dc:FilterTemplate>
  </resolver:DataConnector>

如有任何回复或指示,我将不胜感激。

检查来自 ldap(通过 ldap 浏览器)的 "admin" 条目是否将 uid 值设置为 "admin" (uid=admin) (要么) 在login.config中更改userFilter="cn={0}",重启试试。

我有同样的问题:

Jun 10 12:55:04 shib-VirtualBox slapd[6499]: conn=1008 op=1 SRCH base="dc=mysys242,dc=subdomain,dc=idp" scope=2 deref=3 filter="(uid=admin)"
Jun 10 12:55:04 shib-VirtualBox slapd[6499]: conn=1008 op=1 SRCH attr=1.1
Jun 10 12:55:04 shib-VirtualBox slapd[6499]: conn=1008 op=1 SEARCH RESULT tag=101 err=0 nentries=0 text=
Jun 10 12:55:04 shib-VirtualBox slapd[6499]: conn=1008 op=2 UNBIND

attribute-resolver.xml

是否需要添加“返回属性”
<resolver:DataConnector xsi:type="dc:LDAPDirectory"
                      xmlns="urn:mace:shibboleth:2.0:resolver:dc"
                      id="myLDAP"
                      ldapURL="ldap://mysys242.subdomain.idp:389"
                      baseDN="dc=mysys242,dc=subdomain,dc=idp"
                      principal="cn=admin,dc=mysys242,dc=subdomain,dc=idp"
                      principalCredential="welcome"
                      lowercaseAttributeNames="true">
  <dc:FilterTemplate>
    <![CDATA[
      (uid=$requestContext.principalName)
    ]]>
  <dc:ReturnAttributes>mail givenName sn uid</dc:ReturnAttributes>
</resolver:DataConnector>