我被要求实现与SAML 2.0 IdP的集成以进行用户身份验证。我从来没有使用过任何联合授权流程,所以这对我来说都是新手,所以如果我问一个愚蠢的问题请原谅,但在这里。
对于我的需求,我想要的只是发送SAMLP身份验证请求。如果我得到一个说明用户有效的回复,我将授予他们访问我的系统的权限,该系统的用户ID与返回的用户ID相匹配。从那时起,我的系统将执行所有授权,并且我不需要将每个请求的令牌发送到SAML IdP。登录后我完成了IdP。
我在这里和其他网站上看到的许多问题和示例包括在我的项目中添加大量库。当我查看它们以及它们周围的文档时,它们似乎都希望通过IIS模块或通过与MVC路由机制集成来执行每个请求的身份验证。
现在问我的问题。我不能自己创建XML并将其作为SAMLRequest值粘贴在查询字符串上吗?然后解析为我需要的值返回的响应XML?如果这是一种有效的方法,那么任何人都有一些示例代码可以做到这一点吗?
非常感谢任何帮助
答案 0 :(得分:0)
您描述的流程是通常的工作方式:向Idp发送一个SAML2请求以对用户进行身份验证,然后为所有后续请求设置会话cookie。
除非您想要花费大量时间来了解SAML2和XML签名验证规则,否则不要自己创建。它们复杂,并且大多数自定义实现都会出错,从而导致安全性受损。
我自己的图书馆,Kentor.AuthServices以你想要的方式工作。即使它作为httpmodule,mvc控制器或owin中间件,它只会干扰构成实际登录的第一个请求。所有后续请求都只是通过,会话cookie机制处理会话身份验证。 / p>