閱讀512 返回首頁    go windows


臨時授權訪問__訪問控製_API 參考_對象存儲 OSS-阿裏雲

STS介紹

OSS可以通過阿裏雲STS服務,臨時進行授權訪問。阿裏雲STS (Security Token Service) 是為雲計算用戶提供臨時訪問令牌的Web服務。通過STS,您可以為第三方應用或聯邦用戶(用戶身份由您自己管理)頒發一個自定義時效和權限的訪問憑證。第三方應用或聯邦用戶可以使用該訪問憑證直接調用阿裏雲產品API,或者使用阿裏雲產品提供的SDK來訪問雲產品API。

  • 您不需要透露您的長期密鑰(AccessKey)給第三方應用,隻需要生成一個訪問令牌並將令牌交給第三方應用即可。這個令牌的訪問權限及有效期限都可以由您自定義。
  • 您不需要關心權限撤銷問題,訪問令牌過期後就自動失效。

以APP應用為例,交互流程如下圖:

方案的詳細描述如下:

  1. App用戶登錄。App用戶身份是客戶自己管理。客戶可以自定義身份管理係統,也可以使用外部Web賬號或OpenID。對於每個有效的App用戶來說,AppServer是可以確切地定義出每個App用戶的最小訪問權限。
  2. AppServer請求STS服務獲取一個安全令牌(SecurityToken)。在調用STS之前,AppServer需要確定App用戶的最小訪問權限(用Policy語法描述)以及授權的過期時間。然後通過調用STS的AssumeRole(扮演角色)接口來獲取安全令牌。角色管理與使用相關內容請參考《RAM使用指南》中的角色管理
  3. STS返回給AppServer一個有效的訪問憑證,包括一個安全令牌(SecurityToken)、臨時訪問密鑰(AccessKeyId, AccessKeySecret)以及過期時間。
  4. AppServer將訪問憑證返回給ClientApp。ClientApp可以緩存這個憑證。當憑證失效時,ClientApp需要向AppServer申請新的有效訪問憑證。比如,訪問憑證有效期為1小時,那麼ClientApp可以每30分鍾向AppServer請求更新訪問憑證。
  5. ClientApp使用本地緩存的訪問憑證去請求Aliyun Service API。雲服務會感知STS訪問憑證,並會依賴STS服務來驗證訪問憑證,並正確響應用戶請求。

STS安全令牌詳情,請參考《RAM使用指南》中的角色管理。關鍵是調用STS服務接口AssumeRole來獲取有效訪問憑證即可。也可以直接使用STS SDK來調用該方法,點擊查看

使用STS憑證構造簽名請求

用戶的客戶端端拿到STS臨時憑證後,通過其中安全令牌(SecurityToken)以及臨時訪問密鑰(AccessKeyId, AccessKeySecret)構建簽名。授權訪問簽名的構建方式與使用直接使用根賬號的AccessKey在Header中包含簽名基本一致,關鍵注意兩點:

  • 用戶使用的簽名密鑰為STS提供的臨時訪問密鑰(AccessKeyId, AccessKeySecret)。
  • 用戶需要將安全令牌(SecurityToken)攜帶在請求header中或者以請求參數的形式放入URI中。這兩種形式隻能選擇其一,如果都選擇,oss會返回InvalidArgument錯誤。
    • 在header中包含頭部x-oss-security-token:SecurityToken。計算簽名CanonicalizedOSSHeaders時,將x-oss-security-token計算在內。
    • 在URL中攜帶參數security-token=SecurityToken。計算簽名CanonicalizedResource時 ,將security-token當做一個sub-resource計算在內。

最後更新:2016-11-23 17:16:07

  上一篇:go 在URL中包含簽名__訪問控製_API 參考_對象存儲 OSS-阿裏雲
  下一篇:go Bucket權限控製__訪問控製_API 參考_對象存儲 OSS-阿裏雲