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

本地C#应用获取Azure AD令牌调用Azure OpenAI端点是否可行?

本地C#应用调用Azure OpenAI的可行性说明

你的这段代码在本地部署的C#应用中完全可以正常调用Azure OpenAI的ChatCompletions端点,前提是完成以下关键配置和调整:

必要配置事项

  • 分配Azure AD应用权限:给你注册的Azure AD应用,在Azure OpenAI资源的IAM设置中分配合适的角色(比如「Cognitive Services OpenAI User」或「Cognitive Services Contributor」),确保应用拥有调用ChatCompletions端点的权限。
  • 替换代码占位符:将代码中的ClientId、TenantId、ClientSecret替换为你Azure AD应用的实际信息;EndpointUrl要指向具体的ChatCompletions路径,格式示例:https://{你的资源名称}.openai.azure.com/openai/deployments/{你的部署名称}/chat/completions?api-version=2024-02-15-preview。
  • 完善请求体内容:代码中PostAsync的第二个参数是空白内容,你需要替换为符合ChatCompletions接口要求的JSON请求体,示例:
    var requestBody = new StringContent(
        "{\"messages\": [{\"role\": \"user\", \"content\": \"请介绍一下Azure OpenAI\"}]}",
        System.Text.Encoding.UTF8,
        "application/json"
    );
    
  • 确保网络连通性:本地应用需要能够正常访问Azure AD登录端点(https://login.microsoftonline.com)和Azure OpenAI的服务端点,无防火墙或代理拦截。

代码逻辑说明

这段代码采用的是Azure AD的客户端凭证流(通过MSAL库的AcquireTokenForClient实现),这种认证模式不需要用户交互,专门适用于服务端、本地后台这类无人值守的应用场景。只要本地应用能通过网络向Azure AD获取合法的Bearer令牌,就能用该令牌调用Azure OpenAI的受保护端点——这和应用部署在本地还是Azure云环境无关,核心是权限配置和网络可达性。

代码中的关键逻辑:

  • 使用ConfidentialClientApplicationBuilder通过Client ID和Client Secret构建认证客户端
  • 请求的Scopehttps://cognitiveservices.azure.com/.default是Azure认知服务(包括OpenAI)客户端凭证流的标准范围
  • 获取令牌后,将其以Bearer认证头的形式添加到HTTP请求中,符合Azure OpenAI的身份验证要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 05:16:29