Использование протокола SAML 2.0 для получения XML подтверждения SAML 2.0 - PullRequest
0 голосов
/ 29 октября 2018

Я хотел бы получить токен SAML 2.0, используя протокол SAML 2.0 вместо WSTrust. ADFS 3.0 используется. Существуют ли пакеты nuget или другие библиотеки, которые могут этого достичь?

Текущий код использует WSTrust и KERBEROS:

WSTrustChannelFactory trustChannelFactory = null;
var bindingElementCollection = new BindingElementCollection();
    bindingElementCollection.Add(SecurityBindingElement.CreateKerberosOverTransportBindingElement());

    trustChannelFactory = new WSTrustChannelFactory
    (
        new CustomBinding(bindingElementCollection),
        new EndpointAddress(kerberosmixedendpoint)
    );

    trustChannelFactory.Credentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials;


trustChannelFactory.TrustVersion = TrustVersion.WSTrust13;

var requestSecurityToken = new RequestSecurityToken
{
    RequestType = RequestTypes.Issue,
    AppliesTo = new EndpointReference(Url),
    KeyType = KeyTypes.Bearer,
};   


var channel = (WSTrustChannel)trustChannelFactory.CreateChannel();

var securityToken = await Task<GenericXmlSecurityToken>.Factory.FromAsync(
    channel.BeginIssue, ar =>
    {
        GenericXmlSecurityToken token = null;

        try
        {
            token = channel.EndIssue(ar, out RequestSecurityTokenResponse response)
                as GenericXmlSecurityToken;
        }
        catch (Exception ex)
        {
        }

        return token as GenericXmlSecurityToken;
    },
    requestSecurityToken,
    null
);

result = securityToken?.TokenXml?.OuterXml;

поэтому мне нужно получить что-то вроде этого securityToken? .TokenXml? .OuterXml, но с использованием протокола SAMLP. Я не могу использовать WIF, поскольку он не поддерживает протокол SAML 2.0.

1 Ответ

0 голосов
/ 14 марта 2019

Вы можете включить файлы кода, доступные в расположении ниже, в свой проект, чтобы получить доступ ко всем основным вызовам методов, которые вам понадобятся для создания запроса SAML, расшифровки и проверки ответа SAML, чтения утверждения SAML и т. Д.

https://github.com/onelogin/dotnet-saml/tree/master/App_Code

...