Eventi
19 nov, 23 - 21 nov, 23
Ottenere il vantaggio competitivo necessario con potenti soluzioni di intelligenza artificiale e cloud partecipando a Microsoft Ignite online.
Iscriviti subitoQuesto browser non è più supportato.
Esegui l'aggiornamento a Microsoft Edge per sfruttare i vantaggi di funzionalità più recenti, aggiornamenti della sicurezza e supporto tecnico.
La funzione AcquireCredentialsHandle (Schannel) acquisisce un handle per preesistribuire le credenziali di un'entità di sicurezza. Questo handle è richiesto dalle funzioni InitializeSecurityContext (Schannel) e AcceptSecurityContext (Schannel). Queste possono essere credenziali preesistenti , che vengono stabilite tramite un accesso di sistema non descritto qui o il chiamante può fornire credenziali alternative.
Nota
Non si tratta di un "accesso alla rete" e non implica la raccolta di credenziali.
SECURITY_STATUS SEC_Entry AcquireCredentialsHandle(
_In_opt_ SEC_CHAR *pszPrincipal,
_In_ SEC_CHAR *pszPackage,
_In_ ULONG fCredentialUse,
_In_opt_ PLUID pvLogonID,
_In_opt_ PVOID pAuthData,
_In_opt_ SEC_GET_KEY_FN pGetKeyFn,
_In_opt_ PVOID pvGetKeyArgument,
_Out_ PCredHandle phCredential,
_Out_opt_ PTimeStamp ptsExpiry
);
pszPrincipal[in, optional]
Puntatore a una stringa con terminazione null che specifica il nome dell'entità le cui credenziali fanno riferimento l'handle.
Quando si usa Schannel SSP, questo parametro non viene usato e deve essere impostato su NULL
.
Nota
Se il processo che richiede l'handle non ha accesso alle credenziali, la funzione restituisce un errore. Una stringa Null indica che il processo richiede un handle per le credenziali dell'utente nel cui contesto di sicurezza viene eseguito.
pszPackage[in]
Puntatore a una stringa con terminazione null che specifica il nome del pacchetto di sicurezza con cui verranno usate queste credenziali. Si tratta di un nome del pacchetto di sicurezza restituito nel membro Name di una struttura SecPkgInfo restituita dalla funzione EnumerateSecurityPackages . Dopo aver stabilito un contesto, QueryContextAttributes (Schannel) può essere chiamato con ulAttribute impostato su SECPKG_ATTR_PACKAGE_INFO per restituire informazioni sul pacchetto di sicurezza in uso.
Quando si usa schannel SSP, impostare questo parametro su UNISP_NAME
.
Nota
I chiamanti in modalità kernel che riscontrano problemi durante la chiamata a InitializeSecurityContext (Schannel) dopo la chiamata a AcquireCredentialsHandle (Schannel) possono in alternativa impostare pszPackage su SCHANNEL_NAME
.
fCredentialUse[in]
Flag che indica come verranno usate queste credenziali. Questo parametro può avere uno dei valori seguenti.
Valore | Significato |
---|---|
SECPKG_CRED_INBOUND | Convalidare le credenziali del server in ingresso. Le credenziali in ingresso possono essere convalidate usando un'autorità di autenticazione quando initializeSecurityContext (Schannel) o AcceptSecurityContext (Schannel) viene chiamato. Se tale autorità non è disponibile, la funzione avrà esito negativo e restituirà SEC_E_NO_AUTHENTICATING_AUTHORITY. La convalida è specifica del pacchetto. |
SECPKG_CRED_OUTBOUND | Consentire a una credenziale client locale di preparare un token in uscita. |
pvLogonID[in, optional]
Puntatore a un identificatore univoco locale (LUID) che identifica l'utente. Questo parametro viene fornito per i processi di file system, ad esempio i reindirizzamenti di rete. Questo parametro può essere NULL
.
Quando si usa Schannel SSP, questo parametro non viene usato e deve essere impostato su NULL
.
pAuthData[in, optional]
Puntatore ai dati specifici del pacchetto. Questo parametro può essere NULL
, che indica che è necessario usare le credenziali predefinite per tale pacchetto di sicurezza . Per usare le credenziali fornite, passare una struttura SEC_WINNT_AUTH_IDENTITY che include tali credenziali in questo parametro. Il tempo di esecuzione RPC passa qualsiasi cosa fornita in RpcBindingSetAuthInfo.
Quando si usa Schannel SSP, specificare una struttura SCH_CREDENTIALS che indica il protocollo da usare e le impostazioni per varie funzionalità del canale personalizzabili.
pGetKeyFn[in, optional]
Questo parametro non viene usato e deve essere impostato su NULL
.
pvGetKeyArgument[in, optional]
Questo parametro non viene usato e deve essere impostato su NULL
.
phCredential[out]
Puntatore a una struttura CredHandle per ricevere l'handle delle credenziali.
ptsExpiry[out, optional]
Puntatore a una struttura TimeStamp che riceve il momento in cui le credenziali restituite scadono. Il valore restituito in questa struttura TimeStamp dipende dalla delega vincolata. Il pacchetto di sicurezza deve restituire questo valore nell'ora locale.
Quando si usa Schannel SSP, questo parametro è facoltativo. Quando le credenziali da usare per l'autenticazione sono un certificato, questo parametro riceve l'ora di scadenza per tale certificato. Se non è stato fornito alcun certificato, viene restituito un valore di tempo massimo.
Se la funzione ha esito positivo, la funzione restituisce SEC_E_OK
.
Se la funzione ha esito negativo, restituisce uno dei codici di errore seguenti.
Codice restituito | Descrizione |
---|---|
SEC_E_INSUFFICIENT_MEMORY | Non è disponibile memoria sufficiente per completare l'azione richiesta. |
SEC_E_INTERNAL_ERROR | Si è verificato un errore che non è stato eseguito il mapping a un codice di errore SSPI. |
SEC_E_NO_CREDENTIALS | Non sono disponibili credenziali nella delega vincolata. |
SEC_E_NOT_OWNER | Il chiamante della funzione non dispone delle credenziali necessarie. |
SEC_E_SECPKG_NOT_FOUND | Il pacchetto di sicurezza richiesto non esiste. |
SEC_E_UNKNOWN_CREDENTIALS | Le credenziali fornite al pacchetto non sono state riconosciute. |
La funzione AcquireCredentialsHandle (Schannel) restituisce un handle alle credenziali di un'entità, ad esempio un utente o un client, come usato da una delega vincolata specifica. Questo può essere l'handle per preesistribuire le credenziali oppure la funzione può creare un nuovo set di credenziali e restituirlo. Questo handle può essere usato nelle chiamate successive alle funzioni AcceptSecurityContext (Schannel) e InitializeSecurityContext (Schannel).
In generale , AcquireCredentialsHandle (Schannel) non consente a un processo di ottenere un handle alle credenziali di altri utenti connessi allo stesso computer. Tuttavia, un chiamante con privilegiSE_TCB_NAME ha la possibilità di specificare l'identificatore di accesso (LUID) di qualsiasi token di sessione di accesso esistente per ottenere un handle per le credenziali della sessione. In genere, questo viene usato dai moduli in modalità kernel che devono agire per conto di un utente connesso.
Un pacchetto potrebbe chiamare la funzione in pGetKeyFn fornito dal trasporto di runtime RPC. Se il trasporto non supporta la nozione di callback per recuperare le credenziali, questo parametro deve essere NULL
.
Per i chiamanti in modalità kernel, è necessario notare le differenze seguenti:
Al termine dell'uso delle credenziali restituite, liberare la memoria usata dalle credenziali chiamando la funzione FreeCredentialsHandle .
Requisito | Valore |
---|---|
Client minimo supportato | Windows XP [solo app desktop] |
Server minimo supportato | Windows Server 2003 [solo app desktop] |
Intestazione | Sspi.h (include Security.h) |
Libreria | Secur32.lib |
DLL | Secur32.dll |
Nomi Unicode e ANSI | AcquireCredentialsHandleW (Unicode) e AcquireCredentialsHandleA (ANSI) |
AcceptSecurityContext (Schannel)
Eventi
19 nov, 23 - 21 nov, 23
Ottenere il vantaggio competitivo necessario con potenti soluzioni di intelligenza artificiale e cloud partecipando a Microsoft Ignite online.
Iscriviti subito