2014-01-16 57 views
2

我們使用OAuth 1.0協議在Google Apps Marketplace上部署了多個應用程序。根據Google Platform中的OAuth 1.0期限,我們正嘗試將所有應用遷移到新的OAuth版本,但我們在向Google Admin SDK Directory API發送後臺請求時遇到了一些困難。如何模擬域以使用Oauth2訪問Google API Admin SDK?

在我們的應用程序中,我們需要請求域用戶帳戶,組和其他相關電子郵件域結構。在OAuth 1.0之前,我們一直使用2-LO(雙重綁定OAuth)來做這件事,所以基本上一旦管理員給我們訪問,我們就可以使用這種機制來模擬對域的請求。

在閱讀了所有有關Google API,Oauth機制和內容的Google文檔之後,也嘗試了一些代碼測試假設後,我們還沒有弄清楚如何管理OAuth 2的相同概念,原因如下:

  1. 使用Web服務器的Oauth 2策略根本不會因爲在那種情況下工作,我們會得到管理員SDK域用戶訪問。如果我們保留他們的訪問/刷新令牌對以便稍後查詢Admin SDK,並且由於域更改Admin,我們將從流中斷開。

  2. 我認爲在這種情況下最好的選擇是服務帳戶策略。這種情況下的問題是用戶必須根據Google的文檔域範圍的授權機構https://developers.google.com/+/domains/authentication/delegation#create_the_service_account_and_its_credentials)在其管理控制檯中手動配置對應用的訪問權限。這對我們來說非常尷尬,因爲我們是以交互方式管理所有應用程序安裝,並且我們不想刪除用戶體驗設施。

最後,我的問題是:

  1. 有沒有辦法做的OAuth 2,無需人工用戶配置域的授權權限,全交互?
  2. 有沒有辦法做到這一點,而不需要用戶的電子郵件,這實際上是服務帳戶Oauth2策略中的參數之一?
  3. 我們是否必須爲此場景保留2-LO身份驗證,並僅爲安裝Google Marketplace部分執行OAuth 2?

任何意見或指導將是wellcome。

最佳,

回答

1
  1. 當然 - 在最新的更新到谷歌Apps Marketplace中,安裝應用程序時的行爲意味着管理員不需要做額外的手動工序。

  2. 您需要一種方法來模擬服務帳戶中的用戶。根據您實施應用程序的方式,您可能需要使用Directory API

  3. OAuth1最終會消失,所以我建議您始終使用OAuth2來簡化代碼複雜性。

+0

謝謝您的快速回答。我會盡力這樣做。最好, – jproyo

相關問題