3

我想通過Google身份驗證實施ACL。需要一些關於相同的可能性的指針。帶Google身份驗證的Appengine ACL

使用案例:

  • 頁只能訪問[email protected]所有

  • Y形訪問屬於一組Y的X註冊後,主持人將添加/拒絕用戶到組Y.

  • 如果用戶不屬於上述任何一個,頁面不可訪問。即使用戶認證成功,也禁止未經授權的視圖。

我計劃使用Django我的項目,Django提供任何支持將是有用的。

在此先感謝。

回答

5

您需要自己完成此操作:使用由用戶的user_id鍵控的數據存儲模型實現ACL,然後在每個請求上提取並檢查它。用戶API不提供任何這樣的內置。

0

這裏有一個答案,只是管理部分以及如何做你的問題的另一部分可能的建議:

對於管理員只能訪問,我把下面的行app.yaml

handlers: 
- url: /admin/.* 
    script: main.py 
    login: admin 

- url: /super-restricted-area/.* 
    script: main.py 
    login: admin 

以上將僅限於adminsuper-restricted-area基地網站的管理員。您可以將多個網址限制爲管理員。在瀏覽Python Application Configuration文檔後,我無法在配置級找到任何分組限制。

對於以下內容,我將假定您對Django非常滿意,在視圖中使用中間件和裝飾器,否則可能需要頁面來詳細解釋這兩個主題。假設分組限制不能在配置級別完成,您可以嘗試將授權代碼放入django中間件(如果應用引擎支持它,應用引擎上的django有限)或裝飾器中的視圖。

在你的中間件或裝飾,這裏的東西入手:

from google.appengine.api import users 

user = users.get_current_user() 

if user: 
    # Get the group of the user and perform your authorisation 

這裏是爲above參考。