На следующей схеме показана последовательность событий, в результате которых служба STS выдает маркер безопасности.
- Служба STS получает запрос маркера безопасности, который
проверяется в методе ValidateRequest.
- Служба STS вызывает метод GetScope. Этот метод получает
интерфейс IClaimsPrincipal
вызывающей стороны и входящий запрос маркера безопасности и
возвращает конфигурацию для запроса на выдачу маркера,
представленную классом Scope
. Это один из методов, которые необходимо реализовать при создании
собственной службы STS. В этом методе можно нормализовать адрес
проверяющей стороны и выбрать ключи для подписи и шифрования. Как
правило, маркеры безопасности шифруются таким образом, чтобы их
могла прочитать только проверяющая сторона. Дополнительные сведения
см. в разделе Создание службы
STS.
- Служба STS передает экземпляр Scope
в метод CreateSecurityTokenDescriptor для создания
экземпляра SecurityTokenDescriptor.
- Служба STS вызывает метод GetSecurityTokenHandler и
получает объект SecurityTokenHandler
на основании типа маркера и конфигурации
SecurityTokenServiceConfiguration. Дополнительные сведения см.
в разделе Настройка обработчиков
маркеров.
- Служба STS вызывает метод GetIssuerName для получения
имени поставщика маркера.
- Служба STS вызывает метод GetTokenLifetime для получения
времени жизни маркера, передавая запрошенное время жизни. Как
правило, она запрашивает время жизни на основании времени жизни,
указанного в запросе маркера безопасности.
- Служба STS вызывает метод GetProofToken, передавая
запрос маркера безопасности и экземпляр Scope,
полученный ранее.
- Служба STS вызывает метод GetOutputClaimsIdentity. Этот
метод получает интерфейс IClaimsPrincipal
вызывающей стороны, входящий маркер безопасности запроса и объект
Scope,
возвращаемый методом GetScope, и возвращает интерфейс
IClaimsIdentity,
который будет включен в выданный маркер. Это один из методов,
которые необходимо реализовать при создании собственной службы STS.
Это позволяет определить, какие утверждения включены в маркер.
Дополнительные сведения см. в разделе Создание службы
STS.
- Служба STS вызывает метод GetDisplayToken, передавая
запрошенный язык и интерфейс IClaimsIdentity,
полученный из метода GetOutputClaimsIdentity.
- Служба STS вызывает метод GetResponse, в котором
создается ответ на запрос маркера безопасности с использованием
дескриптора SecurityTokenDescriptor,
созданного ранее.