Authentication Using ADFS Using WCF in a Windows Service

I have a wcf service that requests ADFS for a SAML token. This is a common snippet from the Internet for querying ADFS and returning a SAML token. However, it always ends with a line break return.Issue (rst) ;, Error ID3082: Request scope is invalid or not supported. At least at a high level, I cannot understand whether the error on the ADFS server server is either with the WCF service setting or with the code. Please help.

public SecurityToken GetSamlToken()
    {
            using (var factory = new WSTrustChannelFactory(
            new UserNameWSTrustBinding(SecurityMode.TransportWithMessageCredential),
            new EndpointAddress(new Uri("https://serv/adfs/services/trust/13/usernamemixed"))))
            {
            factory.Credentials.UserName.UserName = "username";
            factory.Credentials.UserName.Password = "password";
            factory.Credentials.ServiceCertificate.Authentication.CertificateValidationMode = X509CertificateValidationMode.None;
            factory.TrustVersion = TrustVersion.WSTrust13;                
            WSTrustChannel channel = null;                
            try
            {
                string KeyType;
                var rst = new RequestSecurityToken
                              {
                                  RequestType = WSTrust13Constants.RequestTypes.Issue,
                                  AppliesTo = new EndpointAddress("net.tcp://localhost:xxxx/Service1/mex"),                         
                                  KeyType = Microsoft.IdentityModel.Protocols.WSTrust.WSTrust13Constants.KeyTypes.Bearer,                                        
                              };

                channel = (WSTrustChannel)factory.CreateChannel();

                return channel.Issue(rst);
            }
            finally
            {
                if (channel != null)
                {
                    channel.Abort();
                }

                factory.Abort();
            }
        }
    }
+4
source share
2 answers

The problem was with

AppliesTo = new EndpointAddress("net.tcp://localhost:xxxx/Service1/mex")

uri, . , .

+3