На следующей схеме показана последовательность событий, в результате которых служба STS выдает маркер безопасности.

Конвейер службы маркеров безопасности
  1. Служба STS получает запрос маркера безопасности, который проверяется в методе ValidateRequest.

  2. Служба STS вызывает метод GetScope. Этот метод получает интерфейс IClaimsPrincipal вызывающей стороны и входящий запрос маркера безопасности и возвращает конфигурацию для запроса на выдачу маркера, представленную классом Scope . Это один из методов, которые необходимо реализовать при создании собственной службы STS. В этом методе можно нормализовать адрес проверяющей стороны и выбрать ключи для подписи и шифрования. Как правило, маркеры безопасности шифруются таким образом, чтобы их могла прочитать только проверяющая сторона. Дополнительные сведения см. в разделе Создание службы STS.

  3. Служба STS передает экземпляр Scope в метод CreateSecurityTokenDescriptor для создания экземпляра SecurityTokenDescriptor.

  4. Служба STS вызывает метод GetSecurityTokenHandler и получает объект SecurityTokenHandler на основании типа маркера и конфигурации SecurityTokenServiceConfiguration. Дополнительные сведения см. в разделе Настройка обработчиков маркеров.

  5. Служба STS вызывает метод GetIssuerName для получения имени поставщика маркера.

  6. Служба STS вызывает метод GetTokenLifetime для получения времени жизни маркера, передавая запрошенное время жизни. Как правило, она запрашивает время жизни на основании времени жизни, указанного в запросе маркера безопасности.

  7. Служба STS вызывает метод GetProofToken, передавая запрос маркера безопасности и экземпляр Scope, полученный ранее.

  8. Служба STS вызывает метод GetOutputClaimsIdentity. Этот метод получает интерфейс IClaimsPrincipal вызывающей стороны, входящий маркер безопасности запроса и объект Scope, возвращаемый методом GetScope, и возвращает интерфейс IClaimsIdentity, который будет включен в выданный маркер. Это один из методов, которые необходимо реализовать при создании собственной службы STS. Это позволяет определить, какие утверждения включены в маркер. Дополнительные сведения см. в разделе Создание службы STS.

  9. Служба STS вызывает метод GetDisplayToken, передавая запрошенный язык и интерфейс IClaimsIdentity, полученный из метода GetOutputClaimsIdentity.

  10. Служба STS вызывает метод GetResponse, в котором создается ответ на запрос маркера безопасности с использованием дескриптора SecurityTokenDescriptor, созданного ранее.