在.net core中使用ws fed进行SAML令牌认证。

问题描述 投票:1回答:1

我们正试图在一个配置为使用wsfed验证的.net core应用程序中验证一个SAML令牌。

我们在以前的项目中也遇到过类似的问题,那是在.net框架上,我们不得不实现一个自定义认证模块,并覆盖现有的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 core中也实现类似的东西。先谢谢了。

编辑:对于signinresponse消息。请看下面的链接,我们用它作为参考。

https:/www.codeproject.comTips842519Verify-ADFS-SAML-token-on-ASP-NET-service

asp.net-core authentication .net-core saml ws-federation
1个回答
0
投票

什么是 SignInResponseMessage 在您的代码中?

在.net core中,ws fed认证的配置是通过以下方式实现的 中间件 而不是moudle。

而且你不需要使用自定义的方法,你只需要把这个服务注册在 配置服务 方式 startup.cs:

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

更多细节,你可以参考 这个.

© www.soinside.com 2019 - 2024. All rights reserved.