Korzystanie z zabezpieczeń komunikatów

W tej sekcji omówiono zabezpieczenia komunikatów programu WCF podczas korzystania z programu NetMsmqBinding.

Uwaga

Przed przeczytaniem tego tematu zaleca się zapoznanie się z tematem Pojęcia dotyczące zabezpieczeń.

Poniższa ilustracja przedstawia koncepcyjny model komunikacji w kolejce przy użyciu programu WCF. Ta ilustracja i terminologia służą do wyjaśnienia

pojęcia dotyczące bezpieczeństwa transportu.

Queued Application Diagram

Podczas wysyłania komunikatów w kolejce przy użyciu programu WCF komunikat WCF jest dołączany jako treść komunikatu kolejkowania komunikatów (MSMQ). Podczas gdy zabezpieczenia transportu zabezpieczają cały komunikat MSMQ, zabezpieczenia komunikatów (lub SOAP) zabezpieczają tylko treść komunikatu MSMQ.

Kluczową koncepcją zabezpieczeń komunikatów jest to, że klient zabezpiecza komunikat dla odbieranej aplikacji (usługi), w przeciwieństwie do zabezpieczeń transportu, w których klient zabezpiecza komunikat dla kolejki docelowej. W związku z tym usługa MSMQ nie odgrywa żadnej roli podczas zabezpieczania komunikatu WCF przy użyciu zabezpieczeń komunikatów.

Zabezpieczenia komunikatów programu WCF dodaje nagłówki zabezpieczeń do komunikatu WCF, który integruje się z istniejącymi infrastrukturami zabezpieczeń, takimi jak certyfikat lub protokół Kerberos.

Typ poświadczeń komunikatu

Korzystając z zabezpieczeń komunikatów, usługa i klient mogą prezentować poświadczenia w celu uwierzytelnienia się nawzajem. Zabezpieczenia komunikatów można wybrać, ustawiając Security tryb na Message lub Both (czyli użyć zabezpieczeń transportu i zabezpieczeń komunikatów).

Usługa może użyć Current właściwości do sprawdzenia poświadczeń używanych do uwierzytelniania klienta. Można to również użyć do dalszych kontroli autoryzacji, które usługa wybierze do zaimplementowania.

W tej sekcji opisano różne typy poświadczeń i sposób ich używania z kolejkami.

Certyfikat

Typ poświadczeń certyfikatu używa certyfikatu X.509 do identyfikowania usługi i klienta.

W typowym scenariuszu klient i usługa są wystawiane prawidłowy certyfikat przez zaufany urząd certyfikacji. Następnie połączenie zostanie nawiązane, klient uwierzytelnia ważność usługi przy użyciu certyfikatu usługi, aby zdecydować, czy może ufać usłudze. Podobnie usługa używa certyfikatu klienta do weryfikowania zaufania klienta.

Biorąc pod uwagę rozłączony charakter kolejek, klient i usługa mogą nie być w trybie online w tym samym czasie. W związku z tym klient i usługa muszą wymieniać certyfikaty poza pasmem. W szczególności klient, ze względu na posiadanie certyfikatu usługi (który może być połączony z urzędem certyfikacji) w zaufanym magazynie, musi ufać, że komunikuje się z właściwą usługą. W przypadku uwierzytelniania klienta usługa używa certyfikatu X.509 dołączonego do komunikatu, aby dopasować go do certyfikatu w swoim magazynie w celu zweryfikowania autentyczności klienta. Ponownie certyfikat musi być w łańcuchu do urzędu certyfikacji.

Na komputerze z systemem Windows certyfikaty są przechowywane w kilku rodzajach sklepów. Aby uzyskać więcej informacji na temat różnych magazynów, zobacz Magazyny certyfikatów.

Windows

Typ poświadczeń komunikatu systemu Windows używa protokołu Kerberos.

Protokół Kerberos to mechanizm zabezpieczeń, który uwierzytelnia użytkowników w domenie i umożliwia uwierzytelnieniom użytkownikom ustanawianie bezpiecznych kontekstów z innymi jednostkami w domenie.

Problem z używaniem protokołu Kerberos do komunikacji w kolejce polega na tym, że bilety zawierające tożsamość klienta dystrybuowane przez centrum dystrybucji kluczy (KDC) są stosunkowo krótkotrwałe. Okres istnienia jest skojarzony z biletem Protokołu Kerberos, który wskazuje ważność biletu. W związku z tym, biorąc pod uwagę duże opóźnienie, nie można mieć pewności, że token jest nadal prawidłowy dla usługi, która uwierzytelnia klienta.

Należy pamiętać, że w przypadku korzystania z tego typu poświadczeń usługa musi być uruchomiona na koncie USŁUGI.

Protokół Kerberos jest domyślnie używany podczas wybierania poświadczeń komunikatu.

Hasło nazwy użytkownika

Za pomocą tej właściwości klient może uwierzytelnić się na serwerze przy użyciu hasła nazwy użytkownika w nagłówku zabezpieczeń komunikatu.

Issuedtoken

Klient może użyć usługi tokenu zabezpieczającego do wystawienia tokenu, który następnie może zostać dołączony do komunikatu usługi w celu uwierzytelnienia klienta.

Korzystanie z transportu i zabezpieczeń komunikatów

W przypadku korzystania zarówno z zabezpieczeń transportu, jak i zabezpieczeń komunikatów certyfikat używany do zabezpieczenia komunikatu zarówno na poziomie transportu, jak i protokołu SOAP musi być taki sam.

Zobacz też