我们正在尝试在配置为使用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
答案 0 :(得分:0)
您的代码中的
SignInResponseMessage
是什么?
在.net核心中,通过中间件而不是模块来实现ws联合身份验证的配置。
您无需使用自定义方法,只需在 startup.cs 的 ConfigureServices 方法中注册此服务:
.AddWsFederation(options =>
{
options.Wtrealm = Configuration["wsfed:realm"];
options.MetadataAddress = Configuration["wsfed:metadata"];
})
更多详细信息,您可以参考this。