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. |