2011-02-02 16 views
11

Parece que la mayor parte de la información WIF disponible es útil para habilitar la autenticación federada en aplicaciones completas. Estoy interesado en usar la API para crear solicitudes de autenticación SAML y recibir/interpretar las respuestas SAML.Crear solicitud de autenticación SAML con WIF

Encontré la siguiente publicación en SO Reading SAML Attributes from SAML Token que me pone en la dirección correcta con respecto a la recepción e interpretación de las respuestas SAML. ¿Alguien puede darme más información sobre cómo podría usar la API para crear solicitudes SAML?

Cualquier otra información (lectura, videos, etc.) sobre la API en general sería muy apreciada.

Respuesta

9

aquí hay un pequeño formulario de ejemplo uno de our samples que muestra cómo crear mediante programación una petición de un (SAML) Token de seguridad a un STS:

private static SecurityToken GetSamlToken(string realm, string stsEndpoint, ClientCredentials clientCredentials) 
    { 
     using (var factory = new WSTrustChannelFactory(
      new UserNameWSTrustBinding(SecurityMode.TransportWithMessageCredential), 
      new EndpointAddress(new Uri(stsEndpoint)))) 
     { 
      factory.Credentials.UserName.UserName = clientCredentials.UserName.UserName; 
      factory.Credentials.UserName.Password = clientCredentials.UserName.Password; 
      factory.Credentials.ServiceCertificate.Authentication.CertificateValidationMode = X509CertificateValidationMode.None; 
      factory.TrustVersion = TrustVersion.WSTrust13; 

      WSTrustChannel channel = null; 

      try 
      { 
       var rst = new RequestSecurityToken 
           { 
            RequestType = WSTrust13Constants.RequestTypes.Issue, 
            AppliesTo = new EndpointAddress(realm), 
            KeyType = KeyTypes.Bearer, 
           }; 

       channel = (WSTrustChannel)factory.CreateChannel(); 

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

       factory.Abort(); 
      } 
     } 
+0

Esto fue de gran ayuda. Gracias, Eugenio. –

+4

No creo que esto cree un 'AuthnRequest' de SAML en absoluto. Parece crear un WSTrust 'RequestSecurityToken'. – atoumey

Cuestiones relacionadas