spring boot 整合saml2

项目是国外的一位大神发布到githut上,这里只是对项目代码的分析与学习,也算是一种强化记忆java

附上 githut地址:https://github.com/OpenConext/Mujinanode

项目分为一个idp,一个sp,以及他们共用的包 ,saml-commom ,我是以为使用spring boot 来配置比以前使用xml来配置要清晰一些。项目运行前须要先安装配置lombok。基本知足一个sp对多个idp,sp对saml response的校验,git

可是没有idp对sp请求的校验,这里的校验指的是对签名的校验,基本的格式的校验都是有的。github

项目默认的sp运行在9090端口,idp的端口是8080,访问http://localhost:9090 ,点击登陆,浏览器debug模式下,能够看到sp会向idp发送一个认证请求,接着咱们能够在idp输入用户民密码进行登陆而且返回sp,项目默认没有对用户名密码进行校验,这里有一个addspring

attribute,能够添加你想给sp的数据,这些数据会在samlresponse一并返回给sp浏览器

 

关于saml2 ,是一种安全认证协议,若是你打开一个sp的页面,或者说是一个客户端的页面,若是你没登录,会自动跳转idp进行登陆,在以前sp和idp会把本身的证书给sp,或者应该说是metadata,在sp的resource目录下能够找到,安全

关于saml的讲解能够查查这个http://saml.xml.org/search/node/Validate+authnrequest+sign,维基百科上也讲的很清楚,说实话配置是真的多。学习

证书主要包含一份idp的公钥,和一个idp的认证地址。sp会使用这个公钥对请求进行加密。证书能够使用户javatool进行生成。百度自取。加密

相关文章
相关标签/搜索