Compartilhar via


ADS_AUTHENTICATION_ENUM enumeração (iads.h)

A enumeração ADS_AUTHENTICATION_ENUM especifica opções de autenticação usadas no ADSI para associação a objetos de serviço de diretório. Ao chamar IADsOpenDSObject ou ADsOpenObject para associar a um objeto ADSI, forneça pelo menos uma das opções. Em geral, provedores diferentes terão implementações diferentes. As opções documentadas aqui se aplicam aos provedores fornecidos pela Microsoft incluídos no SDK do ADSI. Para obter mais informações, consulte Provedores de sistema ADSI.

Syntax

typedef enum __MIDL___MIDL_itf_ads_0000_0000_0018 {
  ADS_SECURE_AUTHENTICATION = 0x1,
  ADS_USE_ENCRYPTION = 0x2,
  ADS_USE_SSL = 0x2,
  ADS_READONLY_SERVER = 0x4,
  ADS_PROMPT_CREDENTIALS = 0x8,
  ADS_NO_AUTHENTICATION = 0x10,
  ADS_FAST_BIND = 0x20,
  ADS_USE_SIGNING = 0x40,
  ADS_USE_SEALING = 0x80,
  ADS_USE_DELEGATION = 0x100,
  ADS_SERVER_BIND = 0x200,
  ADS_NO_REFERRAL_CHASING = 0x400,
  ADS_AUTH_RESERVED = 0x80000000
} ADS_AUTHENTICATION_ENUM;

Constantes

 
ADS_SECURE_AUTHENTICATION
Valor: 0x1
Solicita a autenticação segura. Quando esse sinalizador é definido, o provedor WinNT usa o NTLM (NT LAN Manager) para
autenticar o cliente. O Active Directory usará Kerberos e, possivelmente, NTLM, para autenticar o cliente. Quando
o nome de usuário e a senha são NULL, ADSI associa ao objeto usando a segurança
contexto do thread de chamada, que é o contexto de segurança da conta de usuário sob o qual o
O aplicativo está em execução ou da conta de usuário cliente que o thread de chamada representa.
ADS_USE_ENCRYPTION
Valor: 0x2
Requer que o ADSI use criptografia para troca de dados pela rede.

Nota Essa opção não tem suporte do provedor WinNT.

 
ADS_USE_SSL
Valor: 0x2
O canal é criptografado usando SSL (Secure Sockets Layer). O Active Directory requer que o Certificado
O servidor será instalado para dar suporte ao SSL.

Se esse sinalizador não for combinado com o sinalizador ADS_SECURE_AUTHENTICATION e o
as credenciais fornecidas são NULL, a associação será executada anonimamente. Se esse sinalizador
é combinado com o sinalizador ADS_SECURE_AUTHENTICATION e as credenciais fornecidas são
NULL, as credenciais do thread de chamada são usadas.

Nota Essa opção não tem suporte do provedor WinNT.

 
ADS_READONLY_SERVER
Valor: 0x4
Um controlador de domínio gravável não é necessário. Se o aplicativo ler ou consultar apenas dados do Active
Diretório, você deve usar esse sinalizador para abrir as sessões. Isso permite que o aplicativo aproveite
Read-Only DCs (RODCs).

No Windows Server 2008, o ADSI tenta se conectar a DCs Read-Only (RODCs) ou DCs graváveis. Esse
permite o uso de um RODC para o acesso e permite que o aplicativo seja executado em um branch ou rede de perímetro
(também conhecida como DMZ, zona desmilitarizada e sub-rede filtrada), sem a necessidade de conectividade direta com um
DC gravável.

Para obter mais informações sobre programação para compatibilidade com RODC, consulte o
Guia de compatibilidade de aplicativos somente leitura de controladores de domínio.
ADS_PROMPT_CREDENTIALS
Valor: 0x8
Não há suporte para esse sinalizador.
ADS_NO_AUTHENTICATION
Valor: 0x10
Não solicite nenhuma autenticação. Os provedores podem tentar associar o cliente, como um usuário anônimo, ao
objeto de destino. O provedor WinNT não dá suporte a esse sinalizador. O Active Directory estabelece uma conexão entre
o cliente e o objeto de destino, mas não executará a autenticação. Definir esse sinalizador equivale à solicitação
uma associação anônima, que indica todos os usuários como o contexto de segurança.
ADS_FAST_BIND
Valor: 0x20
Quando esse sinalizador for definido, ADSI não tentará consultar o objectClass
e, portanto, só exporá as interfaces base compatíveis com todos os objetos ADSI em vez do objeto completo
Apoio. Um usuário pode usar essa opção para aumentar o desempenho em uma série de manipulações de objeto que envolvem
somente métodos das interfaces base. No entanto, ADSI não verificará se nenhum dos objetos solicitados realmente
existem no servidor. Para obter mais informações, consulte
Opções de associação rápida para operações de gravação/modificação em lote.

