Funzione AuthzInitializeContextFromSid (authz.h)

La funzione AuthzInitializeContextFromSid crea un contesto client in modalità utente da un identificatore di sicurezza utente (SID). I SID di dominio recuperano gli attributi del gruppo di token da Active Directory.

Nota Se possibile, chiamare la funzione AuthzInitializeContextFromToken anziché AuthzInitializeContextFromSid. Per altre informazioni, vedere la sezione Osservazioni.

 

Sintassi

AUTHZAPI BOOL AuthzInitializeContextFromSid(
  [in]           DWORD                         Flags,
  [in]           PSID                          UserSid,
  [in, optional] AUTHZ_RESOURCE_MANAGER_HANDLE hAuthzResourceManager,
  [in]           PLARGE_INTEGER                pExpirationTime,
  [in]           LUID                          Identifier,
  [in, optional] PVOID                         DynamicGroupArgs,
  [out]          PAUTHZ_CLIENT_CONTEXT_HANDLE  phAuthzClientContext
);

Parametri

[in] Flags

I flag seguenti sono definiti.

A partire da Windows 8 e Windows Server 2012, quando si chiama questa funzione in un handle di contesto remoto, i 16 bit superiori devono essere zero.

Valore Significato
0 (0x0)
Valore predefinito.

AuthzInitializeContextFromSid tenta di recuperare le informazioni sul gruppo di token dell'utente eseguendo un accesso S4U.

Se l'accesso S4U non è supportato dal dominio dell'utente o dal computer chiamante, AuthzInitializeContextFromSid esegue query sull'oggetto account dell'utente per informazioni sul gruppo. Quando si esegue una query diretta su un account, alcuni gruppi che rappresentano le caratteristiche di accesso, ad esempio Network, Interactive, Anonymous, Network Service o Local Service, vengono omessi. Le applicazioni possono aggiungere in modo esplicito tali SID implementando la funzione AuthzComputeGroupsCallback o chiamando la funzione AuthzAddSidsToContext .

AUTHZ_SKIP_TOKEN_GROUPS
2 (0x2)
Causa l'ignorare tutte le valutazioni del gruppo da parte di AuthzInitializeContextFromSid . Quando viene usato questo flag, il contesto restituito contiene solo il SID specificato dal parametro UserSid . Il SID specificato può essere un SID arbitrario o specifico dell'applicazione. Altri SID possono essere aggiunti a questo contesto implementando la funzione AuthzComputeGroupsCallback o chiamando la funzione AuthzAddSidsToContext .
AUTHZ_REQUIRE_S4U_LOGON
4 (0x4)
Causa l'esito negativo di AuthzInitializeContextFromSid se Windows Services For User non è disponibile per recuperare le informazioni sul gruppo di token.

Windows XP: Questo flag non è supportato.

AUTHZ_COMPUTE_PRIVILEGES
8 (0x8)
Causa il recupero dei privilegi per il nuovo contesto da parte di AuthzInitializeContextFromSid . Se questa funzione esegue un accesso S4U, recupera i privilegi dal token. In caso contrario, la funzione recupera i privilegi da tutti i SID nel contesto.

[in] UserSid

SID dell'utente per cui verrà creato un contesto client. Questo deve essere un account utente o computer valido a meno che non venga usato il flag di AUTHZ_SKIP_TOKEN_GROUPS.

[in, optional] hAuthzResourceManager

Handle per gestione risorse che crea questo contesto client. Questo handle viene archiviato nella struttura del contesto client.

A partire da Windows 8 e Windows Server 2012, resource manager può essere locale o remoto e viene ottenuto chiamando la funzione AuthzInitializeRemoteResourceManager.

[in] pExpirationTime

Data e ora di scadenza del token. Se non viene passato alcun valore, il token non scade mai. L'ora di scadenza non è attualmente applicata.

[in] Identifier

Identificatore specifico del gestore risorse. Questo parametro non viene attualmente usato.

[in, optional] DynamicGroupArgs

Puntatore ai parametri da passare alla funzione di callback che calcola i gruppi dinamici. Questo parametro può essere NULL se non vengono passati parametri dinamici alla funzione di callback.

A partire da Windows 8 e Windows Server 2012, questo parametro deve essere NULL se gestione risorse è remoto. In caso contrario, ERROR_NOT_SUPPORTED verrà impostato.

[out] phAuthzClientContext

Puntatore all'handle al contesto client creato dalla funzione AuthzInitializeContextFromSid . Al termine dell'uso dell'handle, liberarlo chiamando la funzione AuthzFreeContext .

Valore restituito

Se la funzione ha esito positivo, la funzione restituisce un valore diverso da zero.

Se la funzione ha esito negativo, restituisce zero. Per informazioni dettagliate sull'errore, chiamare GetLastError.

Commenti

Se possibile, chiamare la funzione AuthzInitializeContextFromToken anziché AuthzInitializeContextFromSid. AuthzInitializeContextFromSid tenta di recuperare le informazioni disponibili in un token di accesso con il client effettivamente connesso. Un token di accesso effettivo fornisce altre informazioni, ad esempio il tipo di accesso e le proprietà di accesso e riflette il comportamento del pacchetto di autenticazione usato per l'accesso. Il contesto client creato da AuthzInitializeContextFromToken usa un token di accesso e il contesto client risultante è più completo e accurato di un contesto client creato da AuthzInitializeContextFromSid.

Questa funzione risolve solo i SID utente validi.

Windows XP: Questa funzione risolve le appartenenze ai gruppi per i SID utente e gruppi validi (a meno che non venga usato il flag di AUTHZ_SKIP_TOKEN_GROUPS). Il supporto per la risoluzione delle appartenenze dei SID di gruppo può essere modificato o non disponibile nelle versioni successive.

Questa funzione chiama la funzione di callback AuthzComputeGroupsCallback per aggiungere SID al contesto appena creato.

Importante Le applicazioni non presuppongono che il contesto chiamante disponga dell'autorizzazione per l'uso di questa funzione. La funzione AuthzInitializeContextFromSid legge l'attributo tokenGroupsGlobalAndUniversal del SID specificato nella chiamata per determinare le appartenenze del gruppo dell'utente corrente. Se l'oggetto dell'utente si trova in Active Directory, il contesto chiamante deve avere accesso in lettura all'attributo tokenGroupsGlobalAndUniversal nell'oggetto utente. Quando viene creato un nuovo dominio, la selezione di compatibilità di accesso predefinita è Compatibile con i sistemi operativi Windows 2000 e Windows Server 2003. Quando questa opzione è impostata, il gruppo Di accesso compatibile con Windows 2000 include solo gli identificatori di sicurezza predefiniti autenticati utenti . Pertanto, le applicazioni potrebbero non avere accesso all'attributo tokenGroupsGlobalAndUniversal; in questo caso, la funzione AuthzInitializeContextFromSid ha esito negativo con ACCESS_DENIED. Le applicazioni che usano questa funzione devono gestire correttamente questo errore e fornire la documentazione di supporto. Per semplificare la concessione dell'autorizzazione degli account per eseguire query sulle informazioni del gruppo di un utente, aggiungere account che necessitano della possibilità di cercare le informazioni del gruppo al gruppo di accesso all'autorizzazione di Windows.
 

Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione authz.h
Libreria Authz.lib
DLL Authz.dll
Componente ridistribuibile Windows Server 2003 Administration Tools Pack in Windows XP

Vedi anche

Consenti l'accesso anonimo

AuthzFreeContext

Funzioni di base Controllo di accesso