Udostępnij za pośrednictwem


SecurityTokenService.Issue(ClaimsPrincipal, RequestSecurityToken) Metoda

Definicja

Wystawia token zabezpieczający.

public:
 virtual System::IdentityModel::Protocols::WSTrust::RequestSecurityTokenResponse ^ Issue(System::Security::Claims::ClaimsPrincipal ^ principal, System::IdentityModel::Protocols::WSTrust::RequestSecurityToken ^ request);
public virtual System.IdentityModel.Protocols.WSTrust.RequestSecurityTokenResponse Issue(System.Security.Claims.ClaimsPrincipal principal, System.IdentityModel.Protocols.WSTrust.RequestSecurityToken request);
abstract member Issue : System.Security.Claims.ClaimsPrincipal * System.IdentityModel.Protocols.WSTrust.RequestSecurityToken -> System.IdentityModel.Protocols.WSTrust.RequestSecurityTokenResponse
override this.Issue : System.Security.Claims.ClaimsPrincipal * System.IdentityModel.Protocols.WSTrust.RequestSecurityToken -> System.IdentityModel.Protocols.WSTrust.RequestSecurityTokenResponse
Public Overridable Function Issue (principal As ClaimsPrincipal, request As RequestSecurityToken) As RequestSecurityTokenResponse

Parametry

principal
ClaimsPrincipal

Obiekt ClaimsPrincipal reprezentujący tożsamość osoby żądającej tokenu.

request
RequestSecurityToken

Element RequestSecurityToken reprezentujący żądanie tokenu zabezpieczającego. Obejmuje to komunikat żądania, a także inne informacje związane z klientem, takie jak kontekst autoryzacji.

Zwraca

Element RequestSecurityTokenResponse zawierający wystawiony token zabezpieczający.

Uwagi

Ta metoda implementuje powiązanie problemu zdefiniowane w specyfikacji WS-Trust. Domyślna implementacja Issue metody przetwarza przychodzące żądanie (RST) za pośrednictwem potoku wystawiania tokenu (wystawiania oświadczeń) i zwraca odpowiedź (RSTR), która zawiera token zabezpieczający z odpowiednimi oświadczeniami w celu uwierzytelnienia osoby żądającej za pomocą dostawcy zasobów lub odpowiedniego wyjątku. Potok wystawiania tokenu w domyślnej implementacji składa się z wywołań do następujących metod ( SecurityTokenService klasy).

  1. Metoda ValidateRequest sprawdzania poprawności żądania (RST).

  2. Metoda GetScope pobierania obiektu zawierającego Scope informacje o jednostki uzależnionej skojarzonej z żądaniem. Tę metodę należy zastąpić. Jeśli GetScope funkcja zwraca nullwartość , InvalidOperationException jest zgłaszana wartość .

  3. Metoda CreateSecurityTokenDescriptor zwracania deskryptora tokenu zabezpieczającego na podstawie RST i Scope obiektu zwróconego w poprzednim kroku. Deskryptor tokenu zabezpieczającego (SecurityTokenDescriptor) zawiera informacje o żądaniu w postaci, która może być używana przez program obsługi tokenów. Właściwość jest ustawiona SecurityTokenService.SecurityTokenDescriptor na deskryptor zwracany przez wywołanie . Jeśli null jest zwracana lub właściwość SigningCredentials deskryptora to null, InvalidOperationException jest zgłaszana wartość . Wyjątek jest również zgłaszany, jeśli właściwość jesttrue, ale EncryptingCredentials właściwość w zwracanym deskryptorze to null.Scope.TokenEncryptionRequired

  4. Metoda pobierania GetSecurityTokenHandler odpowiedniej procedury obsługi tokenów na podstawie rodzaju żądanego tokenu. Jeśli null zostanie zwrócona wartość , zostanie zwrócona NotImplementedException wartość .

  5. Metoda GetIssuerName pobierania nazwy wystawcy tokenu. Zwraca wartość InvalidOperationException , jeśli nazwa jest null lub jest pusta; w przeciwnym razie ustawia TokenIssuerName właściwość deskryptora.

  6. Metoda GetTokenLifetime pobierania okresu istnienia tokenu i ustawia Lifetime właściwość w deskryptorze.

  7. Metoda GetProofToken uzyskiwania tokenu dowodowego do uwzględnienia w wystawionym tokenie i ustawia Proof właściwość w deskryptorze.

  8. Metoda GetOutputClaimsIdentity pobierania oświadczeń do uwzględnienia w wystawionym tokenie i ustawia Subject właściwość w deskryptorze. Tę metodę należy zastąpić.

  9. Metoda GetResponse tworzenia odpowiedzi (RSTR), która zawiera wystawiony token.

Można zastąpić metodę Issue w celu zaimplementowania niestandardowego potoku wystawiania tokenów, jednak zwykle nie jest to konieczne w środowiskach deweloperskich i testowych, dla których mają być przeznaczone większość niestandardowych implementacji SecurityTokenService klasy. W wielu z tych przypadków zastąpisz GetOutputClaimsIdentity metody i GetScope i opcjonalnie zastąpisz ValidateRequest metodę , aby zapewnić usługę STS dla danego środowiska. Jeśli konieczne jest dalsze dostosowanie, często można je podać, przesłaniając metody implementujące każdy etap domyślnego potoku wystawiania tokenu wymienionego powyżej.

Dotyczy