带有ws的.net核心中的SAML令牌身份验证

时间:2020-06-10 08:03:49

标签: asp.net-core authentication .net-core saml ws-federation

我们正在尝试在配置为使用wsfed身份验证的.net核心应用程序中对SAML令牌进行身份验证。

在上一个项目中,我们在.net Framework上遇到了类似的问题。我们必须实现一个customauthentication模块,并覆盖现有的signinresponse消息,如下所示

if (authorizationHeader.StartsWith(SAML_SCHEME))
                tokenStartIndex = SAML_SCHEME.Length;
            else if (authorizationHeader.StartsWith(SAML2_SCHEME))
                tokenStartIndex = SAML2_SCHEME.Length;

            var encodedBase64Token = authorizationHeader.Substring(tokenStartIndex);
            var data = Convert.FromBase64String(encodedBase64Token);
            var decodedToken = Encoding.UTF8.GetString(data);

            return new SignInResponseMessage(request.Url, decodedToken);

有没有办法在.net核心中实现类似的功能。预先感谢。

编辑:用于登录响应消息。请找到我们用作参考的以下链接

https://www.codeproject.com/Tips/842519/Verify-ADFS-SAML-token-on-ASP-NET-service

1 个答案:

答案 0 :(得分:0)

您的代码中的SignInResponseMessage是什么?

在.net核心中,通过中间件而不是模块来实现ws联合身份验证的配置。

您无需使用自定义方法,只需在 startup.cs ConfigureServices 方法中注册此服务:

   .AddWsFederation(options =>
     {
         options.Wtrealm = Configuration["wsfed:realm"];
         options.MetadataAddress = Configuration["wsfed:metadata"];
     })

更多详细信息,您可以参考this