机器间权限管理(M2M)是无需用户参与的应用间授权,由IDaaS进行授权,结合网关型产品进行鉴权,从而控制调用方应用对受保护资源的访问,防止越权访问。
使用场景
企业在数字化协作场景中,如果需要将部分业务系统能力开放给第三方合作伙伴(如外包团队)时,通常需要建立基于机器身份的自动化授权机制。在具体实施过程中,企业可采取以下方案:
建立合作伙伴准入认证体系:通过预共享密钥或OAuth 2.0客户端凭证模式等技术手段,为每个合作方分配独立的机器身份标识。
采用细粒度权限管理策略:在API访问控制层面,将非核心业务数据接口的访问权限与特定合作伙伴身份进行绑定。例如:可配置仅允许某开发团队调用数据可视化相关的接口服务。
这种基于M2M(机器对机器)通信的授权模式,既保证了自动化系统间的高效交互,又通过身份鉴权和权限隔离机制降低了数据安全风险,特别适用于开发协作、数据看板搭建等无需终端用户介入的系统对接场景。
使用M2M应用(机器间权限管理)功能,需要创建EIAM实例(免费实例或付费实例),每个实例可享2个额度M2M应用的免费试用。如果您尚未开通,请前往开通购买。
功能概述
机器间权限管理(M2M)是无需用户参与的应用间授权,由IDaaS进行授权,结合网关型产品进行鉴权,从而控制调用方应用对受保护资源的访问,防止越权访问。

典型场景
企业将内部API对外开放给外包/供应商系统调用,需要精细化控制其调用权限。
企业在非云厂商环境内访问云厂商资源(如多云环境)。
典型客户
需要结合API网关对外暴露API的客户。
所有需要无AK访问阿里云的客户,以及多云客户。IDaaS方案可以在阿里云无AK方案的基础上覆盖本地开发环境、多云环境场景的使用。
核心功能
凭证管理:管理IDaaS中调用方应用的凭证,用于向IDaaS请求
Access Token。授权管理:定义调用方应用,并对其进行授权。
预集成网关:在应用统一鉴权场景下,联动API网关进行鉴权。
基本概念
概念 | 说明 |
M2M应用(Machine-to-Machine) | 用于机器间权限管理的应用,无需用户参与的授权和鉴权过程,可联动API网关实现API权限控制、联动RAM实现无AK访问。 说明 一个M2M应用既可以作为客户端,也可以作为服务端。 |
客户端 | 即调用方应用(对应OAuth中的Client),是一个发起向受保护资源访问的应用程序。 |
服务端 | 即被调用方应用或受保护资源(对应OAuth中的Resource Server),代表一个外部资源实体。 |
受众标识 | 对应Claim中的aud,表示Access Token的受众,即服务端的唯一标识。填写后不可修改。 |
配置流程
本文主要以API网关配置流程进行介绍。M2M应用既可以作为调用方身份(即Client),也可以作为被调用方身份(即Resource Server)。
建议一个M2M应用只使用其中一种身份。

调用流程
调用方应用验证身份并请求
Access Token。IDaaS 返回
Access Token(包含权限信息)。调用方应用携带
Access Token访问被调用方应用。被调用方应用(或API网关、STS服务)验证
Token有效性。被调用方应用(或API 网关、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 表示管理员权限。
授权应用。您可在授权应用列表中,查看或管理被调用方应用的权限,如授权、收回权限等。

客户端权限管理
单击可查看该应用被授予的权限。在被调用方应用的中进行添加权限和授权。