Wymagania dotyczące kontekstu
Wymagania kontekstowe są wyrażane jako kombinacja flag bitowych przekazywanych do funkcji InitializeSecurityContext (ogólne) lub AcceptSecurityContext (Ogólne). Te flagi wpływają na kontekst na wiele sposobów. Nie wszystkie flagi mają zastosowanie do wszystkich kontekstów. Niektóre są prawidłowe tylko dla serwera, inne tylko dla klienta.
Obiekt wywołujący używa fContextReq parametru InitializeSecurityContext (Ogólne) lub AcceptSecurityContext (Ogólne) wywołania w celu określenia zestawu flag wskazujących wymagane możliwości. Po powrocie funkcji parametr pfContextAttr wskazuje atrybuty ustalonego kontekstu. Obiekt wywołujący określa, czy ostateczne atrybuty kontekstu są dopuszczalne.
Flagi żądane z lub zwrócone przez InitializeSecurityContext (ogólne) są poprzedzone isc. Osoby żądane z lub zwrócone przez AcceptSecurityContext (ogólne) są prefiksowane przez usługę ASC. Flagi przekazywane do funkcji obejmują funkcję REQ, a zwrócone flagi obejmują RET. Na przykład flaga żądania dla wzajemnego uwierzytelniania przekazana do InitializeSecurityContext (Ogólne) jest ISC_REQ_MUTUAL_AUTH. Serwer żądający wzajemnego uwierzytelniania przekazuje ASC_REQ_MUTUAL_AUTH do AcceptSecurityContext (ogólne). Jeśli uwierzytelnianie wzajemne jest osiągane, InitializeSecurityContext (Ogólne) zwraca ISC_RET_MUTUAL_AUTH i AcceptSecurityContext (ogólne) zwraca ASC_RET_MUTUAL_AUTH. Jeśli obiekt wywołujący żąda wzajemnego uwierzytelniania, ale pakiet zabezpieczeń wskazuje, że nie można go wykonać, wywołujący musi zdecydować, czy anulować kontekst, czy kontynuować.
W poniższej tabeli opisano różne flagi wymagań kontekstowych.
Flaga | Opis |
---|---|
DELEGAT |
Serwer w aplikacji transportowej może tworzyć nowe konteksty zabezpieczeń personifikujące klienta, który zostanie zaakceptowany przez inne serwery jako konteksty klienta. Delegat działa tylko wtedy, gdy MUTUAL_AUTH jest ustawiona. Delegat jest obecnie obsługiwany tylko przez Kerberos. Ponadto protokół Kerberos deleguje tylko do serwera, który ma flagę TRUSTED_FOR_DELEGATION. Nie używaj tej flagi dla ograniczonego delegowania . |
MUTUAL_AUTH |
Osoby komunikujące się muszą uwierzytelniać swoje tożsamości nawzajem. Bez MUTUAL_AUTH klient uwierzytelnia swoją tożsamość na serwerze. W przypadku MUTUAL_AUTH serwer musi również uwierzytelnić swoją tożsamość na kliencie. W przypadku korzystania z pakietu zabezpieczeń Schannel serwer ustawia stałą ASC_RET_MUTUAL_AUTH tylko w ostatnim wywołaniu AcceptSecurityContext (Negotiate), po pomyślnym zakończeniu mapowania certyfikatów. |
REPLAY_DETECT |
Pakiet zabezpieczeń wykrywa odtwarzane pakiety i powiadamia obiekt wywołujący o ponownym odtwarzaniu pakietu. Użycie tej flagi oznacza wszystkie warunki określone przez flagę INTEGRITY. |
SEQUENCE_DETECT |
Kontekst musi być dozwolony do wykrywania dostarczania pakietów poza kolejnością później za pomocą funkcji obsługi komunikatów. Użycie tej flagi oznacza wszystkie warunki określone przez flagę INTEGRITY. |
POUFNOŚĆ |
Kontekst może chronić dane podczas przesyłania przy użyciu funkcjiEncryptMessage (ogólne) iDecryptMessage (ogólne). Flaga POUFNOŚCI nie działa, jeśli wygenerowany kontekst jest przeznaczony dla konta gościa. |
USE_SESSION_KEY |
Należy wynegocjować nowyklucz sesji. |
PROMPT_FOR_CREDS |
Jeśli klient jest użytkownikiem interaktywnym, pakiet zabezpieczeń musi, jeśli to możliwe, monitować użytkownika o odpowiednie poświadczenia . |
USE_SUPPLIED_CREDS |
Informacje o poświadczeniach specyficznych dla pakietu są dostępne w buforze wejściowym. Pakiet zabezpieczeń może używać tych poświadczeń do uwierzytelniania połączenia. |
SAVE_SUPPLIED_CREDS |
Podane poświadczenia powinny być buforowane przy użyciu poświadczeń uzupełniających. |
ALLOCATE_MEMORY |
Pakiet zabezpieczeń musi przydzielić pamięć. Obiekt wywołujący musi ostatecznie wywołać funkcję FreeContextBuffer, aby zwolnić pamięć przydzieloną przez pakiet zabezpieczeń. |
USE_DCE_STYLE |
Obiekt wywołujący oczekuje uwierzytelniania trzyczęściowego transakcji. |
DATAGRAM |
należy użyć semantyki datagramu. Aby uzyskać więcej informacji, zobacz Datagram Contexts. |
POŁĄCZENIE |
Należy użyć semantyki połączeń. Aby uzyskać więcej informacji, zobacz Connection-Oriented Contexts. |
STRUMIEŃ |
Należy użyć semantyki strumienia. Aby uzyskać więcej informacji, zobacz Stream Contexts. |
EXTENDED_ERROR |
Jeśli kontekst zakończy się niepowodzeniem, należy wygenerować komunikaty odpowiedzi o błędach dla elementu równorzędnego. |
PRAWOŚĆ |
Integralność buforu można zweryfikować, ale nie włączono sekwencjonowania ani wykrywania odpowiedzi. |
NO_INTEGRITY |
Wymaganie integralności jest ignorowane. |
IDENTYFIKOWAĆ |
Gdy serwer personifikuje kontekst z ustawioną tą flagą, personifikacja daje bardzo ograniczony dostęp. Personifikacja z zestawem IDENTIFY służy do weryfikowania tożsamości klienta. |