【问题标题】:Create SAML Authentication request using WIF使用 WIF 创建 SAML 身份验证请求
【发布时间】:2011-06-20 03:55:11
【问题描述】:

似乎大多数 WIF 信息对于在整个应用程序中启用联合身份验证很有用。我有兴趣使用 API 创建 SAML 身份验证请求并接收/解释 SAML 响应。

我在 SO Reading SAML Attributes from SAML Token 上发现了以下帖子,这让我在接收和解释 SAML 响应方面朝着正确的方向前进。谁能给我更多关于如何使用 API 创建 SAML 请求的信息?

如果您提供有关 API 的更多信息(阅读材料、视频等),我们将不胜感激。

【问题讨论】:

    标签: c# .net saml wif federated-identity


    【解决方案1】:

    以下是our samples 的一个小示例,展示了如何以编程方式创建对 STS 的 (SAML) 安全令牌的请求:

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

    【讨论】:

    • 这是一个巨大的帮助。谢谢,尤金尼奥。
    • 我认为这根本不会创建 SAML AuthnRequest。它似乎创建了一个 WSTrust RequestSecurityToken
    【解决方案2】:

    由于没有其他人回答,这里有一篇来自无与伦比的 Michelle Bustamante 的文章:

    http://www.devproconnections.com/article/federated-security/Generate-SAML-Tokens-Using-Windows-Identity-Foundation.aspx

    【讨论】:

      猜你喜欢
      • 2015-08-24
      • 1970-01-01
      • 2018-05-13
      • 1970-01-01
      • 1970-01-01
      • 2019-05-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多