SaslAcceptSecurityContext-Funktion (sspi.h)
Die SaslAcceptSecurityContext Funktion umschließt einen Standardaufruf an die Security Support Provider InterfaceAcceptSecurityContext (Allgemein) Funktion 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 auf, wobei das INBOUND-Flag festgelegt ist, um dieses Handle abzurufen.
[in, optional] phContext
Zeiger auf eine CtxtHandle- Struktur. Im ersten Aufruf von AcceptSecurityContext (General)ist dieser Zeiger NULL. Bei nachfolgenden Aufrufen ist phContext- das Handle für den teilweise gebildeten Kontext, der im phNewContext Parameter durch den ersten Aufruf zurückgegeben wurde.
[in] pInput
Zeiger auf eine SecBufferDesc- Struktur, die von einem Clientaufruf an die InitializeSecurityContext (Allgemein) Funktion 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 (General) Funktion leer und enthält die abfrageantwort, die vom Client für den zweiten Aufruf empfangen wurde.
[in] fContextReq
Bitkennzeichnungen, die die vom Server zum Einrichten des Kontexts erforderlichen Attribute angeben. Bitkennzeichnungen können mit bitweisenODER--Vorgängen kombiniert werden. In der folgenden Tabelle sind die möglichen Werte aufgeführt.
[in] TargetDataRep
Gibt die Datendarstellung an, z. B. die Byte-Sortierung, 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 phContext Parameter angegebenen Handle identisch sein.
[in, out] pOutput
Zeiger auf eine SecBufferDesc- Struktur, die den Ausgabepufferdeskriptor enthält. Dieser Puffer wird an den Client gesendet, um zusätzliche Aufrufe an InitializeSecurityContext (General)einzugeben. Ein Ausgabepuffer kann auch dann generiert werden, wenn die Funktion SEC_E_OK zurückgibt. Jeder generierte Puffer muss an die Clientanwendung zurückgesendet werden.
[out] pfContextAttr
Zeigen Sie auf eine Variable, die eine Reihe von Bitkennzeichnungen empfängt, die die Attribute des etablierten Kontexts angeben. Eine Beschreibung der verschiedenen Attribute finden Sie unter Kontextanforderungen. Für diesen Parameter verwendete Flags werden ASC_RET vorangestellt, z. B. ASC_RET_DELEGATE.
Überprüfen Sie erst nach sicherheitsbezogenen Attributen, bis der endgültige Funktionsaufruf erfolgreich zurückgegeben wird. Attributkennzeichnungen, 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
Zeigen Sie auf eine TimeStamp- Struktur, die die Ablaufzeit des Kontexts empfängt. Es wird empfohlen, dass das Sicherheitspaket diesen Wert immer in der lokalen Zeit zurückgeben.
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 |
---|---|
|
Die Authz-Verarbeitung ist nicht zulässig. |
|
Nicht genügend Arbeitsspeicher ist verfügbar, um die Anforderung abzuschließen. |
|
Kein Tokenpuffer befindet sich im pOutput Parameter, oder die Nachricht konnte nicht entschlüsselt werden. |
Bemerkungen
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, damit das endgültige Token verarbeitet werden kann. Nachdem der Austausch abgeschlossen wurde, wird SEC_E_CONTINUE_NEEDED mit einem zusätzlichen SASL-Servercookies, das mit SSPI-Nachrichtenfunktionen verschlüsselt ist, 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
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Keine unterstützt |
mindestens unterstützte Server- | Windows Server 2003 [Nur Desktop-Apps] |
Zielplattform- | Fenster |
Header- | sspi.h (include Security.h) |
Library | Secur32.lib |
DLL- | Secur32.dll |