OpenStack Keystone Havana版本的新变化 (by quqi99)
作者:张华 发表于:2013-10-12
版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明
( http://blog.csdn.net/quqi99 )
在Grizzly中,Keystone有这些数据结构:users, groups, projects/tenants, roles, role assignments, domains
1,在Havana中,Keystone允许将projects, roles, role assignments数据存储在DB,而将users, groups数据分开存储到LDAP(使用Assignment Driver=keystone.assignment.backends.ldap.Assignment)。相关配置如下:
[identity]
driver = keystone.identity.backends.sql.Identity
[assignment]
driver = keystone.assignment.backends.sql.Assignment
2,同样,Havana也允许将credential数据从identity backend抽出来单独存储在credential backend之中,配置如下:
[credential]
# driver = keystone.credential.backends.sql.Credential
3,Havana新增操作“keystone-manage token_flush”用于清除DB中过期的token信息,这样能防止数据表持续增大影响性能。
4,Havana允许每个project都有它自己的admin(让一个user具有projectadmin role即可),而不是像之前所有project共用一个admin。
见:https://github.com/openstack/identity-api/blob/master/openstack-identity-api/v3/src/markdown/identity-api-v3-os-inherit-ext.md
5,Havana允许通过external参数使用外部认证(权限系统一般分认证和授权两部分),配置如下:
[auth]
methods = external,password,token,oauth1
#external = keystone.auth.plugins.external.ExternalDefault
password = keystone.auth.plugins.password.Password
token = keystone.auth.plugins.token.Token
oauth1 = keystone.auth.plugins.oauth1.OAuth
6,可以通过nocatalog参数让返回token时不带有service catalog信息,提高效率,如:POST /v3/auth/tokens?nocatalog
7,Havana允许通过provider参数自定义token的格式,配置如下:
[token]
driver = keystone.token.backends.sql.Token
provider = keystone.token.providers.uuid.Provider
8,允许日志国际化输出,允许API响应国际化输出
9,如果一个project有多个api endpoint的话,可以通过OS-EP-FILTER扩展api动态设置project和endpoint的关联,
见:https://github.com/openstack/identity-api/blob/master/openstack-identity-api/v3/src/markdown/identity-api-v3-os-ep-filter-ext.md
10,基于Dogpile包的内部缓存,如果内存足够,可以减轻DB的压力提高性能,配置如下:
[cache]
# Global cache functionality toggle.
# enabled = False
11,更细粒度的policy增强,能匹配target中的属性。
参考:
https://wiki.openstack.org/wiki/ReleaseNotes/Havana#OpenStack_Identity_.28Keystone.29
https://launchpad.net/keystone/havana/havana-1
https://launchpad.net/keystone/havana/havana-2
https://launchpad.net/keystone/havana/havana-3