Google 授權體系

2021-08-25 18:38:54 字數 2629 閱讀 9722

訪問 google api 或者 google 裡面的資料時,第三方應用程式通常需要從首先從 google 拿到授權。比如說,使用者使用了乙個第三方應用程式,而此應用程式需要拿使用者的日曆資訊,代表使用者拿到 calendar 的資訊,首先必須從 google 得到授權,不能說誰都可以拿使用者的敏感資訊吧。因此 google api 的授權體系正是為了保證使用者的資料,保護應用程式本身而設計的一整套安全的系統。了解 google 的授權體系同樣有利於我們構建自己的使用者認證和授權系統,目前部門的一些系統已經採用了 google 類似的授權方案。顯然,學習好的架構是百利而無一害的。

1. 當應用程式需要訪問使用者的google 服務時,如日曆,google doc 等服務時,可以向google 授權**服務發起乙個authsub 的呼叫。

2. 授權服務回應乙個訪問請求page ,這個google 託管的page 要求使用者grant\deny 訪問他們的google service 的請求。

3. 使用者決定是否同意該第三方程式訪問他們。如果使用者拒絕訪問,該page 會跳轉到google 頁面而不是返回給應用程式。

4. 如果使用者同意授權,則授權服務將page 重定向給應用程式,這個重定向url 包含乙個授權的token ,這個token 只能使用一次,而且這個token 可以交換成生命週期更長的token 。

5. 應用程式用乙個請求訪問google 服務,並使用授權token 來代表充當使用者的角色。

6. 如果 google 認識該 token ,則給應用程式提供請求的資料。

note:一些google services只允許那些已經註冊過和使用安全tokens的web應用程式訪問

1.4 working with authsub

整合authsub,你需要做以下工作:

1.首先決定你的應用程式是否需要註冊

經過註冊的應用程式有個優勢是讓google認識你。在google 登入頁面顯示給使用者標準的警告將被濾除或者修改,另外經過註冊的程式是通過描述名來識別,而不是僅僅是通過呼叫的url。記住有些google service強制要求應用程式必須經過註冊,如果你選擇註冊,請使用自動化的註冊流程。

如果你註冊,你也可以提供乙個安全證書和key。有證書的經過註冊的web 程式能夠獲取安全token。

2.決定使用什麼型別的tokens和怎麼去管理他們

從google拿到授權的token是用於以後和特定的google service進行互動的。選擇一次性的token還是session token取決於你的應用程式的與google service互動的型別,例如單次使用的token適合於只需要互動一次或者很少需要盡興互動的情況。

如果你選擇使用session tokens,並且使用他們進行常規的對google服務的訪問,你的額應用程式將需要管理token的儲存,包括跟蹤為user和google service的token正確性,google 帳號並不是為了管理大量的tokens,並且實際上不允許多餘10個以上正確的tokens(對於每個應用程式,每個使用者),如果有必須這種限制允許程式使用多個tokens去覆蓋不同的服務。如果你決定儲存session tokens,這些tokens應該象對待其他敏感資訊一樣要進行安全保護。

3.決定google service的訪問的scope

service他們自己決定允許什麼型別的訪問並且允許訪問多少內容。這種訪問是通過乙個scope的值來表達的。乙個服務的scope可以是乙個簡單的url來代表整個service,或者可以指定更加嚴格的訪問。一些服務對訪問提出了非常高的限制,例如對某些限制性的內容只提供唯讀的訪問。要獲取你想要訪問的google service的scope,請參考相應service的文件。你必須盡量指定更嚴格的scope,例如,如果你想要訪問gmail的atom feed feature,應盡量使用""的scope而不是"",google service對large scope的請求更加嚴格。

4.準備一種機制去傳送和接收授權token

這種機制必須產生乙個正確的authsub request的呼叫,包括指定合適的scope的url值和next url。如果你正在使用安全的token或者你正在使用session tokens,這個請求必須也包含這些變數的值。

next的url可以包含查詢引數。例如,當支援多語言版本時,可以包含乙個web應用程式語言版本的查詢引數,那麼next的url: 的請求,會產生乙個

&token=dqaadkede的redirect。解析token和語言引數可以保證重定向到指定語言的site。

這種token機制必須解析從google redirect回來的token引數,這個token是單個使用的token,因為授權tokens是針對乙個使用者而言的,應用程式必須能將這個token跟這個使用者關聯起來。你可以使用cookie來關聯user和token,當google將帶有token的url將user重定向回到你的site時,你的程式可以讀取cookie並關聯到正確的user。

5.準備一種機制去請求session token,別且儲存或者銷毀他們

取決於你選擇哪一種token管理,你可能需要建立一種機制去獲取和銷毀session tokens(authsubsessiontoken and authsubrevoketoken)。 測試session和銷毀機制,使用authsubtokeninfo,這個物件可以表明乙個token是否正確。如果儲存token,應用程式必須跟蹤user id和token覆蓋service的範圍。

Google炮轟微軟 專利授權就是在敲詐

微軟 三星在週三達成了一項廣泛性專利交叉授權協議,三星所出貨的 android 智慧型手機和平板電腦都需要向微軟支付授權費,谷歌發言人將微軟的此項交易比作是 敲詐 谷歌發言人在發給 的郵件宣告中稱 我們看到,微軟這一套戰術已經使用了多次。他們無法在智慧型機市場取得成功,所以就借助法律措施來敲詐其他廠...

mysql授權 mysql授權

2.授權法。pis1 允許使用者myuser使用mypassword從任何主機連線到mysql伺服器。sql 1 grant all privileges on to myuser identified by mypassword with grant option 2 flush privileg...

mysql 授權 mysql 使用者授權

mysql grant 許可權1,許可權2,許可權n on 資料庫名稱.表名稱 to 使用者名稱 使用者位址 identified by 連線口令 許可權1,許可權2,許可權n代表select,insert,update,delete,create,drop,index,alter,grant,re...