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 |