我正在尝试使用this saml2库提供的Sustainsys.Saml2和Sustainsys.Saml2.AspNetCore2库来实现IDP启动和SP启动的方案。
到目前为止,我参考了样例应用之后的事情:
1.通过nuget引用最新的Sustainsys.Saml2.AspNetCore2和Sustainsys.Saml2
2.修改后的Startup.cs以添加新选项
3.创建带有ACS端点的MVC控制器
我想了解的事情:
1.我是否需要启动Saml2Handler才能打到库的HandleRequestAsync()终点。
2.如何检索本金/索偿
3.对于sp发起的情况,当端点标识请求未通过身份验证时,如何将请求重定向到IDP?
startup.cs中的ConfigureServices方法
public void ConfigureServices(IServiceCollection services)
{
services.AddAuthentication()
.AddSaml2(options =>
{
options.SPOptions.EntityId = new EntityId("https://localhost:3131/Saml2");
options.IdentityProviders.Add(
new IdentityProvider(
new EntityId("http://localhost:52071/Metadata"), options.SPOptions)
{
LoadMetadata = true
});
options.SPOptions.ServiceCertificates.Add(new X509Certificate2("Sustainsys.Saml2.Tests.pfx"));
});
}
**SSO Controller**
[Authorize(AuthenticationSchemes = "Saml2")]
public class SsoController : Controller
{
public SingleSignOnController(ILogger logger)
{
}
[Route("saml2/ACS")]
[HttpPost]
public ActionResult ACS()
{
try
{
// Is request authenticated here by library?
// I tried hitting this end point from stud idp portal, but it is
throwing " MVC Exception Handler: The method or operation is not implemented. at Sustainsys.Saml2.AspNetCore2.Saml2Handler.AuthenticateAsync()
at Microsoft.AspNetCore.Authentication.AuthenticationService"
}
catch (Exception e)
{
}
}
}
我是否需要创建/实现自定义 Saml2Handler 并将其注入SSo控制器中?在这个ASPNETSAMPLE项目中,对于saml2 / ACS,我找不到确切的终点吗?
我想念什么?
答案 0 :(得分:0)
Acs端点内置在处理程序中。删除您的SsoController。
在回购中检查asp.net核心示例应用程序,以获取有关如何配置的示例。 AspNetCore2程序包包含一个处理程序,该处理程序与Asp.NET Core的任何其他外部身份验证处理程序相同。您可以通过身份验证质询依次启动登录。