Azure Container Apps:通过托管标识限制API访问的配置求助
配置Azure Container Apps API与托管标识客户端的身份验证关联
一、API侧(ACA)后续配置
你已启用Microsoft身份提供者,需完成以下补充配置:
- 定义API的应用程序角色
- 登录Azure门户,找到ACA启用身份验证后自动生成的Azure AD应用注册(可通过ACA的「身份验证」页面跳转,或在Azure AD「应用注册」中搜索ACA名称)。
- 进入该应用注册的「应用程序角色」页面,点击「创建应用程序角色」:
- 填写显示名称(如
API访问权限)、值(如Api.Access)、描述; - 成员类型选择应用程序(托管标识属于服务主体,为应用身份);
- 勾选「启用」后保存角色。
- 填写显示名称(如
- 配置ACA的访问规则
- 返回ACA的「身份验证」设置页面,找到「访问规则」板块;
- 点击「添加规则」,设置规则名称(如
限制API访问); - 路径匹配选
/*(或需保护的具体路径); - 权限要求选择要求角色,勾选刚创建的
Api.Access角色; - 保存规则,此时仅携带该角色令牌的请求可访问API。
二、客户端侧(托管标识)配置
- 定位托管标识的服务主体
- 在Azure AD「企业应用程序」中,搜索客户端资源名称(系统分配托管标识的名称与资源名称一致);
- 进入该企业应用(即托管标识对应的服务主体)。
- 分配API的应用程序角色权限
- 返回API对应的Azure AD应用注册,进入「权限」页面;
- 点击「添加权限」,选择「我的API」,找到API的应用注册;
- 选择「应用程序权限」,勾选之前创建的
Api.Access角色,点击「添加权限」; - 点击「授予管理员同意」(应用权限需全局管理员或API权限管理员同意后方可生效)。
三、验证配置
- 客户端可通过托管标识获取API的访问令牌,示例Azure CLI命令:
az account get-access-token --resource <API应用注册的客户端ID> - 将令牌作为
Authorization: Bearer <令牌>请求头调用API端点,正常情况下可访问;未携带有效令牌的请求会被ACA身份验证层拦截,返回401或403错误。
内容的提问来源于stack exchange,提问作者cyberguest
相关产品推荐
相关产品推荐

