função ldap_bind_s (winldap.h)
A função ldap_bind_s autentica de forma síncrona um cliente no servidor LDAP.
Sintaxe
WINLDAPAPI ULONG LDAPAPI ldap_bind_s(
[in] LDAP *ld,
[in] const PSTR dn,
[in] const PCHAR cred,
[in] ULONG method
);
Parâmetros
[in] ld
O identificador de sessão.
[in] dn
Ponteiro para uma cadeia de caracteres terminada em nulo que contém o nome diferenciado da entrada usada para associar. Isso pode ser um DN, um UPN, um nome de usuário no estilo WinNT ou outro nome que o servidor de diretório aceitará como um identificador.
[in] cred
Ponteiro para uma cadeia de caracteres terminada em nulo que contém as credenciais com as quais autenticar. Credenciais arbitrárias podem ser passadas usando esse parâmetro. O formato e o conteúdo das credenciais dependem da configuração do parâmetro de método . Para obter mais informações, consulte Comentários.
[in] method
Indica o método de autenticação a ser usado. Para obter mais informações e uma listagem de métodos de autenticação assíncrona válidos, consulte a seção Comentários. Para obter mais informações e uma descrição do método de autenticação assíncrona válido, consulte ldap_bind.
Retornar valor
Se a função for bem-sucedida, o valor retornado será LDAP_SUCCESS.
Se a função falhar, será exibido um código de erro. Para obter mais informações, consulte Valores retornados.
Comentários
A introdução do Controle de Conta de Usuário no Windows Server 2008 e no Windows Vista tem uma consequência muito importante em relação a modificações ou adições no LDAP. Quando um usuário está conectado a um controlador de domínio com um token de administrador UAC restrito e usando credenciais NULL , qualquer modificação ou adição ao diretório ou qualquer operação de alteração de esquema falhará. Isso inclui pesquisas do DirSync, recuperação da SACL do atributo ntSecurityDescriptor de um objeto ao usar SecurityDescriptorFlags e muitas outras operações.
Todos eles falharão com direitos de acesso insuficientes.
Se o Controle de Conta de Usuário estiver em vigor quando um administrador fizer logon em um controlador de domínio, o administrador receberá um token restrito na sessão de logon. Se ele ou ela usar ldap_bind_s com credenciais NULL , as operações que fizerem modificações ou adições falharão.
A implementação de ldap_bind_s dá suporte aos métodos de autenticação listados na tabela a seguir. Chamar ldap_bind_s com a opção LDAP_AUTH_SIMPLE é equivalente a chamar ldap_simple_bind_s.
Método | Descrição | Credencial |
---|---|---|
LDAP_AUTH_SIMPLE | Autenticação com uma senha de texto não criptografado. | Uma cadeia de caracteres que contém a senha do usuário. |
LDAP_AUTH_DIGEST | Pacote de autenticação digest. | Para fazer logon como o usuário atual, defina os parâmetros dn e cred como NULL. Para fazer logon como outro usuário, defina o parâmetro dn como NULL e o parâmetro cred como um ponteiro para uma estrutura de SEC_WINNT_AUTH_IDENTITY com o nome de usuário, o nome de domínio e a senha apropriados. |
LDAP_AUTH_DPA | Autenticação de senha distribuída. Usado pelo Sistema de Associação da Microsoft. | Para fazer logon como o usuário atual, defina os parâmetros dn e cred como NULL. Para fazer logon como outro usuário, defina o parâmetro dn como NULL e o parâmetro cred como um ponteiro para uma estrutura de SEC_WINNT_AUTH_IDENTITY com o nome de usuário, o nome de domínio e a senha apropriados. |
LDAP_AUTH_MSN | Serviço de Autenticação de Rede da Microsoft. | Para fazer logon como o usuário atual, defina os parâmetros dn e cred como NULL. Para fazer logon como outro usuário, defina o parâmetro dn como NULL e o parâmetro cred como um ponteiro para uma estrutura de SEC_WINNT_AUTH_IDENTITY com o nome de usuário, o nome de domínio e a senha apropriados. |
LDAP_AUTH_NEGOTIATE | GSS (serviços de segurança genéricos) (Snego). Não fornece autenticação, mas escolhe o método de autenticação mais apropriado de uma lista de serviços disponíveis e passa todos os dados de autenticação para esse serviço. | Para fazer logon como o usuário atual, defina os parâmetros dn e cred como NULL. Para fazer logon como outro usuário, defina o parâmetro dn como NULL e o parâmetro cred como um ponteiro para uma estrutura SEC_WINNT_AUTH_IDENTITY ou SEC_WINNT_AUTH_IDENTITY_EX com o nome de usuário, o nome de domínio e a senha apropriados. |
LDAP_AUTH_NTLM | NT LAN Manager | Para fazer logon como o usuário atual, defina os parâmetros dn e cred como NULL. Para fazer logon como outro usuário, defina o parâmetro dn como NULL e o parâmetro cred como um ponteiro para uma estrutura SEC_WINNT_AUTH_IDENTITY ou SEC_WINNT_AUTH_IDENTITY_EX com o nome de usuário, o nome de domínio e a senha apropriados. |
LDAP_AUTH_SICILY | Aborda a negociação de pacotes para servidores MSN. | Para fazer logon como o usuário atual, defina os parâmetros dn e cred como NULL. Para fazer logon como outro usuário, defina o parâmetro dn como NULL e o parâmetro cred como um ponteiro para uma estrutura de SEC_WINNT_AUTH_IDENTITY com o nome de usuário, o nome de domínio e a senha apropriados. |
LDAP_AUTH_SSPI | Obsoleto. Incluído para compatibilidade com versões anteriores. O uso dessa constante seleciona o serviço de negociação GSS (Snego). | O mesmo que LDAP_AUTH_NEGOTIATE. |
Para autenticação de associação assíncrona, use LDAP_AUTH_SIMPLE com ldap_bind.
A operação de associação identifica um cliente para o servidor de diretório fornecendo um nome diferenciado e algum tipo de credencial de autenticação, como uma senha. As credenciais exatas dependem do método de autenticação usado. Se você passar NULL para as credenciais com ldap_bind_s() (não simples), as credenciais de usuário ou serviço atuais serão usadas. Se um método de associação simples (como em ldap_simple_bind_s) for especificado, ele será equivalente a uma senha de texto sem formatação NULL . Para obter mais informações, consulte ldap_bind.
Lembre-se de que os servidores LDAP 2 exigem que um aplicativo seja associado antes de tentar outras operações que exijam autenticação.
Multithreading: as chamadas de associação não são seguras porque se aplicam à conexão como um todo. Tenha cuidado se os threads compartilharem conexões e tentarem encadear as operações de associação com outras operações.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista |
Servidor mínimo com suporte | Windows Server 2008 |
Plataforma de Destino | Windows |
Cabeçalho | winldap.h |
Biblioteca | Wldap32.lib |
DLL | Wldap32.dll |