Salesforce中的基于SAML的单点登录(SSO)设置

  最近的工作中第一次接触到了怎么具体设置基于SAML的单点登录,以及其工作原理。原来在学习AWS的时候总能在官方文档中看见SAML,貌似所有的官方文档(不止AWS)都尽可能不说人话,只知道这个是和系统认证相关联,其余的读的是一头雾水,当然我这阅读理解的水平也待提高。

  这次接触到的SAML设置中,主要关系到了两个系统:一个是IDP,即ID Provider,是一个保存用户信息,对用户输入的用户名和密码进行验证的系统;还有一个是SP,即Service Provider,对已经通过了验证的用户提供某种服务的系统。

  假设有一个A公司,在日常的工作中,A公司的员工需要使用A1系统,A2系统,A3系统,这些系统为这个公司提供不同的服务,为了能够使用这些系统,员工们都必须拥有能够使用这些系统的用户名和密码。随着使用的系统个数增加,对这些系统的用户名以及密码的管理所花费的时间精力也会增加。那么这时候就有一个简单的方法来对应这种情况:把所有的用户名和密码放在同一个系统中,也就是IDP,然后可以通过在IDP系统和SP系统(A1系统,A2系统,A3系统)之间建立一个通道,使得IDP系统中的用户可以直接登陆到各个SP系统中,这样就会省去了各个系统对各个用户进行认证的麻烦。 

  Salesforce系统支持SAML的设置,它同时可以扮演IDP和SP的角色。测试阶段可以在两个不同的Salesforce系统中进行测试,一个扮演IDP,一个扮演SP。原理就是通过把IDP处生成的证书导入到SP中,然后在IDP方生成一个连接APP,通过生成的APP开始链接URL来直接跳转到SP。

  具体步骤:

  首先,在IDP系统下载证书,然后记住它的Issuer

Salesforce中的基于SAML的单点登录(SSO)设置_第1张图片

  其次,在SP系统激活SSO设置,需要设置的地方有:SAML Version选择2,在Issuer处填写IDP系统下载证书地方的Issuer,Identity Provider Certificate上传从IDP系统下载的证书,SAML Identity Type选择Assertion contains the Federation ID from the User object,SAML Identity Location 选择Identity is in the NameIdentifier element of the Subject statement, Entity ID选择SP系统的My Domain,如果没有的话,选择https://saml.salesforce.com。

Salesforce中的基于SAML的单点登录(SSO)设置_第2张图片

  最后,需要在IDP系统生成一个APP,APP名字等可以任意写,需要注意的是下面的Web App Settings,Entity ID需要填写的是SP设置SSO的时候使用的Entity ID,ACS URL处需要填写的是SP系统设置SSO之后生成的Salesforce Login URL,Subject Type应该选择Federation ID,Issuer是IDP系统下载证书页面的Issuer URL,然后保存该APP后会自动生成一个IDP-init的login url,可以将这个login URl 设置成该APP的开始URL,通过点击该URL,IDP认证的用户会从IDP系统跳转到SP系统,从而减少SP系统的认证手续,同理,当SP不是Salesforce的时候,也可以通过相同的方法设置SSO。


Salesforce中的基于SAML的单点登录(SSO)设置_第3张图片

你可能感兴趣的:(Salesforce中的基于SAML的单点登录(SSO)设置)