How To: Use AD FS Endpoints When Developing Claims Aware WCF Services Using WIF

This post is based on WIF Built-in Bindings Overview and AD FS Endpoints. This information should provide a more cohesive view for developers when developing claims aware WCF services using AD FS and WIF.

There are 30 scenarios here. Working on guidance when to use what.

WS-Trust 1.3 endpoints

AD FS Endpoint

WCF Binding

/adfs/services/trust/13/windows Trust13WindowsMessage
WindowsWSTrustBinding windowsTrust13MessageBinding = new WindowsWSTrustBinding();

 

AD FS Endpoint

WCF Binding

/adfs/services/trust/13/windowsmixed Trust13WindowsMixed
WindowsWSTrustBinding windowsTrust13MixedBinding =                         new WindowsWSTrustBinding(SecurityMode.TransportWithMessageCredential);

 

AD FS Endpoint

WCF Binding

/adfs/services/trust/13/windowstransport Trust13WindowsTransport
WindowsWSTrustBinding windowsTrust13TransportBinding =                                                             new WindowsWSTrustBinding(SecurityMode.Transport);

 

AD FS Endpoint

WCF Binding

/adfs/services/trust/13/certificate Trust13CertificateMessage
CertificateWSTrustBinding certificateTrust13MessageBinding = new CertificateWSTrustBinding();

 

AD FS Endpoint

WCF Binding

/adfs/services/trust/13/certificatemixed Trust13CertificateMixed
CertificateWSTrustBinding certificateTrust13MixedBinding =                          new CertificateWSTrustBinding(SecurityMode.TransportWithMessageCredential);

 

AD FS Endpoint

WCF Binding

/adfs/services/trust/13/certificatetransport Trust13CertificateTransport
CertificateWSTrustBinding certificateTrust13TransportBinding =                                                                new CertificateWSTrustBinding(SecurityMode.Transport);

 

AD FS Endpoint

WCF Binding

/adfs/services/trust/13/username Trust13UserNameMessage
UserNameWSTrustBinding userNameTrust13MessageBinding = new UserNameWSTrustBinding();

 

AD FS Endpoint

WCF Binding

/adfs/services/trust/13/usernamemixed Trust13UserNameMixed

UserNameWSTrustBinding userNameTrust13MixedBinding =                          new UserNameWSTrustBinding(SecurityMode.TransportWithMessageCredential);

 

AD FS Endpoint

WCF Binding

/adfs/services/trust/13/usernamebasictransport Trust13UserNameBasicTransport

UserNameWSTrustBinding userNameTrust13TransportBasicBinding =             new UserNameWSTrustBinding(SecurityMode.Transport, HttpClientCredentialType.Basic);

 

AD FS Endpoint

WCF Binding

N/A Trust13UserNameDigestTransport

UserNameWSTrustBinding userNameTrust13TransportDigestBinding =           new UserNameWSTrustBinding(SecurityMode.Transport, HttpClientCredentialType.Digest);

 

AD FS Endpoint

WCF Binding

/adfs/services/trust/13/kerberosmixed Trust13KerberosMixed

KerberosWSTrustBinding kerberosTrust13MixedBinding =                             new KerberosWSTrustBinding(SecurityMode.TransportWithMessageCredential);

 

WS-Trust 1.3 Issued Token endpoints

AD FS Endpoint

WCF Binding

/adfs/services/trust/13/issuedtokenasymmetricbasic256 Trust13IssuedTokenAsymmetricBasic256

IssuedTokenWSTrustBinding issuedTokenBinding = new IssuedTokenWSTrustBinding(); issuedTokenBinding.KeyType = SecurityKeyType.AsymmetricKey;

 

AD FS Endpoint

WCF Binding

/adfs/services/trust/13/issuedtokenmixedasymmetricbasic256 Trust13IssuedTokenMixedAsymmetricBasic256

IssuedTokenWSTrustBinding issuedTokenBinding = new IssuedTokenWSTrustBinding(); issuedTokenBinding.SecurityMode = SecurityMode.TransportWithMessageCredential; issuedTokenBinding.KeyType = SecurityKeyType.AsymmetricKey;

 

AD FS Endpoint

WCF Binding

/adfs/services/trust/13/issuedtokenmixedsymmetricbasic256 Trust13IssuedTokenMixedSymmetricBasic256

IssuedTokenWSTrustBinding issuedTokenBinding = new IssuedTokenWSTrustBinding();  issuedTokenBinding.SecurityMode = SecurityMode.TransportWithMessageCredential;

 

AD FS Endpoint

WCF Binding

/adfs/services/trust/13/issuedtokensymmetricbasic256 Trust13IssuedTokenSymmetricBasic256

 

WS-Trust 2005 endpoints

AD FS Endpoint

WCF Binding

/adfs/services/trust/2005/windows TrustFeb2005WindowsMessage

WindowsWSTrustBinding windowsTrustFeb2005MessageBinding = new WindowsWSTrustBinding(); windowsTrustFeb2005MessageBinding.TrustVersion = TrustVersion.WSTrustFeb2005;

 

AD FS Endpoint

WCF Binding

/adfs/services/trust/2005/windowsmixed TrustFeb2005WindowsMixed

