Reactor API中的秘密
在Reactor API中,秘密是代表驗證認證的資源。 在事件轉送中使用密碼來驗證其他系統的安全資料交換。 因此,只能在事件轉送屬性(具有以下特性的屬性)中建立秘密: platform
屬性已設定為 edge
)。
目前有三個受支援的秘密型別,表示於 type_of
屬性:
token
simple-http
oauth2-client_credentials
本指南提供如何設定用於事件轉送的密碼的整體概觀。 如需如何在Reactor API中管理秘密的詳細指引,包括秘密結構的JSON範例,請參閱 秘密端點指南.
認證
每個密碼都包含 credentials
儲存其個別認證值的屬性。 時間 在API中建立秘密,每種型別的密碼都有不同的必要屬性,如下節所示:
token
token
含的秘密 type_of
值 token
僅需要下的單一屬性 credentials
:
token
代號會儲存為靜態值,因此密碼的 expires_at
和 refresh_at
屬性已設定為 null
建立密碼時。
simple-http
simple-http
含的秘密 type_of
值 simple-http
需要下列屬性,位於 credentials
:
username
password
建立密碼時,兩個屬性會以BASE64編碼交換 username:password
. 交換後,秘密的 expires_at
和 refresh_at
屬性已設定為 null
.
oauth2-client_credentials
oauth2-client_credentials
含的秘密 type_of
值 oauth2-client_credentials
需要下列屬性,位於 credentials
:
client_id
client_secret
token_url
refresh_offset
14400
(4小時)預設為關閉。當 oauth2-client_credentials
密碼建立或更新後, client_id
和 client_secret
(而且可能會 options
)會在POST要求中交換至 token_url
,根據OAuth通訊協定的使用者端憑證流程。
如果授權服務回應 200 OK
和JSON回應內文,則會剖析內文及 access_token
會推送至邊緣環境,而且 expires_in
用於計算 expires_at
和 refresh_at
密碼的屬性。 如果密碼上沒有環境關聯, access_token
會捨棄。
在以下條件下,憑證交換被視為成功:
expires_in
大於28800
(8小時)。refresh_offset
小於expires_in
減號14400
(四個小時)。 例如,如果expires_in
是36000
(十小時),以及refresh_offset
是28800
(8小時),交換被視為失敗,因為28800
大於36000
-14400
(21600
)。
如果交換成功,密碼的狀態屬性會設為 succeeded
和值 expires_at
和 refresh_at
已設定:
expires_at
為目前的UTC時間加上expires_in
.refresh_at
為目前的UTC時間加上expires_in
,減去refresh_offset
. 例如,如果expires_in
是43200
(12小時)和refresh_offset
是14400
(四個小時),refresh_at
屬性將設為28800
(8小時)後結束。
如果交換因任何原因而失敗, status_details
中的屬性 meta
物件會以相關資訊更新。
重新整理 oauth2-client_credentials
密碼
如果 oauth2-client_credentials
密碼已指派給環境,其狀態為 succeeded
(已成功交換認證),新交換會自動執行於 refresh_at
.
如果交換成功, refresh_status
中的屬性 meta
物件已設定為 succeeded
while expires_at
, refresh_at
、和 activated_at
將進行相應的更新。
如果交換失敗,則會再次嘗試操作3次,最後一次嘗試的時間不超過存取Token過期的兩小時。 如果所有嘗試都失敗, refresh_status_details
屬性來自 meta
物件會以相關詳細資料更新。
oauth2-google
oauth2-google
含的秘密 type_of
值 oauth2-google
需要下列屬性,位於 credentials
:
scopes
列出用於驗證的Google產品範圍。 支援下列範圍:
- Google Ads:
https://www.googleapis.com/auth/adwords
- Google Pub/Sub:
https://www.googleapis.com/auth/pubsub
建立之後 oauth2-google
密碼,回應包含 meta.authorization_url
屬性。 您必須複製此URL並貼到瀏覽器中,才能完成Google驗證流程。
重新授權 oauth2-google
密碼
的授權URL oauth2-google
密碼在建立後一小時過期(如所示)。 meta.authorization_url_expires_at
)。 在這之後,必須重新授權密碼才能更新驗證程式。
請參閱 秘密端點指南 以取得有關如何重新授權 oauth2-google
向Reactor API發出PATCH請求以保密。
環境關係
建立密碼時,您必須指定 環境 將存在的位置。 秘密會立即部署到建立它們的環境。
密碼只能與一個環境相關聯。 一旦秘密和環境之間的關係建立,就不能從環境中清除秘密,而且秘密不能與不同的環境相關聯。
成功交換密碼的認證後,為了將密碼與環境相關聯,交換成品(的權杖字串 token
,的Base64編碼字串 simple-http
,或的存取Token oauth2-client_credentials
)會安全地儲存在環境中。
成功在環境中儲存Exchange成品後,密碼的 activated_at
屬性已設定為目前的UTC時間,現在可以使用資料元素參照。 請參閱 下一節 以取得參考密碼的詳細資訊。
引用密碼 referencing-secrets
為了參考密碼,您必須建立「 」型別的資料元素密碼" (由 核心 擴充功能)。 設定此資料元素時,系統會提示您指出每個環境要使用的密碼。 然後,您可以建立參考機密資料元素的規則,例如HTTP呼叫的標頭內。
succeeded
與建置程式庫之環境相關聯的密碼。 例如,如果程式庫有秘密資料元素,而此元素沒有 succeeded
密碼設定用於 中繼密碼 區段,嘗試在中繼環境中建置該程式庫將會導致錯誤。在執行階段,秘密資料元素會由儲存在環境中的對應秘密交換成品取代。