我們在爲使用Oauth2.0進行SSO的新Google Apps Marketplace開發應用程序時遇到了問題。Ruby on Rails上的新Google Apps Marketplace Oauth2.0實施問題
作爲我們應用程序的一部分,我們在離線模式下使用Google Calendar V3 API - 這意味着我們需要爲我們的客戶保留'refresh_token'。
爲了得到我們需要配置google_oauth2.0提供商第一的OAuth2.0身份驗證在「refresh_token」(使用omniauth - 谷歌 - 的oauth2寶石),如:
Rails.application.config.middleware.use OmniAuth::Builder do
provider :google_oauth2, CONFIG[:app_id], CONFIG[:app_secret], {
access_type: 'offline',
prompt: 'consent' }
end
如果不指定access_type:'離線,並提示:'同意'我們沒有收到refresh_token,並且無法正確使用日曆API。
但是,指定提示符''consent''屬性會導致授權彈出窗口,這會取消整個SSO想法 - 其中只有在安裝過程中會提示域管理員。
是否可以在不提示域用戶的情況下獲取refresh_token? 新的Google Apps Marketplace如何在不提示最終用戶的情況下支持離線訪問?
您是對的 - 服務帳戶是在用戶不在鍵盤時打開API調用並且不會破壞SSO的唯一方式。這是因爲通過Google Apps Marketplace安裝的應用無法請求刷新令牌。我們正在探索如何以安全的方式允許刷新令牌。 – jonathanberi