全部產品
Search
文件中心

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

更新時間:Jun 09, 2026

本文將結合阿里雲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

    • 用戶端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存取控制控制台,選擇角色 > 创建角色 > 身份提供者 > 切換編輯器

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

    單擊可視化編輯頁簽,在主體類型中選擇身份提供者,然後單擊添加按鈕添加身份提供者。

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

    身份提供者類型選擇為OIDC

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

    預設產生的兩個條件鍵分別為 oidc:issoidc:aud,運算子均為 StringEquals

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

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

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

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

    運算子下拉框中選擇 StringEquals

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

角色授權

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

在角色的許可權管理頁簽下單擊新增授權,資源範圍選取帳號層級,在權限原則搜尋方塊中輸入 idaas 進行篩選,勾選系統策略 AliyunYundunIdaasReadOnlyAccess,然後單擊確認新增授權

擷取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擷取成功時結果如下。

    xxx ~ % curl --location --request POST 'https://xxx.aliyunidaas.com/api/v2/iauths_system/oauth2/token' \
        --header 'Content-Type: application/x-www-form-urlencoded' \
        --data-urlencode 'client_id=app_xxx4y54' \
        --data-urlencode 'client_secret=CSHoxxx5ZQ6' \
        --data-urlencode 'grant_type=client_credentials' \
        --data-urlencode 'scope=xxx.all'
    {
        "token_type": "Bearer",
        "access_token": "eyJrxxxi5rg",
        "expires_in": 3600,
        "expires_at": 1741336113
    }

通過Postman工具擷取

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

    請求地址為 POST https://<IDaaS執行個體網域名稱>.aliyunidaas.com/api/v2/iauths_system/oauth2/token,Body 選擇 x-www-form-urlencoded 編碼方式,包含參數 client_idclient_secretgrant_type(值為 client_credentials)和 scope。請求成功後(200 OK),返回的 JSON 響應體格式:

    {
      "token_type": "Bearer",
      "access_token": "eyJrxxx...xxxDiCw",
      "expires_in": 3600,
      "expires_at": 1741331524
    }

    其中 access_token 即為擷取到的 Bearer 類型存取權杖,有效期間為 3600 秒。

通過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:無特殊要求,使用者自訂欄位,僅作為角色標識。

相關文檔