zoukankan      html  css  js  c++  java
  • cinder服务端的keystone认证机制

    keystone在openstack中的地位

    Keystone作为OpenStack中的身份管理与授权模块,主要实现系统用户的身份认证、基于角色的授权管理、其他OpenStack服务的地址发现和安全策略管理等功能

    keystone提供的认证机制

    下面以cinder为例梳理cinder服务端在收到cinder_client的请求后,具体的认证过程,如下图:

    其中虚线连接的部分为/etc/cinder/api-paste.ini中composite设置的的pipline,图中只截取了两个跟keystone相关的,当cinder-server收到cinder-client的restful请求后,一次经过pipline的factory过滤,与api-paste相关的内容,参考:

    以下是api-paste.ini中的配置:

    [filter:keystonecontext]
    paste.filter_factory = cinder.api.middleware.auth:CinderKeystoneContext.factory
    
    [filter:authtoken]
    paste.filter_factory = keystoneclient.middleware.auth_token:filter_factory
    auth_host = 172.20.0.5
    auth_port = 35358
    auth_protocol = http
    admin_tenant_name = service
    admin_user = cinder
    admin_password = cinder
    

    通过调试,我们发现,在keystoneclient.middleware.auth_token只是实现了对request请求中的token的是否认证做了校验,而并没有对该request请求的发起者(对应的用户)的权限范围做校验,这就是认证机制中的policy.json加入了。

  • 相关阅读:
    Redis面试题
    spring boot错误: 找不到或无法加载主类
    JAVA的高并发编程
    Redis多机多节点集群实验
    Redis单机多节点集群实验
    Redis集群概述
    Redis的持久化之AOF方式
    Redis的持久化之RDB方式
    Redis持久化介绍
    Redis Keys的通用操作
  • 原文地址:https://www.cnblogs.com/forilen/p/5521565.html
Copyright © 2011-2022 走看看