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, содержащий выданный токен безопасности.

Комментарии

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

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

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

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

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

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

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

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

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

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

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

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