• 沒有找到結果。

第三章、 系統設計與架構

3、 混合雲帳號整合

立 政 治 大 學

Na tiona

l Ch engchi University

3、 混合雲帳號整合

在混合雲環境之下,使用者會有多重帳號和身分,例如:公有雲端服務帳號、

私有雲帳號和本地端帳號等,本系統為進行在混合雲環境下的檔案同步,需要以 使用者帳號的整合性為基礎,其詳細方法如下所述。

3.1 單一驗證介面

使用本系統功能的先決條件為身分驗證通過,而系統的客戶端環境分為 Windows 和 Linux 作業系統,因此本研究透過系統中網頁伺服器所提供的 Web-Based 的帳號驗證服務,以單一的驗證介面來支援跨平台的驗證需求,如圖十四 使用者客戶端和網站 Portal 端會共用同樣的驗證元件。

圖 十四:單一驗證介面元件圖

其中,Windows 和 Linux 的客戶端應用程式,會以應用程式內嵌 Web Browser 控制項的方式,讓客戶端應用程式也能共用和網站 Portal 同樣的 Web-Based 驗證 介面,而不需要再個別開發專屬於應用程式的驗證模組。使用者可以透過 Web Browser 控制項進行和 Portal 服務一樣的登入方式,客戶端應用程式會以監聽 Web Browser 控制項網址的導向及其參數,來判斷使用者驗證成功與否,來決定 後續的流程,網址判斷依據如表四。

表 四:客戶端應用程式驗證判斷

‧ 國

立 政 治 大 學

Na tiona

l Ch engchi University

URL 說明

http://auth.example.com/service 預設登入頁面,選擇要登入的雲端 服務

http://auth.example.com/application 已經完成和雲端服務的 OpenID 驗 證,並重新導向回系統的驗證服務 http://auth.example.com/application?code= 網址參數 code 表示驗證成功 http://auth.example.com/application?error= 網址參數 error 表示驗證失敗

3.2 階段式帳號連結

本系統中雲端帳號的階段式連結,讓使用者不需要第一次就把所有雲端帳號 關聯建立起來,可以在未來自由選擇要連結(增加)或是移除和不同雲端帳號之間 的關聯。系統設計上讓新使用者(第一次進行登入)和已登入的使用者,可以透過 一樣的驗證流程來完成登入和連結雲端帳號,換句話說,新使用者視同雲端帳號 連結數為零的用戶。使用者登入和連結雲端帳號的詳細帳號驗證順序如圖十五。

圖 十五:帳號驗證順序圖

‧ 國

立 政 治 大 學

Na tiona

l Ch engchi University

系統的使用者,藉由帳號驗證服務所整合並彙整的多個不同雲端供應商 OpenID 來進行登入。本系統的帳號驗證服務只作為服務提供者,系統並不自行 建立使用者帳號和密碼,而是透過 OpenID 來向各個雲端身分提供商,例如 Google、

Dropbox、Microsoft 和 Amazon 進行帳號驗證。當驗證成功後系統會把登入的雲 端帳號和該使用者建立關聯並存在資料庫,確保使用者在不同裝置上登入本系統 可以取得同樣的帳號連結關係。

3.3 雲端帳號對應

由於使用者登入系統和連結雲端帳號都是透過同樣的帳號驗證服務,來和各 公有雲端服務、私有雲端服務進行驗證,因此系統可以得知登入的使用者擁有那 些雲端帳號,並把這些不同帳號資訊儲存並建立對應關係。

帳號對應關係的資料儲存,分為客戶端和伺服器端,其中客戶端為配合應用 程式是以 SQLite 來做為資料庫,儲存登入使用者目前已經擁有的帳號對應關係;

伺服器端為了處理眾多使用者帳號對應資料,則使用 MongoDB 資料庫來儲存帳 號對應關係,兩者的 Schema 設計如下所述。

( 1 ). 客戶端

圖 十六:SQLite 帳號對應類別圖

‧ 國

立 政 治 大 學

Na tiona

l Ch engchi University

如圖十六,Identity 和 Provider 為一對多關係,會以一筆 Identity 資料來對應 到該使用者所有連結的雲端帳號,客戶端應用程式可以根據該資料表,判斷哪些 雲端服務是有被連結的,並根據表中所存的使用者資料來做應用,其中 UID 是 系統自動產生的唯一識別碼。

( 2 ). 伺服器端

圖 十七:MongoDB 帳號對應 User Collection 的 JSON 結構

在伺服器端資料庫 MongoDB 的 User Collection 儲存的 JSON 資料格式如圖 十七,其中 provider 陣列裡面會存有使用者各個雲端帳號相關的權杖(Token)資 料,系統的同步服務可以使用雲端服務對應的權杖資料,並擁有權限來存取其儲 存服務。

檔案監控模組監聽到事件觸發後,會依據 producer-consumer pattern,檔案監 控模組作為 producer,其會把每次產生的異動事件儲存進 Queue 資料結構,而同 步模組作為 consumer,會不斷從該 Queue 資料結構把事件抓出來,再進行同步 工 作 。 其 中 , 檔 案 和 資 料 夾 異 動 事 件 會 轉 為 物 件 並 以𝑂𝑏𝑗𝑒𝑐𝑡𝑠𝑦𝑛𝑐𝑄𝑢𝑒𝑢𝑒= {𝑂𝐼𝐷, 𝑂𝐶ℎ𝑎𝑛𝑔𝑒𝑇𝑦𝑝𝑒, 𝑂𝑃𝑎𝑡ℎ, 𝑂𝑂𝑙𝑑𝑃𝑎𝑡ℎ, 𝑂𝐿𝑎𝑠𝑡𝑀𝑜𝑑𝑖𝑓𝑖𝑒𝑑𝑇𝑖𝑚𝑒, 𝑂𝑆𝑖𝑧𝑒, 𝑂𝑇𝑦𝑝𝑒}存進 Queue。