You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何对调用Azure App Service API的服务/应用进行身份验证(非用户身份验证场景)

如何对调用Azure App Service API的服务/应用进行身份验证(非用户身份验证场景)

针对你的ASP.NET Framework App Service场景,结合你提出的「无代码/少改动、不碰密钥证书、仅允许特定服务访问」的严格要求,我推荐用Azure App Service内置的Easy Auth(AAD身份验证)+ 托管标识 + 企业应用分配的方案,完美匹配所有约束,具体操作步骤和逻辑如下:

核心逻辑说明

这个方案的核心是利用Azure的托管标识(Managed Identity)自动管理服务身份,同时借助App Service的Easy Auth在入口层完成认证——完全不需要修改你的ASP.NET Framework应用代码,所有认证逻辑都由Azure平台处理。

具体操作步骤

  • 步骤1:为调用你API的客户端服务启用托管标识
    如果调用方是Azure原生服务(比如另一个App Service、Function App、VM等),直接进入该服务的「标识」设置页,启用系统分配托管标识即可。Azure会自动为这个服务创建一个对应的AAD服务主体,全程不需要你手动生成、存储任何密钥或证书,完美符合你「不能用secrets/cert」的要求。

  • 步骤2:将客户端托管标识添加到你的API的企业应用允许列表
    你的API已经有对应的AAD企业应用,进入该企业应用的「用户和组」页面:

    1. 点击「添加用户/组」
    2. 在弹出的面板中,切换到「用户和组」的下拉选项,找到刚才为客户端服务创建的托管标识(显示名称一般和客户端服务名称一致)
    3. 为该主体分配一个合适的访问角色(如果没有自定义角色,选默认的「用户」角色即可,主要用于标识访问权限)
    4. 确认添加后,这个客户端服务就被纳入了你的API的允许访问列表,其他未被添加的服务一律无法通过认证。
  • 步骤3:配置API App Service的Easy Auth令牌受众
    进入你的API App Service的「身份验证」设置页,找到已配置的AAD提供商,进入「高级设置」:
    在「允许的令牌受众」中添加你的API应用注册的应用ID URI(格式通常为api://<你的API应用客户端ID>)。这一步是确保只有针对你的API生成的有效令牌才会被接受,避免无关令牌的非法访问。

  • 步骤4:客户端服务如何发起合法请求
    客户端服务(比如另一个App Service)可以直接通过Azure内置的托管标识令牌获取机制,请求你的API的访问令牌,全程不需要存储任何密钥。例如在客户端是App Service的场景下,代码中可以通过Azure的托管标识SDK自动获取令牌,或者在Azure CLI中用az account get-access-token --resource <你的API应用ID URI>命令模拟获取令牌进行测试。

为什么这个方案符合所有约束

  1. 无代码改动:所有认证逻辑都由App Service的Easy Auth在入口层处理,你的ASP.NET Framework应用完全不需要修改代码,请求到达应用时已经是通过认证的合法请求。
  2. 无密钥/证书维护:托管标识由Azure自动管理身份凭证,你不需要手动创建、存储或轮换任何密钥、证书,彻底规避了密钥泄露风险。
  3. 精准控制访问范围:通过企业应用的用户/组分配,只有你手动添加的客户端托管标识才能访问API,完全满足「仅允许特定服务访问」的要求。
  4. 适配ASP.NET Framework:Easy Auth是App Service的平台级功能,和应用运行的.NET框架版本无关,完美兼容你的ASP.NET Framework应用。

备注:内容来源于stack exchange,提问作者Rashmi Paliwal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.16 08:30:30