openstack-keystone简记

本文探讨了开放计算平台中用户认证与资源管理的关键机制,包括用户、租户、证书、令牌、角色、服务目录、端点、模板等核心概念。详细介绍了如何通过用户、租户、证书与令牌之间的关联,实现灵活、安全的资源分配与访问控制。同时,阐述了存储证书的不同方式,如基于SQL、KVS、内存、LDAP等,确保数据的安全与高效管理。
  • 验证

    • 概念
      • 租户(tenant)
        • openstack的组织方式
        • 一个租户=一个nova的project-id
      • 用户(user)
        • 代表个体,openstack用user的形式授权
        • 一个user=一个证书(credentials)
          • 一个证书可分配给1~N个租户
          • 验证后,每个tenant会分配有一个特定令牌
      • 证书(credentials)
        • 唯一标识一个keystone user的密码/其他信息
      • 令牌(token)
        • 任意比特的文本
        • 两种类型
          • scoped:代表某个tenant验证过的user
          • unscoped:仅代表一个user
        • 有效期有限,随时可被撤回
      • 角色(role)
        • 某个tenant的权限集合
  • 服务目录

    • 服务(service)
      • nova,glance,swift等
    • 端点(endpoint)
      • 一个uri
    • 模板(template)
      • 端点的集合
  • credential的处理和存储方式

    • openstack的做法应该是 1.给每个公司分配一个userId,对应有一个证书 2.给每个用户建立多个项目,称为租户 3.证书可以分配给租户,但使用时的,是通过证书生成的令牌 4.令牌有期限,可撤换(类似oauth协议)
    • 存储证书方式:
      • keystone存储证书的方式,有多种选择, 从内置的sql 到 ldap - kvs - 内存型方式 - 最简单的backend,只需支持主键查询 - sql - 内置的是sqlite - 用SQLAlchemy持久存储 - pam - 使用OS提供的pam机制,以完成 - 授权 - user-tenant的一对一关系 - 需root权限 - ldap - 内置的是一个ldap的桩实现(FakeLdap)

backends/ --> sql.py --> Identity.authenticate(self, user_id, tenant_id, password): user_ref = self._get_user(user_id) 通过user_id获取user的信息 --> Identity._check_password(self, password, user_ref): return utils.check_password(password, user_ref.get('password')) 调用统一的password校验方法 --> utils.check_password (password, hashed): (common/utils.py) password_utf8 = password转为utf编码 return passlib.hash.sha512_crypt.verify(password_utf8, hashed) 调用独立的第三方库passlib中的方法

keystone backends/ --> 使用sql的处理方式 --> Identity.authenticate(self, user_id, tenant_id, password): 通过user_id获取user的信息 --> Identity._check_password(self, password, user_ref): 调用统一的password校验方法 --> utils.check_password (password, hashed): 调用独立的第三方库passlib中的方法,从中可以看出,password传入的是明文,存储的是sha512加密后的结果 passlib.hash.sha512_crypt.verify(password_utf8, hashed)

转载于:https://my.oschina.net/kakablue/blog/128285

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值