2013-01-06 47 views
2

在AuthSub中,對於Google Apps託管域,我可以使用hd參數將用戶重定向到該域,讓他們登錄到該域並接收令牌。OAuth2中AuthSub的hd param身份驗證的等效參數

OAuth2中的等效功能是什麼? https://developers.google.com/drive/delegation

這是唯一的途徑:

我碰到這個URL來的?據我所知,服務帳戶可以直接訪問所有用戶?工作流程與過去用於AuthSub的用戶不得不登錄其個人域帳戶的工作流程不同?這種理解是否正確?

+0

您能否澄清您是試圖訪問域中的所有云端硬盤用戶數據還是僅嘗試將您的應用的範圍縮小至指定Google Apps域的登錄名? –

+0

僅限個人用戶。與用戶瀏覽器重定向到Google登錄屏幕的Web應用程序非常相似,然後將令牌/代碼發送回redirect_uri。我需要託管域登錄屏幕,而不是常規的Google登錄屏幕。 我試圖添加hd = mydomain.com,但登錄後,頁面被重定向到oauth2頁面,其中respone_type,client_id等丟失,因此我得到一個錯誤。 – MavWolverine

回答

2

我想我找到了一個解決方案,但不知道它是否是正確的。

爲了測試,我只是將& hd = mydomain.com添加到身份驗證網址,並且我被正確重定向到了域登錄頁面。一旦我登錄,我確實收到403,管理員已禁用第三方應用程序。所以我登錄到谷歌應用程序管理和啓用複選框。它工作得很好。

我只是需要谷歌驅動器開發人員的確認,如果這是一個正確的解決方案,或者目前僅適用於AuthSub/OAuth1尚未被禁用?

UPDATE:hd = default不起作用。您可以將其設置爲空字符串。

+0

如果有效,那太好了。雖然我可以找到它沒有記錄的功能。 –

+0

它被記錄在@AliAfshar。在Google的[OpenID Connect文檔](https://developers.google.com/identity/protocols/OpenIDConnect)上搜索「hd」。如果您想限制訪問您的域,請務必驗證生成的ID令牌中的「hd」聲明,因爲客戶端可能會操縱授權URL來丟棄「hd」。 –

1

這不是一個好的解決方案,但是您可以將user_id參數傳遞給OAuth2.0的授權URI以傳遞域用戶的電子郵件地址。這是如果你知道電子郵件地址。

如果沒有,你應該相信用戶選擇正確的帳戶,如果他們是在多次登錄

正如我說:對不起,這裏沒有一個很好的解決方案。

+0

嗨阿里,我想要做的是保持用戶域登錄(包括用戶名)自己。我不想記錄他們的用戶名。使用初始AuthSub,我可以使用hd = mydomain.com將用戶重定向到應用程序登錄屏幕。他們登錄並授予我的Web應用程序訪問權限。 – MavWolverine

+0

這正是我正在尋找的,謝謝! – jonnybro