Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Le classi e le enumerazioni seguenti vengono utilizzate con i trust dei Servizi di dominio Active Directory.
- Forest
- Domain
- TrustRelationshipInformation
- TrustRelationshipInformationCollection
- ForestTrustCollisionType
- ForestTrustDomainStatus
- TrustDirection
- TrustType
Nelle sezioni seguenti viene illustrato come utilizzare lo spazio dei nomi System.DirectoryServices.ActiveDirectory per i trust dei Servizi di dominio Active Directory.
- Procedura: utilizzare i trust
- Procedura: utilizzare i trust
- Procedura: utilizzare i trust
- Procedura: utilizzare i trust
- Procedura: utilizzare i trust
- Procedura: utilizzare i trust
- Procedura: utilizzare i trust
Direzione di trust
La direzione di trust è rappresentata dai membri dell'enumerazione TrustDirection. La direzione di un trust è sempre relativa a un singolo lato di un trust. Se ad esempio il dominio A dispone di una relazione di trust in ingresso con il dominio B, il dominio B disporrà di un trust in uscita con il dominio A.
Creazione di un trust
Il processo di creazione di un trust è articolato in due passaggi. La normale sequenza di eventi prevede la creazione di un lato di una relazione di trust e successivamente la creazione della controparte. Al termine della creazione di entrambi i lati, viene stabilito il trust. Per ogni lato della relazione di trust deve essere specificata la stessa password al momento della creazione.
Per i trust di dominio, il metodo CreateTrustRelationship consente di creare entrambi i lati di una relazione di trust a livello di programmazione con una singola chiamata di metodo. Con questo metodo verrà creata e utilizzata una password per stabilire il trust. Il metodo CreateTrustRelationship viene utilizzato per eseguire la stessa azione per trust di insieme di strutture.
Il metodo CreateLocalSideOfTrustRelationship consente di creare un solo lato di una relazione di trust di dominio. Per stabilire il trust, il chiamante deve specificare la stessa password nella chiamata per entrambi i lati del trust. Questa password viene utilizzata esclusivamente per la creazione del trust e non è correlata alla password di un account. Per la corretta esecuzione del metodo, è necessario che la direzione di trust risulti corretta in entrambe le chiamate. Questo metodo si rivela utile quando un lato di un trust viene creato a livello di programmazione e la controparte viene creata manualmente. Il metodo può inoltre essere utilizzato per creare i due diversi lati del trust a livello di programmazione in momenti diversi. Il metodo CreateLocalSideOfTrustRelationship viene utilizzato per eseguire la stessa azione per trust di insieme di strutture.
Recupero di informazioni su un trust
Per i trust di dominio, il metodo GetTrustRelationship consente di ottenere un oggetto TrustRelationshipInformation che rappresenta un trust tra due domini. Il metodo GetAllTrustRelationships viene utilizzato per ottenere un oggetto TrustRelationshipInformationCollection contenente tutti i trust stabiliti dal dominio. I metodi GetTrustRelationship e GetAllTrustRelationships vengono utilizzati per eseguire le stesse azioni per i trust di insieme di strutture.
Verifica di un trust
Per i trust di dominio, i metodi VerifyTrustRelationship e VerifyOutBoundTrustRelationship consentono di verificare la validità di un trust esistente tra due domini. Il metodo VerifyOutBoundTrustRelationship viene utilizzato per verificare esclusivamente un trust in uscita, mentre il metodo VerifyOutBoundTrustRelationship viene utilizzato per verificare qualsiasi tipo di trust. I metodi VerifyTrustRelationship e VerifyOutBoundTrustRelationship vengono utilizzati per eseguire le stesse azioni per i trust di insieme di strutture. Se non è possibile verificare il trust esistente, tutti i metodi descritti restituiranno un'eccezione ActiveDirectoryObjectNotFoundException.
Nell'esempio C# riportato di seguito viene illustrato come enumerare i trust per un dominio e verificare che ogni trust sia stato stabilito in modo completo.
static void EnumAndVerifyDomainTrusts(
Domain domain,
NetworkCredential targetCredentials)
{
TrustRelationshipInformationCollection trusts;
trusts = domain.GetAllTrustRelationships();
foreach (TrustRelationshipInformation trust in trusts)
{
Console.WriteLine(
String.Format("Trust between {0} and {1}:",
trust.SourceName,
trust.TargetName));
Console.WriteLine(
String.Format("\tTrust type: {0}",
trust.TrustType.ToString()));
Console.WriteLine(
String.Format("\tTrust direction: {0}",
trust.TrustDirection.ToString()));
// Verify that the trust has been fully established.
DirectoryContext context = new DirectoryContext(
DirectoryContextType.Domain,
trust.TargetName,
targetCredentials.UserName,
targetCredentials.Password);
Domain targetDomain = Domain.GetDomain(context);
Console.WriteLine(targetDomain.Name);
try
{
domain.VerifyTrustRelationship(
targetDomain,
trust.TrustDirection);
Console.WriteLine("Trust verified.");
}
catch (ActiveDirectoryObjectNotFoundException)
{
// The trust was not verified.
Console.WriteLine("Trust not verified.");
}
}
}
Eliminazione di un trust
Dopo l'eliminazione di un lato di una relazione di trust, il trust non risulta più stabilito. Per i trust di dominio, il metodo DeleteLocalSideOfTrustRelationship consente di eliminare un singolo lato di un trust. Il metodo DeleteTrustRelationship viene utilizzato per eliminare entrambi i lati di un trust con una singola chiamata di metodo. I metodi DeleteLocalSideOfTrustRelationship e DeleteTrustRelationship vengono utilizzati per eseguire le stesse azioni per i trust di insieme di strutture.
Autenticazione selettiva
Se si decide di impostare SetSelectiveAuthenticationStatus su un trust di insieme di strutture in ingresso, è necessario assegnare manualmente le autorizzazioni per ogni dominio e risorsa per cui si desidera concedere l'accesso gli utenti del secondo insieme di strutture. A tale scopo, impostare il diritto di controllo accesso di accesso Autorizzazione consentita relativo a un oggetto per l'utente o il gruppo del secondo insieme di strutture.
Quando un utente esegue l'autenticazione in un trust con l'opzione GetSelectiveAuthenticationStatus attivata, ai dati di autorizzazione dell'utente viene aggiunto un ID di protezione (SID) Altra organizzazione. La presenza di questo SID determina un controllo nel dominio della risorsa allo scopo di verificare che all'utente sia consentita l'autenticazione per il servizio specifico. Dopo l'autenticazione dell'utente, il server per il quale l'utente viene autenticato aggiungerà il SID Organizzazione se non è già presente in SID Altra organizzazione. Nel contesto dell'utente autenticato possono essere presenti solo questi SID speciali.
Filtro degli identificatori di protezione (SID)
Il filtro degli identificatori di protezione consente agli amministratori di determinare la "messa in quarantena" di un dominio trusted nei controller di un determinato dominio. In questo modo i controller del dominio trusting rimuovono tutti i SID non relativi al dominio trusted dai dati di autorizzazione ricevuti da tale dominio. La messa in quarantena viene eseguita dal dominio trusting per ogni singolo dominio.
Il filtro degli identificatori di protezione blocca il trust transitivo Windows 2000. Se nel percorso di trust tra due domini viene individuato un dominio in quarantena, gli utenti dei domini dall'altra parte del dominio in questione non possono accedere alle risorse del dominio che ha impostato la quarantena. Per tale motivo, è consigliabile che i domini in quarantena siano domini foglia, i cui domini figli sono costituiti soltanto da domini di risorse non contenenti account utente oppure che il dominio in quarantena appartenga a un insieme di strutture separato.
È preferibile che gli amministratori di Windows 2000 non utilizzino la funzionalità di filtro dei SID per creare un dominio ad accesso limitato all'interno di un insieme di strutture. Lo scenario di quarantena consigliato prevede la quarantena soltanto di domini in insiemi di strutture separati. Un trust deve essere stabilito dal dominio da proteggere al dominio da mettere in quarantena, quindi il dominio trusting deve essere configurato in modo da filtrare i SID dal dominio trusted.
Send comments about this topic to Microsoft.
Copyright © 2008 Microsoft Corporation. Tutti i diritti riservati.