Essa opção também é útil para associação a serviços de diretório que não são do Active Directory, por exemplo, Exchange 5.5,
em que a consulta objectClass falharia.
ADS_USE_SIGNING
Valor: 0x40
Verifica a integridade dos dados. O sinalizador ADS_SECURE_AUTHENTICATION também deve ser definido
para usar a assinatura.

Nota Essa opção não tem suporte do provedor WinNT.

 
ADS_USE_SEALING
Valor: 0x80
Criptografa dados usando o Kerberos. O sinalizador ADS_SECURE_AUTHENTICATION também deve ser definido
para usar a vedação.

Nota Essa opção não tem suporte do provedor WinNT.

 
ADS_USE_DELEGATION
Valor: 0x100
Permite que o ADSI delegue o contexto de segurança do usuário, que é necessário para mover objetos entre domínios.
ADS_SERVER_BIND
Valor: 0x200
Se um nome de servidor DNS do Active Directory for passado no caminho LDAP, isso forçará uma pesquisa de registro A e
ignora qualquer pesquisa de registro SRV ao resolver o nome do host.

Nota Essa opção não tem suporte do provedor WinNT.

 
ADS_NO_REFERRAL_CHASING
Valor: 0x400
Especifique esse sinalizador para desativar a busca de referência durante a vida útil da conexão. No entanto, mesmo quando esse sinalizador
é especificado, ADSI ainda permite a configuração de comportamento de busca de referência para enumeração de contêiner quando definido
usando ADS_OPTION_REFERRALS no
ADS_OPTION_ENUM (conforme documentado na enumeração de contêiner
com indicação perseguindo em
IADsObjectOptions::SetOption) E
pesquisando separadamente (conforme documentado em
Busca de referência com IDirectorySearch).

Nota Essa opção não tem suporte do provedor WinNT.

 
ADS_AUTH_RESERVED
Valor: 0x80000000
Reservado.

Comentários

O sinalizador ADS_SECURE_AUTHENTICATION pode ser usado em combinação com outros sinalizadores, como ADS_READONLY_SERVER, ADS_PROMPT_CREDENTIALS, ADS_FAST_BIND e assim por diante.

Associação sem servidor refere-se a um processo no qual um cliente tenta associar a um objeto do Active Directory sem especificar explicitamente um servidor do Active Directory na cadeia de caracteres de associação. Isso é possível porque o provedor LDAP depende dos serviços localizadores do Windows para encontrar o melhor controlador de domínio (DC) para o cliente. No entanto, o cliente deve ter uma conta no controlador de domínio do Active Directory para aproveitar o recurso de associação sem servidor e o DC usado por uma associação sem servidor sempre estará localizado no domínio padrão; ou seja, o domínio associado ao contexto de segurança atual do thread que executa a associação.

Como o VBScript não pode ler dados de uma biblioteca de tipos, os aplicativos VBScript não reconhecem as constantes simbólicas, conforme definido acima. Em vez disso, use as constantes numéricas para definir os sinalizadores apropriados em seus aplicativos VBScript. Para usar as constantes simbólicas como uma boa prática de programação, escreva declarações explícitas dessas constantes, conforme feito aqui, no aplicativo edição scripting do Visual Basic.

Exemplos

O exemplo de código a seguir mostra como usar IADsOpenDSObject para abrir um objeto na fabrikam com autenticação segura para o provedor WinNT.

Const ADS_SECURE_AUTHENTICATION = 1

Dim dso As IADsOpenDSObject
Dim domain As IADsDomain
 
Set dso = GetObject("WinNT:")
Set domain = dso.OpenDSObject("WinNT://Fabrikam", vbNullString, vbNullString, ADS_SECURE_AUTHENTICATION)

O exemplo de código a seguir mostra como o sinalizador ADS_SECURE_AUTHENTICATION é usado com ADsOpenObject para validar o usuário associado como "JeffSmith". O nome de usuário pode ser do formato UPN: "JeffSmith@Fabrikam.com", bem como o formato de nome diferenciado: "CN=JeffSmith,DC=Fabrikam,DC=COM".

IADs *pObject = NULL;
HRESULT hr;
hr = ADsOpenObject(_bstr_t("LDAP://CN=JeffSmith, DC=fabrikam, DC=com"),
                   NULL,
                   NULL,
                   ADS_SECURE_AUTHENTICATION, 
                   IID_IADs,
                   (void**) &pObject);
if (hr != S_OK)
    {} // Handle open object errors here.
else
    {} // Object was retrieved, continue processing here.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista
Servidor mínimo com suporte Windows Server 2008
Cabeçalho iads.h

Confira também

Enumerações ADSI

Provedores de sistema ADSI

ADsOpenObject

IADsAccessControlEntry

IADsOpenDSObject