SaslAcceptSecurityContext-Funktion (sspi.h)
Die SaslAcceptSecurityContext-Funktion umschließt einen Standardaufruf der AcceptSecurityContext-Funktion des SicherheitssupportanbietersAcceptSecurityContext (Allgemein) und umfasst die Erstellung von SASL-Servercookies.
Syntax
SECURITY_STATUS SEC_ENTRY SaslAcceptSecurityContext(
[in] PCredHandle phCredential,
[in, optional] PCtxtHandle phContext,
[in] PSecBufferDesc pInput,
[in] unsigned long fContextReq,
[in] unsigned long TargetDataRep,
[out] PCtxtHandle phNewContext,
[in, out] PSecBufferDesc pOutput,
[out] unsigned long *pfContextAttr,
[out, optional] PTimeStamp ptsExpiry
);
Parameter
[in] phCredential
Ein Handle für die Anmeldeinformationen des Servers. Der Server ruft die AcquireCredentialsHandle-Funktion mit dem INBOUND-Flag auf, um dieses Handle abzurufen.
[in, optional] phContext
Zeiger auf eine CtxtHandle-Struktur . Beim ersten Aufruf von AcceptSecurityContext (General) ist dieser Zeiger NULL. Bei nachfolgenden Aufrufen ist phContext das Handle für den teilgeformten Kontext, der im phNewContext-Parameter vom ersten Aufruf zurückgegeben wurde.
[in] pInput
Zeiger auf eine SecBufferDesc-Struktur , die von einem Clientaufruf der Funktion InitializeSecurityContext (General) generiert wird, die den Eingabepufferdeskriptor enthält.
SASL erfordert einen einzelnen Puffer vom Typ SECBUFFER_TOKEN. Der Puffer ist für den ersten Aufruf der AcceptSecurityContext-Funktion (Allgemein) leer und enthält die Vom Client für den zweiten Aufruf empfangene Anforderungsantwort.
[in] fContextReq
Bitflags, die die Attribute angeben, die der Server zum Einrichten des Kontexts benötigt. Bitflags können mit bitweisen OR-Vorgängen kombiniert werden. In der folgenden Tabelle sind die möglichen Werte aufgeführt.
[in] TargetDataRep
Gibt die Datendarstellung an, z. B. die Bytereihenfolge, auf dem Ziel. Dieser Wert kann entweder SECURITY_NATIVE_DREP oder SECURITY_NETWORK_DREP sein.
[out] phNewContext
Zeiger auf eine CtxtHandle-Struktur . Beim ersten Aufruf von AcceptSecurityContext (General) empfängt dieser Zeiger das neue Kontexthandle. Bei nachfolgenden Aufrufen kann phNewContext mit dem im parameter phContext angegebenen Handle identisch sein.
[in, out] pOutput
Zeiger auf eine SecBufferDesc-Struktur , die den Ausgabepufferdeskriptor enthält. Dieser Puffer wird an den Client zur Eingabe in zusätzliche Aufrufe von InitializeSecurityContext (Allgemein) gesendet. Ein Ausgabepuffer kann auch dann generiert werden, wenn die Funktion SEC_E_OK zurückgibt. Alle generierten Puffer müssen an die Clientanwendung zurückgesendet werden.
[out] pfContextAttr
Zeiger auf eine Variable, die eine Reihe von Bitflags empfängt, die die Attribute des eingerichteten Kontexts angeben. Eine Beschreibung der verschiedenen Attribute finden Sie unter Kontextanforderungen. Für diesen Parameter verwendete Flags wird ASC_RET vorangestellt, z. B. ASC_RET_DELEGATE.
Überprüfen Sie erst nach sicherheitsbezogenen Attributen, bis der endgültige Funktionsaufruf erfolgreich zurückgegeben wird. Attributflags, die sich nicht auf die Sicherheit beziehen, z. B. das ASC_RET_ALLOCATED_MEMORY-Flag, können vor der endgültigen Rückgabe überprüft werden.
[out, optional] ptsExpiry
Zeiger auf eine TimeStamp-Struktur , die die Ablaufzeit des Kontexts empfängt. Es wird empfohlen, dass das Sicherheitspaket diesen Wert immer in Ortszeit zurückgibt.
Rückgabewert
Wenn der Aufruf erfolgreich abgeschlossen wurde, gibt diese Funktion SEC_E_OK zurück. In der folgenden Tabelle sind einige mögliche Fehlerrückgabewerte aufgeführt.
Rückgabecode | Beschreibung |
---|---|
|
Eine Authentifizierungsverarbeitung ist nicht zulässig. |
|
Es ist nicht genügend Arbeitsspeicher verfügbar, um die Anforderung abzuschließen. |
|
Im pOutput-Parameter befindet sich kein Tokenpuffer, oder die Nachricht konnte nicht entschlüsselt werden. |
Hinweise
Der letzte Aufruf der AcceptSecurityContext (General) -Funktion, die SEC_E_OK zurückgibt, wird identifiziert. Wenn ein Rückgabetoken erstellt wird, wird die SASL-Verarbeitung für einen Roundtrip zurück zum Client angehalten, um die Verarbeitung des endgültigen Tokens zu ermöglichen. Nach Abschluss des Austauschs wird SEC_E_CONTINUE_NEEDED mit einem zusätzlichen SASL-Servercookies, das mit SSPI-Nachrichtenfunktionen verschlüsselt wurde, an die Anwendung zurückgegeben. Das anfängliche Servercookies gibt an, ob INTEGRITÄT und DATENSCHUTZ unterstützt werden. Dieses anfängliche Servercookies wird vom Client verarbeitet, und der Client gibt ein Clientcookies zurück, um anzugeben, welche Dienste der Client anfordert. Das Clientcookies wird dann vom Server entschlüsselt, und die endgültigen Dienste werden für den folgenden Nachrichtendatenverkehr bestimmt.
Anforderungen
Unterstützte Mindestversion (Client) | Nicht unterstützt |
Unterstützte Mindestversion (Server) | Windows Server 2003 [nur Desktop-Apps] |
Zielplattform | Windows |
Kopfzeile | sspi.h (einschließlich Security.h) |
Bibliothek | Secur32.lib |
DLL | Secur32.dll |
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für