������������idp���bc���������������������,使用开源IDP和SAML让SAP HANA XS App支持单点登录 | SAP Blogs

    单点登录(Single Sign On)简称为SSO,是目前比较流行的企业业务整合的解决方案之一。SSO的定义是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。

         SAML(Security Assertion Markup Language)是一个XML框架,也就是一组协议和规范,可以用来传输企业用户身份证明, 主要是企业外的身份跨域传递。比如,公司(IDP)的用户要访问SAP HANA XS 应用(sp),为了保证身份安全,我们可以采用除了加密签名等措施,还要采用SAML规范来传输,传输的数据以XML形式,内容符合SAML的推荐标准,这样我们就可以不要求idp和sp采用什么样的系统,只要求能理解SAML规范即可。下图阐述了利用SAML单点登录的原理。

1 用户想使用SP(可认为是SAP HANA XS App),在浏览器输入SP的URL。

2 SP将生成SAML 请求。

3 SP让浏览器重定向到IDP做认证。

4 IDP收到SAML请求检查用户是否已认证,并且在合法期内,否则IDP将要求用户将进行认证。

5 IDP生成SAML响应。

6 IDP将封装好的响应返回给浏览器,浏览器返回给SP。

7 SP验证SAML响应,该响应中包含用户的信息。

8 SP根据SAML响应,确定用户的合法性以及用户信息,同意用户登录。

/wp-content/uploads/2014/08/1_527635.gif

本文将介绍如何利用开源软件Shibboleth作为IDP,让SAP HANA XS App支持单点登录。

Shibboleth(IDP)端配置准备安装环境

1 准备安装环境所需要的域名,确保IDP服务器和SP服务器可通过域名互相进行通信。

2 端口80和443需要被开放(保证没有其他程序在占用),注意防火墙对端口访问权限的问题。

3 IDP服务器与SP服务器时钟是同步的。

IDP的安装

1 下载安装JDK1.5+,Tomcat6.0.17+,Apache2.2+,并确保JAVA_HOME环境变量的正确设置,这里我用的是JDK1.6,Tomcat6.0.29, Apache 2.2。

注:必须从http://httpd.apache.org/网站上下载包含SSL支持的Apache安装程序并安装。

2  下载IDP组件,下载之后解压并将解压之后的目录移动到你所要安装的目标目录。

(IDP下载地址为:http://shibboleth.internet2.edu/downloads/shibboleth/idp/latest/)

3 安装IDP 此时需要输入IDP home目录以及域名(不要输入IP)

4 将IDP_HOME/lib/endorsed下的所有包复制到TOMCAT_HOME/endorsed下,IDP_HOME和TOMCAT_HOME分别指IDP和TOMCAT的安装目录(如果TOMCAT根目录下没有endorsed文件夹则新建一个即可)。

5 使tomcat支持ssl传输

1)    下载tomcat6-dta-ssl-1.0.0.jar (asc)放到TOMCAT_HOME/lib/目录下。(tomcat7则需要不同的jar包)

         2)    在TOMCAT_HOME/conf/server.xml中增加如下的配置(在安装IDP过程中用到的密码替换掉PASSWORD):

6 部署IDP.war

创建TOMCAT_HOME/conf/Catalina/localhost/idp.xml文件并用以下代码替换其内容。

7 加入以下行至Apache的配置文件httpd.conf中:ProxyPass /idp/ ajp://localhost:8009/idp/

8 更改Tomcat的TOMCAT_HOME/conf/server.xml中的端口8009 AJP13连接器,我们将要增加 request.tomcatAuthentication=”false”和Address=”127.0.0.1″让Apache允许发送用户名信息到IDP。

   

9 在Apache的httpd.conf或ssl.conf配置文件中定义以下程序,强制身份验证的时候访问RemoteUser处理程序。     AuthType BasicAuthName “My Identity Provider”AuthUserFile D:/opt/shibboleth-idp/credentials/user.db require valid-user    

10 用htpasswd命令创建一个或两个测试用户 htpasswd -c D:/opt/shibboleth-idp/credentials/user.db myself htpasswd命令为Apache工具命令必须在命令行下进入到Apache安装目录的bin目录下才可以执行,myself为用户名。

11 测试IDP是否安装成功: 用https://localhost/idp/profile/Status访问,如果页面出现’ok’则说明安装正确。这并不意味着你将能够登录到任何东西,因为目前还尚未配置的IDP使用的组织的基础设施。

SAP HANA(SP)端配置

SAP HANA 端的配置可根据http://scn.sap.com/docs/DOC-50418(Use SAML to enable SSO for your SAP HANA XS App)进行配置。

其中IDP的metadata可在IDP服务器的IDP_HOME/metadata/idp-metadata.xml得到。

部署SP Metadata到IDP

1 生成的SAP HANA的metadata了保存为sp-metadata.xml文件放在IDP_HOME/metadata/中。

2 配置 IDP_HOME/conf/ relying-party.xml,添加:

错误解决

使用chrome访问可看到错误信息。

1 Response is not success

修改IDP_HOME/conf/ relying-party.xml 中的 xsi:type=”saml:SAML2SSOProfile”属性encryptAssertions=”never”

2 No name id in subject

在IDP的SAML响应中添加Name ID 需要修改IDP_HOME/conf/ attribute-resolver.xml,添加:

    

以及attribute-filter.xml,添加

 

3 NameID format is not support

设定NameID的nameFormat为:urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified

拓展

本文是使用RemoteUser处理方式进行用户的验证,一般企业中不会使用该方法,若企业使用LDAP管理用户,则需要修改IDP_HOME/conf/handler.xml 为UsernamePassword方式:

urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport

    

在/usr/local/shibboleth-idp/conf/login.config 配置LDAP的访问方式。

Use SAML to enable SSO for your SAP HANA XS App

http://scn.sap.com/docs/DOC-50418

Shibboleth 2.x Home

https://wiki.shibboleth.net/confluence/display/SHIB2/Home

Linux下安装openldap

http://blog.csdn.net/zhangjunfangkaixin/article/details/3976669

本文的测试案例所使用的SAP HANA版本为SAP HANA SPS7 Revision 74.00,SAP BusinessObjects Data Services 4.1 Support Package 1,Hadoop 1.1。想获取更多SAP HANA学习资料或有任何疑问,请关注新浪微博@HANAGeek!我们欢迎你的加入!

转载本文章请注明作者和出处,请勿用于任何商业用途

华为fcp和超级快充区别春水泛滥在线播放春心荡漾词是什么意思06船舶险类条款汇总089慧选06人工神经网络ANN方法简介00后被王者荣耀坑害棒针织帽子的方法如何编织男士帽子028平局045羞涩的痕迹不良宠婚作者04蒋夕乘风少年全文免费阅读0729猪猪markdown山田孝之来中国山田孝之熊猫外号068母女姐妹花第四更求全订06285交通工程经济分析doc01084025890是什么电话01007年全国成人高考高起点日语真题及答案dw手表表带怎么调节长度什么是植物的拉丁学名?郑州雅轩养生会所地址郑州雅轩丝滑主题创意