全部產品
Search
文件中心

Identity as a Service:無AK訪問配置流程(結合阿里雲RAM)

更新時間:Nov 11, 2025

本文將結合阿里雲RAM存取控制,向您示範如何配置M2M應用的無AK訪問方式,並擷取STS Token的流程。

前提條件

建立OIDC身份供應商

  1. 使用Resource Access Management員登入RAM控制台

  2. 在左側導覽列,選擇整合管理 > SSO管理

  3. 角色SSO頁簽,先單擊OIDC頁簽,然後單擊建立身份供應商

  4. 建立身份供應商頁面,設定身份供應商資訊。

    參數

    說明

    身份供應商名稱

    同一個阿里雲帳號下必須唯一,與 IDaaS 無關,按照 RAM 規則錄入。

    頒發者 URL

    • 頒發者 URL(Issuer URL)是外部身份供應商(IdP)為M2M應用程式指派的唯一標識,用於OAuth 2.0等協議中校正令牌來源。

    • 阿里雲IDaaS會基於此URL驗證外部IdP頒發的令牌的有效性,其配置位於IDaaS M2M應用(Client端)的 Issuer 欄位中。

    驗證指紋

    • 填寫完頒發者 URL後,您可以單擊擷取指紋,阿里雲會輔助您自動計算出驗證指紋,但是建議您在本地自己計算一次(例如:通過OpenSSL擷取OIDC IdP的指紋),與阿里雲計算的指紋進行對比。

    • 如果對比發現不同,則說明該頒發者URL可能已經受到攻擊,請您務必再次確認,並填寫正確的指紋,RAM 會根據錄入的 Issuer 地址訪問擷取指紋。

    說明

    當您的IdP計划進行認證輪轉時,請在輪轉前產生新認證的指紋並添加到阿里雲OIDC身份供應商資訊中,一段時間(至少一天)以後再進行認證輪轉,認證輪轉確認可以換取到STS Token後再刪除舊的指紋。

    用戶端識別碼

    • 用戶端ID(Client ID)是您的應用在外部身份供應商(IdP)註冊時產生的唯一標識。當外部IdP簽發OIDC令牌(OIDC Token)時,需使用該用戶端ID,且令牌的aud欄位會攜帶此ID。在阿里雲OIDC身份供應商中配置此用戶端ID後,系統會在使用OIDC Token換取STS Token時校正aud欄位的用戶端ID是否匹配,確保安全扮演角色。

    • 單個OIDC身份供應商最多支援配置50個用戶端ID,適用於多應用訪問阿里雲的情境。

    • 在M2M(Machine-to-Machine)應用情境中,用戶端ID對應 IDaaS M2M 應用中配置的受眾標識,用於服務端間認證。

    最早頒發時間限制

    在該限制時間之前頒發的OIDC Token不允許換取STS Token。預設值:12小時。取值範圍:1~168小時。

    備忘

    身份供應商的描述資訊。

  5. 單擊建立身份供應商

建立OIDC身份供應商角色

  1. 前往阿里雲RAM存取控制控制台,選擇角色 > 建立角色 > 身份提供者 > 切換編輯器

    image

  2. 在編輯器頁面,按照下圖的步驟,開始添加身份提供者

    image

  3. 添加主體彈出框中,選擇上文中已經建立好的身份提供者,點擊確定完成添加。

    image

  4. 身份提供者添加完成後,會預設產生iss和aud條件,您可以選擇編輯或刪除這兩個條件,也可以繼續添加新的條件。

    image

  5. 下文以添加sub條件運算式為例,向您示範如何添加條件,您可按實際需要選擇是否添加。編輯完成後,點擊確定,即可完成添加。

    說明
    • 條件值:您需要填入已經建立好的M2M應用Server端的 client_id。如何添加M2M應用及查看受眾標識等資訊,請參考:M2M應用(機器間許可權管理)

    • 如果您需要瞭解更多條件運算式的資訊,請參考:權限原則基本元素

    • 當前RAM OIDC中僅支援三種條件:oidc:issoidc:audoidc:sub

    image

  6. 單擊底部的確定,在建立角色彈出框中,填入您要建立的角色名稱,單擊確定,即可完成角色建立。

    image

角色授權

您可以根據需要,向已建立的角色新增授權

image

擷取M2M Token

通過curl命令方式擷取

  • 請將以下佔位參數替換為您的應用配置後,執行curl命令,擷取Token。

    # 請將<app_issuer_endpoint>、<YOUR_APP_CLIENT_ID>、<YOUR_APP_CLIENT_SECRET>和<YOUR_SERVER_AUD_IDENTIFIER>替換為您M2M應用的具體配置值。
    #
    # <YOUR_SERVER_ISSUER_ENDPOINT>:Issuer,“Resources Server應用 > 通用配置 > Issuer“中查看Endpoint並替換。
    # <YOUR_APP_CLIENT_ID>:用戶端ID,在“Client應用 > 通用配置 > 憑證管理“中查看client_id並替換。
    # <YOUR_APP_CLIENT_SECRET>:用戶端Secret,在“Client應用 > 通用配置 > 憑證管理“中查看client_secret並替換。
    # <YOUR_SERVER_AUD_IDENTIFIER>:服務端受眾標識,在“Resources Server應用 > 服務端許可權開放 > 許可權應用 > 受眾標識“中,尋找受眾標識並替換。
    #
    curl --location --request POST 'https://<YOUR_SERVER_ISSUER_ENDPOINT>.aliyunidaas.com/api/v2/iauths_system/oauth2/token' \
         --header 'Content-Type: application/x-www-form-urlencoded' \
         --data-urlencode 'client_id=<YOUR_APP_CLIENT_ID>' \
         --data-urlencode 'client_secret=<YOUR_APP_CLIENT_SECRET>' \
         --data-urlencode 'grant_type=client_credentials' \
         #.all 是阿里雲 IDaaS 平台中的一個預定義範圍識別碼,表示 請求該受眾(Audience)下的所有可用許可權。
         --data-urlencode 'scope=<YOUR_SERVER_AUD_IDENTIFIER>|.all'
  • Token擷取成功時結果如下。

    image

通過Postman工具擷取

  • 如下圖所示,請將各參數替換為您的應用配置參數後,通過Postman發起請求擷取token。

    image

通過M2M Token擷取RAM角色的臨時身份憑證(STS Token)

說明

如果您暫時不瞭解阿里雲STS,請先前往瞭解什麼是STS

OpenAPI方式擷取

  • 前往OpenAPI門戶,找到AssumeRoleWithOIDC介面。

    說明

    本文僅示範擷取,更多關於AssumeRoleWithOIDC介面的詳細資料,請參見:AssumeRoleWithOIDC - OIDC角色SSO時擷取扮演角色的臨時身份憑證

  • 填寫介面所需的必要參數,確認無誤後點擊發起調用,即可擷取到STS Token。

    重要
    • OIDCProviderArn:請前往您已建立的OIDC身份服務提供者角色的基本資料中,從信任策略中擷取。

    • RoleArn:請前往您已建立的OIDC身份服務提供者角色的基本資料中,找到ARN並擷取。

    • OIDCToken:填入您上文中已擷取成功的M2M Token。

    • RoleSessionName:無特殊要求,使用者自訂欄位,僅作為角色標識。

相關文檔