WindowsWSTrustBinding windowsTrustFeb2005MixedBinding =                              new WindowsWSTrustBinding(SecurityMode.TransportWithMessageCredential); windowsTrustFeb2005MixedBinding.TrustVersion = TrustVersion.WSTrustFeb2005;

 

AD FS Endpoint

WCF Binding

/adfs/services/trust/2005/windowstransport TrustFeb2005WindowsTransport

WindowsWSTrustBinding windowsTrustFeb2005TransportBinding =                                                                  new WindowsWSTrustBinding(SecurityMode.Transport); windowsTrustFeb2005TransportBinding.TrustVersion = TrustVersion.WSTrustFeb2005;

 

AD FS Endpoint

WCF Binding

/adfs/services/trust/2005/certificate TrustFeb2005CertificateMessage

CertificateWSTrustBinding certificateTrustFeb2005MessageBinding =                                                                                                       new CertificateWSTrustBinding(); certificateTrustFeb2005MessageBinding.TrustVersion = TrustVersion.WSTrustFeb2005;

 

AD FS Endpoint

WCF Binding

/adfs/services/trust/2005/certificatemixed TrustFeb2005CertificateMixed

CertificateWSTrustBinding certificateTrustFeb2005MixedBinding =                              new CertificateWSTrustBinding(SecurityMode.TransportWithMessageCredential); certificateTrustFeb2005MixedBinding.TrustVersion = TrustVersion.WSTrustFeb2005;

 

AD FS Endpoint

WCF Binding

/adfs/services/trust/2005/certificatetransport TrustFeb2005CertificateTransport

CertificateWSTrustBinding certificateTrustFeb2005TransportBinding =                                                                 new CertificateWSTrustBinding(SecurityMode.Transport); certificateTrustFeb2005TransportBinding.TrustVersion = TrustVersion.WSTrustFeb2005;

 

AD FS Endpoint

WCF Binding

/adfs/services/trust/2005/username TrustFeb2005UserNameMessage

UserNameWSTrustBinding userNameTrustFeb2005MessageBinding =                                                                                                       new UserNameWSTrustBinding(); userNameTrustFeb2005MessageBinding.TrustVersion = TrustVersion.WSTrustFeb2005;

 

AD FS Endpoint

WCF Binding

/adfs/services/trust/2005/usernamemixed TrustFeb2005UserNameMixed

UserNameWSTrustBinding userNameTrustFeb2005MixedBinding =                            new UserNameWSTrustBinding(SecurityMode.TransportWithMessageCredential); userNameTrustFeb2005MixedBinding.TrustVersion = TrustVersion.WSTrustFeb2005;

 

AD FS Endpoint

WCF Binding

/adfs/services/trust/2005/usernamebasictransport TrustFeb2005UserNameBasicTransport

UserNameWSTrustBinding userNameTrustFeb2005TransportBasicBinding =                 new UserNameWSTrustBinding(SecurityMode.Transport, HttpClientCredentialType.Basic); userNameTrustFeb2005TransportBasicBinding.TrustVersion = TrustVersion.WSTrustFeb2005;

 

AD FS Endpoint

WCF Binding

TrustFeb2005UserNameDigestTransport

UserNameWSTrustBinding userNameTrustFeb2005TransportDigestBinding =                new UserNameWSTrustBinding(SecurityMode.Transport, HttpClientCredentialType.Digest); userNameTrustFeb2005TransportDigestBinding.TrustVersion = TrustVersion.WSTrustFeb2005;

 

AD FS Endpoint

WCF Binding

/adfs/services/trust/2005/kerberosmixed TrustFeb2005KerberosMixed

KerberosWSTrustBinding kerberosTrustFeb2005MixedBinding =                                new KerberosWSTrustBinding(SecurityMode.TransportWithMessageCredential); kerberosTrustFeb2005MixedBinding.TrustVersion = TrustVersion.WSTrustFeb2005;

 

WS-Trust 2005 Issued Token endpoints

AD FS Endpoint

WCF Binding

/adfs/services/trust/2005/issuedtokenasymmetricbasic256 TrustFeb2005IssuedTokenAsymmetricBasic256
issuedTokenBinding.KeyType = SecurityKeyType.AsymmetricKey; issuedTokenBinding.TrustVersion = TrustVersion.WSTrustFeb2005;

 

AD FS Endpoint

WCF Binding

/adfs/services/trust/2005/issuedtokenmixedasymmetricbasic256 TrustFeb2005IssuedTokenMixedAsymmetricBasic256
issuedTokenBinding.SecurityMode = SecurityMode.TransportWithMessageCredential; issuedTokenBinding.KeyType = SecurityKeyType.AsymmetricKey; issuedTokenBinding.TrustVersion = TrustVersion.WSTrustFeb2005;

 

AD FS Endpoint

WCF Binding

/adfs/services/trust/2005/issuedtokenmixedsymmetricbasic256 TrustFeb2005IssuedTokenMixedSymmetricBasic256
issuedTokenBinding.SecurityMode = SecurityMode.TransportWithMessageCredential; issuedTokenBinding.TrustVersion = TrustVersion.WSTrustFeb2005;

 

AD FS Endpoint

WCF Binding

/adfs/services/trust/2005/issuedtokensymmetricbasic256 TrustFeb2005IssuedTokenSymmetricBasic256

issuedTokenBinding.TrustVersion = TrustVersion.WSTrustFeb2005;