機器間許可權管理(M2M)是無需使用者參與的應用間授權,由IDaaS進行授權,結合網關型產品進行鑒權,從而控制調用方應用對受保護資源的訪問,防止越權訪問。
使用情境
企業在數字化協作情境中,如果需要將部分業務系統能力開放給第三方夥伴(如外包團隊)時,通常需要建立基於機器身份的自動化授權機制。在具體實施過程中,企業可採取以下方案:
建立夥伴准入認證體系:通過預先共用金鑰或OAuth 2.0用戶端憑證模式等技術手段,為每個合作方分配獨立的機器身份標識。
採用細粒度許可權管理原則:在API存取控制層面,將非核心業務資料介面的存取權限與精選合作夥伴身份進行綁定。例如:可配置僅允許某Team Dev調用資料視覺效果相關的介面服務。
這種基於M2M(機器對機器)通訊的授權模式,既保證了自動化系統間的高效互動,又通過身份鑒權和許可權隔離機制降低了資料安全風險,特別適用於開發協作、資料看板搭建等無需終端使用者介入的系統對接情境。
使用M2M應用(機器間許可權管理)功能,需要建立EIAM執行個體(免費執行個體或付費執行個體),每個執行個體可享2個額度M2M應用的免費試用。如果您尚未開通,請前往開通購買。
功能概述
機器間許可權管理(M2M)是無需使用者參與的應用間授權,由IDaaS進行授權,結合網關型產品進行鑒權,從而控制調用方應用對受保護資源的訪問,防止越權訪問。
典型情境
企業將內部API對外開放給外包/供應商系統調用,需要精細化控制其調用許可權。
企業在非雲廠商環境內訪問雲廠商資源(如多雲環境)。
典型客戶
需要結合API Gateway對外暴露API的客戶。
所有需要無AK訪問阿里雲的客戶,以及多雲客戶。IDaaS方案可以在阿里雲無AK方案的基礎上覆蓋本地開發環境、多雲環境情境的使用。
核心功能
憑證管理:管理IDaaS中調用方應用的憑證,用於向IDaaS請求
Access Token。授權管理:定義調用方應用,並對其進行授權。
預整合網關:在應用統一鑒權情境下,聯動API Gateway進行鑒權。
基本概念
概念 | 說明 |
M2M應用(Machine-to-Machine) | 用於機器間許可權管理的應用,無需使用者參與的授權和鑒權過程,可聯動API Gateway實現API許可權控制、聯動RAM實現無AK訪問。 說明 一個M2M應用既可以作為用戶端,也可以作為服務端。 |
用戶端 | 即調用方應用(對應OAuth中的Client),是一個發起向受保護資源訪問的應用程式。 |
服務端 | 即被呼叫者應用或受保護資源(對應OAuth中的Resource Server),代表一個外部資源實體。 |
受眾標識 | 對應Claim中的aud,表示Access Token的受眾,即服務端的唯一標識。填寫後不可修改。 |
配置流程
本文主要以API Gateway配置流程進行介紹。M2M應用既可以作為調用方身份(即Client),也可以作為被呼叫者身份(即Resource Server)。
建議一個M2M應用只使用其中一種身份。
調用流程
調用方應用驗證身份並請求
Access Token。IDaaS 返回
Access Token(包含許可權資訊)。調用方應用攜帶
Access Token訪問被呼叫者應用。被呼叫者應用(或API Gateway、STS服務)驗證
Token有效性。被呼叫者應用(或API Gateway、STS服務)進行鑒權,允許存取或攔截操作。
返迴響應。
應用配置
添加應用
登入IDaaS管理主控台,選擇並進入您的 IDaaS 執行個體,進入對應執行個體的管理主控台。
選擇,單擊添加应用。
在彈出對話方塊中的應用程式名稱一欄中填寫您的應用程式名稱,單擊立即添加,系統將自動跳轉至 M2M 應用詳情配置頁面。
通用配置
基础信息。
应用ID:由系統自動產生的唯一標識,用於唯一識別該 M2M 應用。
应用名称:可自訂填寫,用於在管理介面中區分不同 M2M 應用。
凭证管理。M2M 應用支援多種凭证类型。
Client Secret 凭证 。您可通過單擊添加 client_secret操作產生用戶端憑據,該憑據用於用戶端在調用服務端 API 時進行身分識別驗證和鑒權請求。
client_id:M2M 應用的唯一識別碼,用於應用身份服務互動時的身分識別驗證。
client_secret:M2M 應用的密鑰,用於與應用身份服務互動時的許可權校正。
查看:單擊查看,展示 client_secret 的完整內容。
删除:刪除當前 client_secret,刪除後需重新添加新密鑰。
设置有效期:配置 client_secret 的有效期間,到期後需重建密鑰。
說明需妥善保管 client_secret,若發生泄露,需立即刪除舊密鑰並添加新密鑰以保障安全。
公私钥凭证。在公私钥凭证選項卡下,單擊手动添加按鈕,進入建立憑證頁面。
情境類型:預設PRIVATE_KEY_JWT認證。
加密類型:預設 RSA-2048。
公開金鑰:在文字框中粘貼公開金鑰內容,需確保公開金鑰格式以
-----BEGIN PUBLIC KEY-----開頭、-----END PUBLIC KEY-----結尾,格式不正確會導致驗證失敗。
PCA、OIDC、PKCS#7 憑證類型配置,請參見:建立聯邦憑證。
网络范围限制。通過客户端网络范围配置,限制 M2M 應用的訪問來源。
任何网络范围:允許任意 IP 位址發起對 M2M 應用的調用。
指定网络范围:僅允許特定 IP 位址(或 IP 段)發起調用,需在網路範圍下拉框中選擇已添加允許訪問的網路範圍。
应用配置信息。M2M 應用的 OAuth2 相關配置,包含以下關鍵資訊。
Issuer:用於標識 Token 發放來源的唯一識別碼,作為 OAuth2 相關介面的 BaseUrI 地址,確保身分識別驗證流程中 Token 源頭的可追溯性與唯一性。
OIDC 發現端點:公開可訪問的端點,用於擷取當前身份服務支援的 OIDC 協議端點資訊、認證模式及參數規範。
OAuth2 發現端點:公開可訪問的端點,提供當前 IDaaS 支援的 OAuth2 授權端點資訊及授權模式,為開發人員配置 OAuth2 流程提供合規性依據。
令牌端點:用於請求並擷取 OAuth2 Token 的介面地址,支援通過授權碼、用戶端憑據等模式完成身份憑證的頒發。
驗證公開金鑰端點:提供用於驗證 Token 簽名的公開金鑰資訊的介面,支援公開金鑰動態輪轉機制,確保 SSO 流程中 Token 驗證的時效性與防篡改安全性。
服务端权限开放
開啟服務端許可權開放後,該M2M應用將作為被呼叫者(即 OAuth 中的資原始伺服器),可通過配置許可權並授權調用方,實現對調用方許可權的精細化控制。
首次開啟需添加受眾標識,受眾標識對應Claim中的aud,標識Access Token的受眾,即持有受保護資源的服務。添加後不可修改。
許可權應用。
受众标识:對應Claim中的aud,標識Access Token的受眾,即持有受保護資源的服務。
服务端权限开放:單擊開啟按鈕,在彈出的啟用許可權開放對話方塊受眾標識輸入框中,填寫調用方的受保護資源服務地址(需與OAuth中的aud Claim對應,即調用方應用的資原始伺服器地址)。
自定义主体:開啟自訂主體後,簽發的 Access Token 將從(clientld) 變成 <clientld>:<client.activeSubjectUrn>,其中 client.activeSubjectUrn 在應用的聯邦憑證的屬性對應中設定。
許可權管理。開啟後,可以向調用方應用添加或刪除許可權。
單擊添加权限按鈕,在添加許可權頁面填寫以下關鍵資訊:
授权类型:選擇机器权限(適用於機器間調用情境)。
权限名称:輸入許可權在管理端的展示名稱(如“使用者讀取許可權”)。
权限标识:輸入許可權的唯一標識(建議採用“資源:操作:限制條件”格式,如
user:read:all,需確保應用內唯一)。
說明資源:指被操作的具體對象,如使用者、角色、檔案、API等。樣本:user 表示使用者資源;file 表示檔案資源。
操作:指對資源執行的具體行為,如如讀取、寫入、刪除等。樣本:read 表示讀取操作;write 表示寫入操作。
限制條件:指操作的範圍或約束,如範圍、時間、權限等級等。樣本:all 表示所有使用者;admin 表示管理員權限。
授權應用。您可在授權應用列表中,查看或管理被呼叫者應用的許可權,如授權、收回許可權等。
客户端权限管理
單擊可查看該應用被授與權限。在被呼叫者應用的中進行添加許可權和授權。