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

Azure企业应用客户端凭证流:自定义WebAPI OAuth认证配置需求

客户端凭证流令牌适配自定义WebAPI的完整配置方案

1. 为自定义WebAPI创建应用注册

  • 登录Azure门户,进入「应用注册」,新建注册(此注册对应你的WebAPI服务)。
  • 记录该注册的应用程序(客户端)ID和目录(租户)ID,后续配置需用到。

2. 为WebAPI暴露专用权限/应用角色

2.1 添加API范围

  • 在WebAPI的应用注册页面,切换到「公开API」选项卡:
    • 点击「添加范围」,确认应用程序ID URI(默认值为api://{客户端ID},可直接保留),点击「保存并继续」。
    • 填写范围信息:名称设为access_as_application,同意类型选择「管理员同意」,补充描述后完成添加。

2.2 创建应用角色(可选,用于基于角色的权限控制)

  • 回到应用注册的「应用角色」选项卡,点击「创建应用角色」:
    • 填写角色名称(如API.FullAccess),允许的成员类型选择「应用程序」,补充描述后点击「应用」。

3. 配置客户端应用(企业应用)的API权限

  • 打开用于获取令牌的客户端应用注册页面,进入「API权限」选项卡:
    • 点击「添加权限」,在弹出窗口中切换到「我的API」标签,即可看到你创建的WebAPI注册(若未显示,刷新页面或确认租户一致性)。
    • 选中该WebAPI,勾选对应的应用权限(注意必须选应用权限,而非委托权限,匹配客户端凭证流的无用户场景),点击「添加权限」。
    • 点击「授予管理员同意」,确保权限生效。

4. 修改令牌获取代码

将原代码中的.default范围替换为WebAPI的专用范围,格式为{WebAPI的应用程序ID URI}/.default,示例如下:

appConfidential = ConfidentialClientApplicationBuilder
        .Create(ClientID)
        .WithClientSecret("MySecret")
        .WithAuthority(authority)
        .WithLegacyCacheCompatibility(false)
        .Build();

string[] confidentialScope = new string[] { "api://your-webapi-client-id/.default" };
return appConfidential.AcquireTokenForClient(confidentialScope).ExecuteAsync().Result;

此处的.default会自动包含已授权的所有应用权限,无需单独指定单个角色或范围。

5. WebAPI端的令牌验证配置

确保WebAPI在验证令牌时,将**受众(Audience)设置为WebAPI的应用程序ID或应用程序ID URI,同时验证令牌的颁发者(Issuer)**与你的租户ID匹配。


内容的提问来源于stack exchange,提问作者Manuel

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 13:18:01