簡體   English   中英

無需用戶交互的 Google Cloud OAuth 2.0 請求令牌 - Java

[英]Google Cloud OAuth 2.0 Request Token without user interaction - Java

我正在研究從 GCP 讀取日志文件以用於內部進程的解決方案。 但是,我在嘗試為獲取所需日志的請求生成身份驗證令牌時遇到了困難。 這更像是一個流程\\上下文問題,而不是我的代碼有什么問題

我遇到的關鍵問題是我不想提示進行網絡瀏覽器身份驗證。 我希望能夠通過 API 請求完成這一切並且沒有用戶交互。 我看過的每一個地方和我嘗試過的所有實現,我都會以某種方式提示用戶交互,但這對於這個解決方案是不可行的。

如何做到這一點?

我們沒有啟用 IAM,所以我無法生成 JWT 令牌。 我試圖通過使用使用客戶端 ID 和客戶端密碼創建的服務帳戶來做到這一點。

我曾嘗試將“代碼”傳遞到生成授權令牌的請求中,但這一直提示我在瀏覽器中進行用戶授權,即使我添加了查詢參數“prompt”或“approval_prompt”,這也不起作用無或強制。 我覺得我缺少一個能夠實現這一流程的關鍵部分,任何幫助/指導將不勝感激。

有多種方法可以驗證 API 調用。 如果您想在沒有用戶交互的情況下執行此操作,則需要使用服務帳戶( 此處有更多信息)。 該過程如下:

您使用客戶端 ID 和一個私鑰來創建簽名的 JWT 並以適當的格式構建訪問令牌請求。 然后,您的應用程序將令牌請求發送到 Google OAuth 2.0 授權服務器,后者返回訪問令牌。 應用程序使用令牌訪問 Google API。 當令牌過期時,應用程序重復該過程。

為此,您可以使用客戶端庫,也可以直接使用 HTTP 請求手動完成。 文檔中有一個指南。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM