Eu tenho um servidor Debian que está executando o OpenLDAP versão 2.4.31, e agora estou tentando conectar meu servidor Mac OS X 10.9, para que eu possa autenticar usuários LDAP existentes. Conectei-os com êxito usando o utilitário de diretório e mapeei o registro de usuários para os valores retornados pelo servidor. Eu fiz os seguintes mapeamentos:
User: inetOrgPerson
EmailAddress: mail
FirstName: givenName
LastName: sn
Password: userPassword
PrimaryGroupID: #5000
RealName: cn
RecordName: uid
UniqueID: uidNumber
GeneratedUID: mail
Eu posso autenticar com sucesso usando o Utilitário de Diretório e os serviços que são executados na rede local, como o Time Machine. No entanto, quando tento acessar qualquer serviço acessível pela Internet, como o Wiki Server ou o Xcode Server, a autenticação falha. Aqui está um log do meu OS X Server quando tentei entrar no Wiki:
Nov 29 21:06:55 osx.example.org collabd[437]: [CSAuthService.m:315 11d8d000 +269ms] Digest did not validate
Nov 29 21:06:55 osx.example.org collabd[437]: [CSServiceDispatcher.m:260 11d8d000 +0ms] Caught exception "Invalid Credentials" [CSAuthBadDigest] executing [http]Request{AuthService.validateUsernameAndPasswordDigest:remember:(<<scrubbed>>)}
E aqui está um segundo log de quando eu tentei entrar no Xcode Server:
Nov 29 21:23:27 osx.example.org collabd[437]: [CSAuthService.m:315 11b5a000 +95ms] Digest did not validate
Nov 29 21:23:27 osx.example.org collabd[437]: [CSServiceDispatcher.m:260 11b5a000 +0ms] Caught exception "Invalid Credentials" [CSAuthBadDigest] executing [http]Request{AuthService.sessionForDigest:remember:(Digest username="redacted",realm="osx.example.org",nonce="****",nc="*****",cnonce="***",qop="auth",algorithm=md5-sess,uri="/",response="***",0)}
Parece que está se conectando ao servidor LDAP, mas para quê? Enfim, aqui está o log do LDAP:
filter: (&(|(objectClass=inetOrgPerson))(|(uid=redacted)(cn=redacted)))
ber_scanf fmt ({M}}) ber:
...
bdb_dn2entry("dc=example,dc=org")
search_candidates: base="dc=example,dc=org" (0x00000001) scope=2
...
5298f51f => send_search_entry: conn 1001 dn="uid=redacted,ou=users,dc=example,dc=org"
ber_flush2: 183 bytes to sd 12
ldap_write: want=183, written=183
...
5298f51f <= send_search_entry: conn 1001 exit.
5298f51f send_ldap_result: conn=1001 op=3 p=3
5298f51f send_ldap_result: err=0 matched="" text=""
5298f51f send_ldap_response: msgid=4 tag=101 err=0
ber_flush2: 14 bytes to sd 12
ldap_write: want=14, written=14
0000: 30 0c 02 01 04 65 07 0a 01 00 04 00 04 00 0....e........
Pelo que eu posso dizer, o servidor OS X solicita os registros do usuário no servidor LDAP, mas algo no lado do OS X não está funcionando corretamente. Alguém pode me dizer o que eu tenho que fazer para que a autenticação funcione? O problema poderia ser que o "reino" parece estar errado? O nome do host do servidor ldap é "example.org", mas o nome do host do servidor osx é "osx.example.org". Se o reino é realmente o problema, como eu mudo de osx.example.org para example.org?