keystone对接LDAP数据库
原创: 方鑫 云开源
Ldap集成
Keystone中仅3个服务支持ldap,它们分别为:
● 身份:存储user以及group
● 资源:存储domain以及project
● 授权:存储role及其授权
出于各种考虑,实际上仅将keystone身份后端映射至ldap。
为了将keystone的user,group等属性与ldap相映射,需要配置映射文件,一个典型的配置文件如下:
另外还有一些其他配置项,不做赘述。
Ldap与keystone对接
为了解决多domain ldap的问题,由于大多数user,group api调用不包含domain信息,为了确定user或group到底属于哪个domain,因此keystone建立了一个全局唯一id即public id,将public id,domain,ldap server及其本地id相关联,创建一张映射表。默认下,public id是64字节的sha256哈希值,而不是经典的32字节uuids。
由于需要在本地创建映射表,所以在一次性接入大量用户的ldap数据库时,将会需要大量的时间用于建表。
下面进行对接工作,
在对接时,可以采用配置文件方法建立多domain,或者api方法建立多domain。其中api方法为日后主推的方法,相较于配置文件法,其优点如下:
● 不需要单独分发domain特定的配置文件。考虑到api可以以细粒度方式使用,这使得将其集成到管理系统中更加容易。
● 不需要重启keystone server,确保在登陆domain时不会中断服务。
本次采用api方法对接,对接所用curl命令如下:
成功后会返回配置信息,如下:
然后用openstack user list指令看看能否列出ldap用户。
显然能与ldap的用户相对应。因此,ldap与keystone对接成功。