Condividi tramite


enumerazione ADS_AUTHENTICATION_ENUM (iads.h)

L'enumerazione ADS_AUTHENTICATION_ENUM specifica le opzioni di autenticazione usate in ADSI per l'associazione agli oggetti del servizio directory. Quando si chiama IADsOpenDSObject o ADsOpenObject per l'associazione a un oggetto ADSI, fornire almeno una delle opzioni. In generale, diversi provider avranno implementazioni diverse. Le opzioni descritte di seguito si applicano ai provider forniti da Microsoft inclusi in ADSI SDK. Per altre informazioni, vedere Provider di sistema ADSI.

Sintassi

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;

Costanti

 
ADS_SECURE_AUTHENTICATION
Valore: 0x1
Richiede l'autenticazione per la protezione. Quando questo flag è impostato, il provider WinNT usa NT LAN Manager (NTLM) su
autenticare il client. Active Directory userà Kerberos, ed eventualmente NTLM, per autenticare il client. Se
il nome utente e la password sono NULL, ADSI si associa all'oggetto usando la sicurezza
contesto del thread chiamante, ovvero il contesto di sicurezza dell'account utente con cui
l'applicazione è in esecuzione o dell'account utente client rappresentato dal thread chiamante.
ADS_USE_ENCRYPTION
Valore: 0x2
Richiede ad ADSI di usare la crittografia per lo scambio di dati in rete.

Nota Questa opzione non è supportata dal provider WinNT.

 
ADS_USE_SSL
Valore: 0x2
Il canale viene crittografato usando Secure Sockets Layer (SSL). Active Directory richiede che il certificato
Server da installare per supportare SSL.

Se questo flag non viene combinato con il flag ADS_SECURE_AUTHENTICATION e
le credenziali specificate sono NULL, l'associazione verrà eseguita in modo anonimo. Se questo flag
viene combinato con il flag ADS_SECURE_AUTHENTICATION e le credenziali fornite sono
NULL, quindi vengono usate le credenziali del thread chiamante.

Nota Questa opzione non è supportata dal provider WinNT.

 
ADS_READONLY_SERVER
Valore: 0x4
Non è necessario un controller di dominio scrivibile. Se l'applicazione legge o esegue query solo su dati da Active
Directory, è consigliabile usare questo flag per aprire le sessioni. Ciò consente all'applicazione di sfruttare i vantaggi
Read-Only controller di dominio di sola lettura.

In Windows Server 2008, ADSI tenta di connettersi a Read-Only controller di dominio o controller di dominio scrivibili. This
consente l'uso di un controller di dominio di sola lettura per l'accesso e consente all'applicazione di essere eseguita in una rete di succursale o perimetrale
(nota anche come rete perimetrale, zona demilitarizzata e subnet schermata), senza la necessità di connettività diretta con un
DC scrivibile.

Per altre informazioni sulla programmazione per la compatibilità del controller di dominio di sola lettura, vedere
Guida alla compatibilità delle applicazioni controller di dominio di sola lettura.
ADS_PROMPT_CREDENTIALS
Valore: 0x8
Questo flag non è supportato.
ADS_NO_AUTHENTICATION
Valore: 0x10
Non richiedere l'autenticazione. I provider possono tentare di associare il client, come utente anonimo, al
oggetto di destinazione. Il provider WinNT non supporta questo flag. Active Directory stabilisce una connessione tra
il client e l'oggetto di destinazione, ma non eseguiranno l'autenticazione. L'impostazione di questo flag equivale alla richiesta
associazione anonima, che indica tutti gli utenti come contesto di sicurezza.
ADS_FAST_BIND
Valore: 0x20
Quando questo flag è impostato, ADSI non tenterà di eseguire una query sull'objectClass
proprietà e quindi esporrà solo le interfacce di base supportate da tutti gli oggetti ADSI anziché l'oggetto completo
Supporto. Un utente può usare questa opzione per aumentare le prestazioni in una serie di manipolazioni degli oggetti che coinvolgono
solo i metodi delle interfacce di base. Tuttavia, ADSI non verificherà che nessuno degli oggetti richiesti effettivamente
esistente nel server. Per ulteriori informazioni, vedere
Opzioni di associazione rapida per operazioni di scrittura/modifica batch.

