Zaufanie do usług sieci Web (WS-Trust) to struktura służąca do ustanawiania zaufania między dwiema stronami w domenach homogenicznych lub heterogenicznych. Protokół ten ułatwia wymianę zaufanych komunikatów za pośrednictwem prostego protokołu dostępu do obiektu (SOAP) za pośrednictwem tokenów zabezpieczających między dwiema stronami. Token zabezpieczający to zwykle zestaw stwierdzeń dotyczących tematu przez wystawcę tokenu.
Zasadniczo struktura WS-Trust opisuje token jako blok danych, który zawiera potwierdzenia dotyczące użytkownika i pewne informacje uwierzytelniające potrzebne aplikacji. Może używać różnych typów tokenów, takich jak certyfikaty X.509, Security Assertion Markup Language (SAML) lub tokeny oparte na protokole Kerberos, zgodnie z uzgodnionym formatem i wymaganiami. Wydany token ma być prezentowane przez podmiot w celu uzyskania dostępu do zasobu.
Rysunek 11.3 przedstawia model bezpośredniego zaufania.
Sekwencja kroków w tym modelu jest następująca:
- Użytkownik żąda tokenu z usługi tokenu zabezpieczającego (STS). To żądanie zawiera wymagania aplikacji wraz z informacjami o tożsamości użytkownika.
- STS weryfikuje użytkownika.
- STS wysyła token do uwierzytelnionego użytkownika. Ten token zawiera potwierdzenia dotyczące użytkownika, kluczy i innych informacji, które użytkownik może przedstawić aplikacji zasobów.
- Użytkownik żąda dostępu, przedstawiając wystawiony token do aplikacji. Aplikacja z kolei waliduje token i przyznaje dostęp.
Główne obowiązki STS są następujące:
- Wydanie tokena. STS początkowo przeprowadza walidację przedstawionej przez użytkownika tożsamości i wydaje token w przypadku pomyślnej weryfikacji.
- Wymiana i walidacja tokena. Gdy tożsamość ma być używana w różnych domenach, STS komunikujących się stron wymieniają i weryfikują token wydany przez drugą stronę STS.
Model bezpośredniego zaufania można rozszerzyć na inne scenariusze, gdy użytkownik musi uzyskać dostęp do zasobu w różnych domenach. Ten model jest powszechnie znany jako federacja zaufania lub model zaufania pośredniego. W tym modelu istnieje niejawne zaufanie między STS różnych domen. To zaufanie można ustanowić za pomocą infrastruktury PKI lub protokołu Kerberos. Token zabezpieczający wydany przez STS domeny A (STSA) jest przedstawiany jako poświadczenia dla STS domeny B (STSB) w celu uzyskania dostępu do zasobów w domenie B. Model ten jest wydajny i ułatwia współdziałanie, unikając w ten sposób replikacji tożsamości.