【发布时间】:2019-06-04 18:50:45
【问题描述】:
我们是服务提供商,正在尝试使用 SAML2 库来实施 SP 发起的 SSO。我有以下问题
当最终用户尝试访问受保护的 SP 应用程序/资源时,SP 端点应如何识别应将身份验证请求重定向到哪个 IDP?
是否有任何标准格式可以接受来自 IDP 用户的首次/初始请求?
在将请求重定向到 IDP 时,向 IDP 发送响应的标准格式是什么?
我们的技术栈: asp .net(4.5) MVC、C# 和 SAML2 Sustainsys 库
我们的客户(在 SSO 术语中为 IDP-Identify provider)正在使用: Azure AD 上由 SP 启动的 SAML
使用SAML2 库,我实现了 IDP 发起的 SSO,其中 IDP 通过 SAML 响应达到我们的终点,我们正在使用 IDP 证书验证它并提取属性等
所以对于 SP 发起,我得到了关注,
[Route("RequestAccess")]
[HttpPost]
public ActionResult InitialRequest()
{
// How to Identify user and its IDP url?
// What should be the return type? (To redirect user to IDP)
}
// 一旦验证,IDP 可以访问我们现有的端点,该端点验证断言并重定向用户。我实现了这部分,并且在 IDP 启动设置的情况下运行良好。
[Route("AssertionConsumer")]
[HttpPost]
public ActionResult ValidateIdpRequest()
{
var options = Saml2Controller.Options; //Coming from config
CommandResult result = CommandFactory.GetCommand(CommandFactory.AcsCommandName)
.Run(Request.ToHttpRequestData(),options);
string userName = result.Principal.FindFirst(ClaimTypes.NameIdentifier)?.Value;
//Set the cooking in response
//Return
}
我错过了什么?欢迎提出任何建议/问题。
对于 SP 发起的场景,我在网上找到的所有内容都没有示例或解释清楚。
【问题讨论】:
-
请不要编辑您的问题以添加更多问题。如果我发布的答案涵盖了您最初的问题,则将其标记为已接受。将任何新问题作为新问题发布。
-
@AndersAbel 好的,谢谢。
标签: sustainsys-saml2