SecurityTokenService.Issue(ClaimsPrincipal, RequestSecurityToken) Метод

Определение

Выдает токен безопасности.

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

Параметры

principal
ClaimsPrincipal

Объект ClaimsPrincipal, представляющий удостоверение стороны, запрашивающей токен.

request
RequestSecurityToken

Объект RequestSecurityToken, представляющий запрос токена безопасности. Содержит сообщение запроса, а также другую связанную с клиентом информацию, например контекст авторизации.

Возвращаемое значение

RequestSecurityTokenResponse

Объект RequestSecurityTokenResponse, содержащий выданный токен безопасности.

Комментарии

Этот метод реализует привязку Issue, определенную в спецификации WS-Trust. Реализация Issue метода по умолчанию обрабатывает входящий запрос (RST) с помощью конвейера выдачи маркеров (выдачи утверждений) и возвращает ответ (RSTR), содержащий маркер безопасности с соответствующими утверждениями для проверки подлинности инициатора запроса с помощью поставщика запросов или соответствующего исключения. Конвейер выдачи маркеров в реализации по умолчанию состоит из вызовов следующих методов ( SecurityTokenService класса).

  1. Метод ValidateRequest для проверки запроса (RST).

  2. Метод GetScope для получения Scope объекта, содержащего сведения о проверяющей стороне (RP), связанной с запросом. Этот метод необходимо переопределить. Если GetScope возвращается null, InvalidOperationException создается исключение.

  3. Метод CreateSecurityTokenDescriptor , возвращающий дескриптор маркера безопасности на основе RST и объекта, Scope возвращенного на предыдущем шаге. Дескриптор маркера безопасности (SecurityTokenDescriptor) содержит сведения о запросе в форме, которую может использовать обработчик маркеров. Для SecurityTokenService.SecurityTokenDescriptor свойства задается дескриптор, возвращаемый вызовом. Если null возвращается или SigningCredentials имеется nullсвойство дескриптора, InvalidOperationException возникает исключение. Исключение также возникает, если свойство являетсяtrue, но EncryptingCredentials свойство возвращаемого дескриптора равно null.Scope.TokenEncryptionRequired

  4. Метод GetSecurityTokenHandler для получения соответствующего обработчика маркеров на основе типа запрошенного токена. Если null возвращается, NotImplementedException создается исключение.

  5. Метод GetIssuerName для получения имени издателя для маркера. Создает исключение, InvalidOperationException если имя или null пустое; в противном случае задает TokenIssuerName свойство дескриптора.

  6. Метод GetTokenLifetime для получения времени существования маркера и задает Lifetime свойство дескриптора.

  7. Метод GetProofToken для получения маркера проверки для включения в выданный маркер и задает Proof свойство дескриптора.

  8. Метод GetOutputClaimsIdentity для получения утверждений для включения в выданный токен и задает Subject свойство дескриптора. Этот метод необходимо переопределить.

  9. Метод GetResponse для создания ответа (RSTR), содержащего выданный маркер.

Можно переопределить Issue метод для реализации конвейера выдачи пользовательских маркеров. Однако обычно это необязательно в средах разработки и тестирования, для которых предназначены большинство пользовательских реализаций SecurityTokenService класса. Во многих из этих случаев вы переопределяете методы и GetScope при необходимости переопределяете GetOutputClaimsIdentity ValidateRequest метод для предоставления обслуживаемой службы STS для вашей среды. Если требуется дополнительная настройка, ее часто можно предоставить, переопределив методы, реализующие каждый этап конвейера выдачи маркеров по умолчанию, перечисленных выше.

Применяется к