Как проверить токен ADFS SAML

В настоящее время я генерирую токены SAML из ADFS следующим образом:

 WSTrustChannelFactory factory = null;
        try
        {
            // use a UserName Trust Binding for username authentication
            factory = new WSTrustChannelFactory(
                new UserNameWSTrustBinding(SecurityMode.TransportWithMessageCredential),
                 new EndpointAddress("https://adfs.company.com/adfs/services/trust/13/usernamemixed"));

            factory.TrustVersion = TrustVersion.WSTrust13;

            factory.Credentials.UserName.UserName = "user";
            factory.Credentials.UserName.Password = "pw";


            var rst = new RequestSecurityToken
            {
                RequestType = RequestTypes.Issue,
                AppliesTo = new EndpointReference(relyingPartyId),
                KeyType = KeyTypes.Bearer
            };
            IWSTrustChannelContract channel = factory.CreateChannel();
              GenericXmlSecurityToken genericToken = channel.Issue(rst) 
               as     GenericXmlSecurityToken;
         }
        finally
        {
            if (factory != null)
            {
                try
                {
                    factory.Close();
                }
                catch (CommunicationObjectFaultedException)
                {
                    factory.Abort();
                }
            }
        }

Теперь предположим, что я создаю веб-приложение, которое использует эти токены для аутентификации. Насколько я знаю, рабочий процесс должен быть таким:

Создать токенклиент получает сгенерированный токен (после действительного входа в систему)клиент кэширует токенклиент использует токен для следующего входавеб-приложение проверяет токен, не нужно вызывать ADFS

Как я могу проверить, что токен, который предоставляет клиент, действителен? Нужен ли сертификат сервера ADFS для расшифровки токена?

Ответы на вопрос(2)

Ваш ответ на вопрос