Kontextanforderungen

Kontextanforderungen werden als Kombination von Bitflags ausgedrückt, die entweder an die Funktion InitializeSecurityContext (Allgemein) oder AcceptSecurityContext (Allgemein) übergeben werden. Diese Flags wirken sich auf verschiedene Arten auf den Kontext aus. Nicht alle Flags gelten für alle Kontexte. Einige sind nur für den Server gültig, andere nur für den Client.

Der Aufrufer verwendet den fContextReq-Parameter des Aufrufs InitializeSecurityContext (General) oder AcceptSecurityContext (Allgemein), um eine Reihe von Flags anzugeben, die die erforderlichen Funktionen angeben. Wenn die Funktion zurückgibt, gibt der pfContextAttr-Parameter die Attribute des eingerichteten Kontexts an. Der Aufrufer bestimmt, ob die endgültigen Kontextattribute akzeptabel sind.

Flags, die von InitializeSecurityContext (Allgemein) angefordert oder von initializeSecurityContext (Allgemein) zurückgegeben werden, werden mit dem Präfix ISC versehen. Denen, die von AcceptSecurityContext (General) angefordert oder von AcceptSecurityContext (Allgemein) zurückgegeben werden, wird ASC vorangestellt. Flags, die an eine Funktion übergeben werden, enthalten REQ, während zurückgegebene Flags RET enthalten. Beispielsweise wird ein Anforderungsflag für die gegenseitige Authentifizierung, das an InitializeSecurityContext (Allgemein) übergeben wird, ISC_REQ_MUTUAL_AUTH. Ein Server, der die gegenseitige Authentifizierung anfordert, übergibt ASC_REQ_MUTUAL_AUTH an AcceptSecurityContext (Allgemein). Wenn die gegenseitige Authentifizierung erreicht wird, gibt InitializeSecurityContext (Allgemein) ISC_RET_MUTUAL_AUTH und AcceptSecurityContext (Allgemein) ASC_RET_MUTUAL_AUTH zurück. Wenn der Aufrufer die gegenseitige Authentifizierung anfordert, aber das Sicherheitspaket angibt, dass sie nicht ausgeführt werden kann, muss der Aufrufer entscheiden, ob der Kontext abgebrochen oder fortgesetzt werden soll.

In der folgenden Tabelle werden die verschiedenen Kontextanforderungsflags beschrieben.

Flag Beschreibung
DELEGIEREN
Der Server in der Transportanwendung kann neue Sicherheitskontexte erstellen, indem er die Identität des Clients annimmt, der von anderen Servern als Kontext des Clients akzeptiert wird. Delegate funktioniert nur, wenn MUTUAL_AUTH festgelegt ist. DELEGATE wird derzeit nur von Kerberos unterstützt. Außerdem delegiert Kerberos nur an einen Server, der über das Flag TRUSTED_FOR_DELEGATION verfügt. Verwenden Sie dieses Flag nicht für die eingeschränkte Delegierung.
MUTUAL_AUTH
Die kommunizierenden Parteien müssen sich gegenseitig authentifizieren. Ohne MUTUAL_AUTH authentifiziert der Client seine Identität beim Server. Bei MUTUAL_AUTH muss der Server auch seine Identität beim Client authentifizieren.
Bei Verwendung des Schannel-Sicherheitspakets legt der Server die ASC_RET_MUTUAL_AUTH Konstante erst beim letzten Aufruf von AcceptSecurityContext (Negotiate) fest, nachdem die Zertifikatzuordnung erfolgreich abgeschlossen wurde.
REPLAY_DETECT
Das Sicherheitspaket erkennt wiedergegebene Pakete und benachrichtigt den Aufrufer, wenn ein Paket wiedergegeben wurde. Die Verwendung dieses Flags impliziert alle Bedingungen, die vom INTEGRITY-Flag angegeben werden.
SEQUENCE_DETECT
Der Kontext muss zu einem späteren Zeitpunkt über die Nachrichtenunterstützungsfunktionen die Out-of-Order-Übermittlung von Paketen erkennen können. Die Verwendung dieses Flags impliziert alle Bedingungen, die durch das INTEGRITY-Flag angegeben werden.
VERTRAULICHKEIT
Der Kontext kann Daten während der Übertragung mit den Funktionen EncryptMessage (Allgemein) und DecryptMessage (Allgemein) schützen. Das VERTRAULICHKEITSflag funktioniert nicht, wenn der generierte Kontext für das Gastkonto gilt.
USE_SESSION_KEY
Ein neuer Sitzungsschlüssel muss ausgehandelt werden.
PROMPT_FOR_CREDS
Wenn der Client ein interaktiver Benutzer ist, muss das Sicherheitspaket den Benutzer nach Möglichkeit zur Eingabe der entsprechenden Anmeldeinformationen auffordern.
USE_SUPPLIED_CREDS
Paketspezifische Anmeldeinformationen sind im Eingabepuffer verfügbar. Das Sicherheitspaket kann diese Anmeldeinformationen verwenden, um die Verbindung zu authentifizieren.
SAVE_SUPPLIED_CREDS
Die angegebenen Anmeldeinformationen sollten mit den zusätzlichen Anmeldeinformationen zwischengespeichert werden.
ALLOCATE_MEMORY
Das Sicherheitspaket muss Arbeitsspeicher zuordnen. Der Aufrufer muss schließlich die FreeContextBuffer-Funktion aufrufen, um vom Sicherheitspaket zugewiesenen Arbeitsspeicher freizugeben.
USE_DCE_STYLE
Der Aufrufer erwartet eine Drei-Bein-Authentifizierungstransaktion.
DATAGRAMM
Datagrammsemantik muss verwendet werden. Weitere Informationen finden Sie unter Datagrammkontexte.
CONNECTION
Verbindungssemantik muss verwendet werden. Weitere Informationen finden Sie unter Verbindungsorientierte Kontexte.
Datenstrom
Streamsemantik muss verwendet werden. Weitere Informationen finden Sie unter Streamkontexte.
EXTENDED_ERROR
Fehlermeldungen für den Peer müssen generiert werden, wenn der Kontext fehlschlägt.
INTEGRITÄT
Die Pufferintegrität kann überprüft werden, aber es ist keine Sequenzierung oder Antworterkennung aktiviert.
NO_INTEGRITY
Die INTEGRITÄTsanforderung wird ignoriert.
IDENTIFIZIEREN
Wenn ein Server die Identität eines Kontexts angibt, für den dieses Flag festgelegt ist, führt dieser Identitätswechsel zu extrem eingeschränktem Zugriff. Der Identitätswechsel mit identify set wird verwendet, um die Identität des Clients zu überprüfen.