Создайте запрос аутентификации SAML с помощью WIF

Кажется, что большая часть информации о WIF полезна для включения федеративной аутентификации во всех приложениях. Я заинтересован в использовании API для создания запросов аутентификации SAML и получения/интерпретации ответов SAML.

Я нашел следующий пост в SO Чтение атрибутов SAML из токена SAML, который меня двигаться в правильном направлении в отношении получения и интерпретации ответов SAML. Может ли кто-нибудь дать мне больше информации о том, как я могу использовать API для создания запросов SAML?

Любая дополнительная информация (материалы для чтения, видео и т. д.) об API в целом будет принята с благодарностью.


person hackerhasid    schedule 02.02.2011    source источник


Ответы (2)


Вот небольшой пример из наших примеров, который показывает, как программно создать запрос токена безопасности (SAML) к 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();
            }
        }
person Eugenio Pace    schedule 15.03.2011
comment
Это была огромная помощь. Спасибо, Эудженио. - person Rick Liddle; 11.02.2013
comment
Я не верю, что это вообще создает SAML AuthnRequest. Кажется, создается WSTrust RequestSecurityToken. - person atoumey; 20.08.2016

Поскольку больше никто не ответил, вот статья от неподражаемой Мишель Бустаманте:

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

person Chris B. Behrens    schedule 02.02.2011