2011-02-02 10 views
11

ほとんどのWIF情報は、アプリケーション全体でフェデレーション認証を有効にするのに便利です。 APIを使用してSAML認証リクエストを作成し、SAMLレスポンスを受信/解釈することに興味があります。WIFを使用したSAML認証要求の作成

私は、SAMLの回答を受け取って解釈することに関して正しい方向に向かうために次の投稿を見つけました:SO Reading SAML Attributes from SAML Token SAMLリクエストを作成するためにAPIをどのように使用するかもしれないかについて、誰かに私に詳しい情報を教えてもらえますか?

APIに関する一般的な情報(読書資料、動画など)は大変ありがとうございます。誰も答えなかったので

答えて

9

ここでプログラム的に(SAML)の要求を作成する方法を示しour samplesの小さな例の一形態です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

これは大きな助けとなりました。ありがとう、Eugenio。 –

+4

これはSAMLの 'AuthnRequest'をまったく作成していないと思います。それはWSTrustの 'RequestSecurityToken'を作成するようです。 – atoumey

関連する問題