Keystone中間件WSGI環境變量總結

  OpenStack keystonemiddleware接收前一個WSGI過濾器傳來的WSGI環境信息,進行驗證工做後傳遞給下一個中間件,本文探討keystone中間件究竟有哪些WSGI環境變量。服務器

  

  說明:下文中以 HTTP\_ 開頭的header對應標準http header, 以 HTTP_X 開頭的header對應擴展的http header,WSGI環境信息用於在不一樣的WSGI組件間傳遞統一格式的內容,這些環境信息來自於HTTP請求或其餘的WSGI組件,所以格式與HTTP中header字段的格式不一樣。session

  

  keystone中間件WSGI環境變量與HTTP header字段總結:編碼

   

  • 從keystoneclient或用戶的調用中得到的有

 

HTTP_X_AUTH_TOKEN

  HTTP請求中傳入的用戶令牌,對應於HTTP請求header中的'X-Auth-Token'字段;spa

  2.插件

HTTP_X_SERVICE_TOKEN

  HTTP請求中傳入的服務令牌;code

 

  • 用於不一樣組件間通訊的有:
WWW-Authenticate

  返回給用戶的HTTP header,告訴他們獲取新令牌的keystone終端URL中間件

 

  • 添加到請求中供OpenStack其餘服務使用的有:

  當使用複合認證(即同時提供用戶令牌和服務令牌)時,關於服務的額外header會被添加。他們與標準http header的格式相同,只不過多加了一個_SERVICE_。若是沒有提供服務令牌,那麼這些headers就不存在。blog

  1.    token

HTTP_X_IDENTITY_STATUS

   只能取'Confirmed' 或 'Invalid',同時若是中間被配置成'delay_auth_decision'模式運行的話,那麼下游的服務將只會接收到'Invalid';ci

  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中間件的認證數據。

相關文章
相關標籤/搜索