SecurityTokenService.Issue(ClaimsPrincipal, RequestSecurityToken) Metoda

Definice

Vydá token zabezpečení.

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

A ClaimsPrincipal , který představuje identitu žadatele o token.

request
RequestSecurityToken

A RequestSecurityToken , který představuje požadavek na token zabezpečení. To zahrnuje zprávu požadavku a také další informace související s klientem, jako je kontext autorizace.

Návraty

A RequestSecurityTokenResponse , který obsahuje vydaný token zabezpečení.

Poznámky

Tato metoda implementuje vazbu Issue definovanou ve specifikaci WS-Trust. Výchozí implementace Issue metody zpracovává příchozí požadavek (RST) prostřednictvím kanálu vystavování tokenů (vystavování deklarací identity) a vrací buď odpověď (RSTR), která obsahuje token zabezpečení s příslušnými deklaracemi identity k ověření žadatele s poskytovatelem prostředků, nebo příslušnou výjimkou. Kanál vystavování tokenů ve výchozí implementaci se skládá z volání následujících metod ( SecurityTokenService třídy ).

  1. Metoda ValidateRequest ověření požadavku (RST).

  2. Metoda GetScope získání objektu Scope , který obsahuje informace o předávající straně (RP) přidružené k požadavku. Tuto metodu je nutné přepsat. Pokud GetScope vrátí nullhodnotu , vyvolá se InvalidOperationException hodnota .

  3. Metoda CreateSecurityTokenDescriptor pro vrácení popisovače tokenu zabezpečení na základě RST a objektu Scope vráceného v předchozím kroku. Popisovač tokenu zabezpečení (SecurityTokenDescriptor) obsahuje informace o požadavku ve formuláři, který může použít obslužná rutina tokenů. Vlastnost SecurityTokenService.SecurityTokenDescriptor je nastavena na popisovač vrácený voláním. Pokud null se vrátí nebo pokud SigningCredentials je nullvlastnost popisovače , InvalidOperationException vyvolá se hodnota . Výjimka se vyvolá také v případě, že Scope.TokenEncryptionRequired vlastnost je true , ale EncryptingCredentials vlastnost na vrácený popisovač je null.

  4. Metoda GetSecurityTokenHandler pro získání příslušné obslužné rutiny tokenu na základě druhu požadovaného tokenu. Pokud null se vrátí, vyvolá se NotImplementedException hodnota .

  5. Metoda GetIssuerName pro získání názvu vystavitele tokenu. Vyvolá , InvalidOperationException pokud je null název nebo prázdný; v opačném případě nastaví TokenIssuerName vlastnost popisovače.

  6. Metoda GetTokenLifetime získání životnosti tokenu a nastavení Lifetime vlastnosti popisovače.

  7. Metoda GetProofToken získání tokenu proof, který se má zahrnout do vydaného tokenu Proof , a nastaví vlastnost popisovače.

  8. Metoda GetOutputClaimsIdentity pro získání deklarací identity, které se mají zahrnout do vystaveného tokenu Subject , a nastaví vlastnost popisovače. Tuto metodu je nutné přepsat.

  9. Metoda GetResponse pro vytvoření odpovědi (RSTR), která obsahuje vydaný token.

Metodu Issue můžete přepsat implementací vlastního kanálu vystavování tokenů. To však obvykle není nutné ve vývojovém a testovacím prostředí, pro které je určena většina vlastních implementací SecurityTokenService třídy. V mnoha z těchto případů přepíšete GetOutputClaimsIdentity metody a GetScope a volitelně přepíšete metodu ValidateRequest tak, aby poskytovala služby STS pro vaše prostředí. Pokud je potřeba další přizpůsobení, můžete ho často poskytnout přepsáním metod, které implementují jednotlivé fáze výchozího kanálu vystavování tokenů uvedených výše.

Platí pro