Questa opzione è utile anche per l'associazione a servizi directory non Active Directory, ad esempio Exchange 5.5,
dove la query objectClass avrà esito negativo.
ADS_USE_SIGNING
Valore: 0x40
Verifica l'integrità dei dati. Anche il flag di ADS_SECURE_AUTHENTICATION deve essere impostato
per usare la firma.

Nota Questa opzione non è supportata dal provider WinNT.

 
ADS_USE_SEALING
Valore: 0x80
Esegue la crittografia dei dati utilizzando Kerberos. È necessario impostare anche il flag di ADS_SECURE_AUTHENTICATION
per utilizzare la tenuta.

Nota Questa opzione non è supportata dal provider WinNT.

 
ADS_USE_DELEGATION
Valore: 0x100
Consente ad ADSI di delegare il contesto di sicurezza utente, necessario per lo spostamento di oggetti tra domini.
ADS_SERVER_BIND
Valore: 0x200
Se un nome del server DNS di Active Directory viene passato nel percorso LDAP, forza la ricerca di un record A e
ignora qualsiasi ricerca di record SRV durante la risoluzione del nome host.

Nota Questa opzione non è supportata dal provider WinNT.

 
ADS_NO_REFERRAL_CHASING
Valore: 0x400
Specificare questo flag per disattivare la segnalazione per la durata della connessione. Tuttavia, anche quando questo flag
è specificato, ADSI consente comunque l'impostazione del comportamento di segnalazione per l'enumerazione del contenitore quando impostato
uso di ADS_OPTION_REFERRALS in
ADS_OPTION_ENUM (come documentato nell'enumerazione contenitore)
con segnalazione inseguimento in
IADsObjectOptions::SetOption) E
ricerca separatamente (come documentato in
Segnalazione inseguimento con IDirectorySearch).

Nota Questa opzione non è supportata dal provider WinNT.

 
ADS_AUTH_RESERVED
Valore: 0x80000000
Riservato.

Commenti

Il flag ADS_SECURE_AUTHENTICATION può essere usato in combinazione con altri flag, ad esempio ADS_READONLY_SERVER, ADS_PROMPT_CREDENTIALS, ADS_FAST_BIND e così via.

L'associazione serverless fa riferimento a un processo in cui un client tenta di eseguire l'associazione a un oggetto Active Directory senza specificare in modo esplicito un server Active Directory nella stringa di associazione. Ciò è possibile perché il provider LDAP si basa sui servizi localizzatori di Windows per trovare il controller di dominio migliore per il client. Tuttavia, il client deve avere un account nel controller di dominio Active Directory per sfruttare la funzionalità di associazione serverless e il controller di dominio usato da un binding serverless si troverà sempre nel dominio predefinito; ovvero il dominio associato al contesto di sicurezza corrente del thread che esegue l'associazione.

Poiché VBScript non è in grado di leggere i dati da una libreria dei tipi, le applicazioni VBScript non riconoscono le costanti simboliche definite in precedenza. Usare invece le costanti numeriche per impostare i flag appropriati nelle applicazioni VBScript. Per usare le costanti simboliche come procedura di programmazione consigliata, scrivere dichiarazioni esplicite di tali costanti, come fatto qui, nell'applicazione Visual Basic Scripting Edition.

Esempio

Nell'esempio di codice seguente viene illustrato come usare IADsOpenDSObject per aprire un oggetto in fabrikam con autenticazione sicura per il provider 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)

Nell'esempio di codice seguente viene illustrato come viene usato il flag ADS_SECURE_AUTHENTICATION con ADsOpenObject per convalidare l'utente associato come "JeffSmith". Il nome utente può essere del formato UPN: "JeffSmith@Fabrikam.com", nonché il formato di nome distinto: "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.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista
Server minimo supportato Windows Server 2008
Intestazione iads.h

Vedi anche

Enumerazioni ADSI

Provider di sistema ADSI

ADsOpenObject

IADsAccessControlEntry

IADsOpenDSObject