OAuth 權杖和範圍
OAuth 權杖會授權對受保護資源的存取權。連線應用程式會在授權後代表用戶端接收權杖。範圍會進一步定義連線應用程式可存取的受保護資源類型。您在建立連線的應用程式時將範圍指派至其中,且在授權流程期間這些範圍會隨附 OAuth 權杖。
必要版本
| 提供版本:Salesforce Classic 與 Lightning Experience |
| 提供版本:所有版本 |
OAuth 權杖
授權伺服器可根據授權流程來將這些 OAuth 權杖提供給用戶端。
| OAuth 權杖 | 描述 |
|---|---|
| 授權代碼 | 授權伺服器會在成功驗證後建立授權代碼,並將其傳遞至用戶端,該授權代碼為短暫的權杖。用戶端會將授權代碼傳送至授權伺服器來取得存取權杖,或者是重新整理權杖。 |
| 存取權杖 | 如果用戶端獲得授權,則 Salesforce 會將存取權杖傳送給用戶端。此用戶端會將存取權杖傳遞給資源伺服器來要求對受保護資源的存取權。資源伺服器會在將存取權授與用戶端前,驗證範圍形式的存取權杖和其他參數。 存取權杖的留存時間較授權代碼久,通常是幾分鐘或幾個小時。當存取權杖到期時,使用權杖的嘗試會失敗。用戶端必須使用重新整理權杖或重新啟動授權流程來取得新的存取權杖。 用戶端必須能夠在「傳輸層安全性」(TLS 或 SSL) 之類的通訊協定攔截下保護存取權杖。 若要實作使用存取權杖的 OAuth 2.0 授權流程,請將 接收存取權杖後,此用戶端就可以使用其中一個方法來要求存取。
Salesforce 會為每個連線應用程式 (用戶端) 和使用者組合授與唯一存取權杖。但在下列狀況下,Salesforce 可能會核發相同的存取權杖給不同的服務提供者:
若要確保不同的服務提供者接收唯一的存取權杖,請為每個服務提供者建立不同的連線應用程式。 |
| 重新整理權杖 | 用戶端可以重複使用重新整理權杖來取得資源伺服器的存取權。重新整理權杖過期,或使用者在用戶端外部撤銷重重新整理權杖時,用戶端通常會透過從頭實作授權流程來要求新的存取權杖。 重新整理權杖可以具有無限的留存時間,以管理員設定的間隔持續留存或是直到被明確撤銷為止。用戶端可以儲存重新整理權杖並使用其來取得新的存取權杖。為了安全性起見,用戶端必須保護重新整理權杖,以免遭到未授權的存取。 如果要求包含 |
| 識別碼權杖 | 識別碼權杖是已簽署的資料結構,其中包含已驗證的使用者屬性,包括使用者的唯一識別碼,及核發權杖的時間。此權杖也會識別提出要求的用戶端應用程式。Salesforce 可回應具有識別碼權杖的 OAuth 要求,且符合 OpenID Connect 規格。 如果要求包含這些參數,則 OAuth 2.0 使用者代理程式與 OAuth 2.0 Web 伺服器流程皆可要求已簽署的識別碼權杖。傳回的權杖是 JSON Web 權杖 (JWT)。
以下是使用使用者代理程式流程的識別碼權杖範例要求。 使用已發佈的公用金鑰,驗證回應中的簽名是否為有效的 Salesforce 簽名。在 MyDomainName.my.salesforce.com/id/keys 上,回應會包含簽署所用之公用金鑰的 JSON 格式相關 JSON 格式資訊。使用具有正確 |
| 初始存取權杖 | Salesforce 會要求初始存取權杖來授權動態用戶端註冊要求流程。設定 OAuth 2.0 連線應用程式後,產生初始存取權杖。 |
| 資產權杖 | 如需有效率的權杖交換,並自動將裝置連結至 Service Cloud 資產資料,用戶端可以實作 OAuth 2.0 裝置流程。在此流程中,用戶端可以交換存取權杖與執行動作使用者權杖來取得資產權杖。此流程結合資產權杖核發和資產註冊。 |
| 刪除權杖 | 可用來撤銷重新整理權杖及相關聯存取權杖的權杖。此權杖由 OauthToken 物件上的 DeleteToken 欄位所代表。若要使用此權杖,請將其包含在對 OAuth 2.0 撤銷端點的要求中,或使用 Apex。請參閱 撤銷不透明 OAuth 權杖。 |
OAuth 範圍
您可以將這些 OAuth 範圍指派給連線應用程式,以定義用戶端可以存取的受保護資源類型。
| 值 | 描述 |
|---|---|
對 Customer Data Platform 資料執行 ANSI SQL 查詢 (cdp_query_api) |
允許 ANSI SQL 代表使用者查詢 Data Cloud 的資料。 |
管理 Pardot 服務 (pardot_api) |
允許代表使用者存取 Marketing Cloud Account Engagement API 服務。在 Account Engagement 中管理可存取服務的完整範圍。(Pardot 現在是 Marketing Cloud Account Engagement。) |
管理 Customer Data Platform 設定檔資料 (cdp_profile_api) |
允許存取 Data Cloud REST API 資料。使用此範圍以管理設定檔記錄。 |
存取 Connect REST API 資源 (chatter_api) |
允許代表使用者存取某些 Connect REST API 資源。若要允許存取所有 Connect REST API 資源,請使用 api 範圍。 |
管理 Customer Data Platform ⁇ 取 API 資料 (cdp_ingest_api) |
允許存取 Data Cloud 擷取 API 資料。使用此範圍在 Data Cloud 中上載與維護外部資料集。此範圍會封裝在 JSON Web 權杖 (JWT) 中。 |
Access Analytics REST API 圖表地理資料資源 (eclair_api) |
允許存取 Analytics REST API 圖表地理資料資源。 |
Access Analytics REST API 資源 (wave_api) |
允許存取 Analytics REST API 資源。 |
透過 API 管理使用者資料 (api) |
透過使用 REST API 和大量 API 2.0 等 API 來允許存取目前登入使用者的帳戶。此範圍也允許存取所有 Connect REST API 資源。 |
存取自訂權限 (custom_permissions) |
允許存取與連線的應用程式相關聯之組織中的自訂權限。此範圍也會顯示目前使用者是否已啟用每個權限。 |
存取身分 URL 服務 (id, profile, email, address, phone) |
允許存取身分 URL 服務。您可以個別要求 profile、email、address 或 phone 來取得與使用 id 相同的結果,因為這些結果是同義詞。 |
存取 Lightning 應用程式 (lightning) |
允許混合式應用程式透過 OAuth 2.0 混合式應用程式權杖流程和混合式應用程式重新整理權杖流程直接獲取 Lightning 的子工作階段。 |
存取內容資源 (content) |
允許混合式應用程式透過 OAuth 2.0 混合式應用程式權杖流程和混合式應用程式重新整理權杖流程直接獲取內容子工作階段。 |
存取唯一使用者識別碼 (openid) |
允許存取目前登入使用者的 OpenID Connect 應用程式唯一識別碼。 在 OAuth 2.0 使用者代理程式流程和 OAuth 2.0 Web 伺服器流程中,使用 |
完整存取權 (full) |
允許存取登入使用者可存取的所有資料,並涵蓋其他所有範圍。
|
隨時執行要求 (refresh_token, offline_access) |
允許在要求的用戶端具備接收重新整理權杖的資格時傳回這類權杖。此應用程式可以使用重新整理權杖,在使用者離線時與使用者資料互動。此權杖與要求的 offline_access 相同。 |
存取 Visualforce 應用程式 (visualforce) |
僅允許對客戶建立之 Visualforce 頁面的存取權。此範圍不允許對標準 Salesforce UI 的存取權。 若要允許混合式應用程式直接獲取 Visualforce 子工作階段,請透過 OAuth 2.0 混合式應用程式權杖流程或混合式應用程式重新整理權杖流程包含此範圍。 |
透過網頁瀏覽器管理使用者資料 (web) |
允許在網路上使用 access_token。此範圍也包含 visualforce,允許存取客戶建立的 Visualforce 頁面。 |
存取聊天機器人服務 (chatbot_api) |
允許存取 Einstein 機器人 API 服務。 |
| 存取無周邊註冊 API (user_registration_api) | 允許存取無周邊註冊流程的 API。如果您設定流程需要驗證,則必須傳送包含此範圍的存取權杖。 |
存取無周邊忘記密碼 API (forgot_password) |
允許存取「無周邊忘記密碼流程」的 API。如果您設定流程需要驗證,則必須傳送包含此範圍的存取權杖。 |
存取所有 Data Cloud API 資源 (cdp_api) |
允許存取所有的 Data Cloud API 資源。 |
存取 Salesforce API 平台 (sfap_api) |
允許存取 Salesforce API Platform,包括從 api.salesforce.com 或相等作業區域端點存取的 API 服務。 |
| 存取互動 API 資源 (interaction_api) | 已保留供日後使用。 |
用戶端接收存取權杖時,授權伺服器也會在其回應中包含在連線應用程式中指派的範圍。這些範圍也會與重新整理權杖一起儲存。對於 JSON 或 SAML 承載者權杖要求,要求會將所有先前重新整理權杖的範圍合併在一起。
所有範圍值皆包含 id,您可以隨時使用此值存取身分 URL。
此範例要求包含 api、id 和 web 範圍。範圍值會以空格字元 (%20) 分隔。
https://MyDomainName.my.salesforce.com/services/oauth2/authorize?
response_type=token&
client_id=3MVG9lKcPoNINVBKV6EgVJiF.snSDwh6_2wSS7BrOhHGEJkC_&
redirect_uri=http%3A%2F%2F2www.example.org%2Fqa%2Fsecurity%2Foauth%2Fuseragent_flow_callback.jsp&
scope=api%20id%20web

