So überprüfen Sie das ADFS-SAML-Token

Ich generiere derzeit SAML-Token aus ADFS wie folgt:

 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();
                }
            }
        }

Angenommen, ich erstelle eine Webanwendung, die diese Token zur Authentifizierung verwendet. Soweit ich weiß, sollte der Workflow so aussehen:

Token generierenClient wird Token generiert (nach gültigem Login)Client zwischenspeichert TokenDer Client verwendet das Token für die nächste AnmeldungWebanwendung validiert Token, muss ADFS nicht aufrufen

Wie kann ich überprüfen, ob das vom Client präsentierte Token gültig ist? Benötige ich das Zertifikat des ADFS-Servers, um das Token zu entschlüsseln?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage