zoukankan      html  css  js  c++  java
  • Keystone中间件WSGI环境变量总结

      OpenStack keystonemiddleware接收前一个WSGI过滤器传来的WSGI环境信息,进行验证工作后传递给下一个中间件,本文探讨keystone中间件究竟有哪些WSGI环境变量。

      

      说明:下文中以 HTTP\_ 开头的header对应标准http header, 以 HTTP_X 开头的header对应扩展的http header,WSGI环境信息用于在不同的WSGI组件间传递统一格式的内容,这些环境信息来自于HTTP请求或其他的WSGI组件,因此格式与HTTP中header字段的格式不同。

      

      keystone中间件WSGI环境变量与HTTP header字段总结:

       

    • 从keystoneclient或用户的调用中获得的有
    HTTP_X_AUTH_TOKEN

      HTTP请求中传入的用户令牌,对应于HTTP请求header中的'X-Auth-Token'字段;

      2.

    HTTP_X_SERVICE_TOKEN

      HTTP请求中传入的服务令牌;

     

    • 用于不同组件间通信的有:
    WWW-Authenticate

      返回给用户的HTTP header,告诉他们获取新令牌的keystone终端URL

     

    • 添加到请求中供OpenStack其他服务使用的有:

      当使用复合认证(即同时提供用户令牌和服务令牌)时,关于服务的额外header会被添加。他们与标准http header的格式相同,只不过多加了一个_SERVICE_。如果没有提供服务令牌,那么这些headers就不存在。

      1.    

    HTTP_X_IDENTITY_STATUS

       只能取'Confirmed' 或 'Invalid',同时如果中间被配置成'delay_auth_decision'模式运行的话,那么下游的服务将只会接收到'Invalid';

      2.    

    HTTP_X_DOMAIN_ID, 
    HTTP_X_SERVICE_DOMAIN_ID

      域ID,只有v3版的作用范围为域的令牌会包含该项;

      3.    

    HTTP_X_DOMAIN_NAME, 
    HTTP_X_SERVICE_DOMAIN_NAME

      域名称,只有v3版的作用范围为域的令牌会包含该项;

      4.    

    HTTP_X_PROJECT_ID, 
    HTTP_X_SERVICE_PROJECT_ID

      项目ID,只有v3版的作用范围为项目的令牌和v2版的作用范围为租户的令牌会包含该项;

      5.    

    HTTP_X_PROJECT_NAME
    HTTP_X_SERVICE_PROJECT_NAME

      项目名称,只有v3版的作用范围为项目的令牌和v2版的作用范围为租户的令牌会包含该项;

      6.    

    HTTP_X_PROJECT_DOMAIN_ID, 
    HTTP_X_SERVICE_PROJECT_DOMAIN_ID

      拥有项目的域ID,只有v3版的作用范围为项目的令牌会包含该项,一旦该项设置,假定在该域内的PROJECT_NAME唯一。

      7.    

    HTTP_X_PROJECT_DOMAIN_NAME
    HTTP_X_SERVICE_PROJECT_DOMAIN_NAME

      拥有项目的域名称,只有v3版的作用范围为项目的令牌会包含该项,一旦该项设置,假定在该域内的PROJECT_NAME唯一。

      8.      

    HTTP_X_USER_ID,
    HTTP_X_SERVICE_USER_ID

      用户ID或服务的用户ID。

      9.      

    HTTP_X_USER_NAME, 
    HTTP_X_SERVICE_USER_NAME

      用户名称或服务的用户名称。

      10.  

    HTTP_X_USER_DOMAIN_ID, 
    HTTP_X_SERVICE_USER_DOMAIN_ID

      用户所在的域ID,一旦该项设置,假定在该域内的USER_NAME唯一。

      11.  

    HTTP_X_USER_DOMAIN_NAME,
    HTTP_X_SERVICE_USER_DOMAIN_NAME

      用户所在的域名称,一旦该项设置,假定在该域内的USER_NAME唯一。

      12.  

    HTTP_X_ROLES, 
    HTTP_X_SERVICE_ROLES

      角色名称,采用逗号隔开且大小写敏感。

      13.  

    HTTP_X_SERVICE_CATALOG

      Json格式编码的服务目录(可选),注意尽管该header中含有'SERVICE',却对应的是用户令牌,由于用户令牌中包含的目录可能已经非常大,因此不再指定服务令牌的目录,这样可以节省HTTP的header空间。

     

    • 其他环境变量:

      1.    

    keystone.token_info

      验证令牌过程中发现的该令牌的相关信息,可能同时包括keystone服务器返回的验证后的信息和关于项目、用户等的基本信息。

      2.    

    keystone.token_auth

      一个keystoneclient认证插件,可能和类`keystoneclient.session.Session`一起使用,该插件将会加载要提供给auth_token中间件的认证数据。

  • 相关阅读:
    ASP.NET3.5 企业级项目开发 -- 第一章(续):企业级项目框架解决方案的提出
    ASP.NET安全问题--Forms验证(后篇)--实战篇
    ASP.NET安全问题--Froms验证的具体介绍(中篇)
    ASP.NET3.5 企业级项目开发 -- 第二章(续) 数据访问层(DAL)的开发解决方案提出
    ASP.NET3.5 企业级项目开发
    ASP.NET3.5 企业级项目开发 -- 第二章 数据访问层(DAL)的开发
    通过js的学习谈谈学习方法
    转载:LINQ to SQL更新数据库操作
    通用分页存储过程真的有注入漏洞吗?
    [MOSS开发]:webpart在部署时应该注意的地方
  • 原文地址:https://www.cnblogs.com/Security-Darren/p/4073847.html
Copyright © 2011-2022 走看看