使用Kerberos为Hana DB设置单点登录(SSO)配置
此博客介绍了使用Kerberos为Hana数据库设置单点登录(SSO)配置的步骤。
SSO允许用户只登录一次,并提供对多个系统和服务的访问,而无需再次生成凭据。
Kerberos是许多配置之一实现SSO的方法(其他示例为SAML或X.509证书)。
逐步过程
我们必须在Active Directory中创建一个代表SAP HANA数据库的服务用户,由服务主体名称(SPN)映射,然后我们必须在DB服务器上为此SPN创建一个keytab文件。在DB服务器上,我们还需要一个krb5.conf文件。最后,我们必须创建一个外部映射的SAP HANA数据库用户。
前提条件:
确保Kerberos客户端和服务器库已经安装在HANA数据库服务器上,要验证是否满足软件要求,云服务器好,请运行以下命令:
rpm-qa | grep krb5*
版本号不必完全匹配,大数据库,但是应该在1.6.3-132以上才能包含重要的安全补丁
配置步骤:
1->主机名解析
在Linux上有几种主机名解析工具。其中一些直接使用DNS(dig,host,大量数据,nslookup),而另一些(hostname)
进行验证,在Db服务器上运行以下命令
>hostname–ip address(此命令给出相应的ip地址)
2->为MIT Kerberos库设置配置文件,数据库服务器上的krb5.conf,如下例
标准Kerberos配置:
#>cat/etc/krb5.conf[默认值]默认\u领域=MYDOMAIN.COM[领域]MYDOMAIN.COM= {kdc=mykdc1。mydomain.comkdc=mykdc2。mydomain.com}[领域].mydomain.com= MYDOMAIN.COMmydomain.com= MYDOMAIN.COM
[domain\u realm]只包括DB服务器域的映射(它与客户端域无关!)。当SAP HANA数据库客户端尝试对SAP HANA数据库服务器进行身份验证时,这将用于相互身份验证。
在[domain\u realm]映射中的域部分必须包含域名的完整长度。如果数据库服务器的FQDN为hdbserver.subdomain.domain域.com,
那么[domain\u realm]条目必须是
子域.domain.com= 域名.COM子域.domain.com= 域名.COM
3->为Kerberos身份验证创建Active Directory用户或使用现有用户。
用户应使用"密码永不过期"选项创建。
(这可能会根据您的组织结构而更改)
在我的情况下,我已向Windows服务团队提出请求
针对HANA Studio的SPN:
针对HANA的SPNXS(web访问):
setspn-S HTTP/
4->使用adm验证Kerberos配置user:
使用kinit和klist实用程序时,我们依赖于Windows AD测试用户aduser1的正确配置。使用kinit,淘客返利app,我们尝试根据AD域对测试用户进行身份验证,并创建一个TGT:
/usr/bin/kinit@MYDOMAIN.COM
如果成功,它将询问SPN\U用户的密码
下一个命令应在kinit命令之后立即使用(它将显示上一次登录的票证)。
使用klist我们可以看到这一点票证:
>klist
票证缓存:文件:/tmp/krb5cc\u 1000
默认主体:SPN\u user@MYDOMAIN.COM
有效启动服务主体2013年2月18日15:25:58 2013年2月19日01:26:02 krbtgt/MYDOMAIN.COM@MYDOMAIN.COM续费至2013年2月19日15:25:58
5->创建keytab文件。我们将从Linux服务器(HANA服务器)使用ktutil。
ktutil可用于编辑keytab文件。
首先,我们需要发现要使用的kvno编号。为了知道kvno编号,运行命令:
运行kinit命令为用户(SPN\u user)获取TGT:
例如:/usr/bin/kinit@MYDOMAIN.COM
下一步运行kvno命令获取kvno编号:
kvno hdb/@MYDOMAIN.COM
在输出中可以看到kvno=值。
->如果kvno值为3,在这种情况下,在创建keytab文件时,我们将使用kvno值作为3
6->创建keytab文件的命令(由于keytab目录/etc权限,它需要root):
用于HANA STUDIO的keytab:
在shell运行中:
/usr/bin/ktutil
在ktutil运行中:
addent-password-p hdb/@MYDOMAIN.COM-K3-e型rc4 hmac
wkt/etc/krb5.keytab
q
用于HANA XS的keytab(web访问):
在shell中运行:
/usr/bin/ktutil
addent-password-p HTTP/@MYDOMAIN.COM-k3-e rc4 hmac
wkt/etc/krb5.keytab
q
7->保护keytab文件。此步骤是强制性的,否则SSO将无法工作(需要根)
将文件的所有权更改为行政:sapsys:
8->使用adm
Run klist命令验证Keytab文件:
klist-k/etc/krb5.Keytab-etK
输出应返回两个SPN
Run kinit命令从步骤3为用户获取TGT(SPN\U用户):
/usr/bin/kinit@FQDN
例如:kinit@MYDOMAIN.COM
下一步运行kvno命令:
/usr/lib/mit/bin/kvno-k/etc/krb5.keytab hdb/@MYDOMAIN.COM
/usr/lib/mit/bin/kvno-k/etc/krb5.keytab HTTP/@MYDOMAIN.COM
9->在HANA中创建/更改用户
在身份验证中,选中Kerberos复选框和外部ID填写值@FQDN
10->Create connection in HANA Studio with SSO
Create system in HANA Studio。在用户和密码阶段–选择由当前操作系统用户验证。
11->尝试使用上一步创建的连接登录
供参考:
Kerberos/Active Directory
任何有关Kerberos或Active Directory故障排除的背景信息,以下网站可能会有所帮助:
设计认证系统:四场对话(MIT):常见问题解答: AD故障排除:
白皮书AD/Kerberos故障排除:https://wiki.wdf.sap.corp/wiki/download/attachments/1180221073/Troubleshooting\u Kerberos\u Errors.DOC?version=1&modificationDate=1355764274996
打开Kerberos的Windows系统事件日志:
使用IIS/IE进行Kerberos身份验证失败时需要检查的事项:
SAP HANA数据库