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

如何使用客户端凭据或OAuth2实现OCI SDK身份验证

OCI .NET SDK 客户端凭据/OAuth2 认证方案

OCI 支持基于**客户端凭据流(Client Credentials Flow)**的OAuth2认证,完全适配你的客户端自动化场景,无需依赖本地配置文件。核心是通过OCI Identity Domains的OAuth2服务实现,具体方案如下:

核心实现路径

  • 前置准备:在OCI Identity Domains中创建应用程序,生成客户端ID、客户端密钥,并为该应用配置对应的OCI资源权限(如用户管理、Compartment管理权限)。
  • 认证流程:
    1. 向Identity Domains的令牌端点发送请求,携带客户端ID和密钥,获取访问令牌。
    2. 将访问令牌传入OCI .NET SDK,作为认证凭据发起API请求。

.NET SDK 代码示例

using Oracle.CloudInfrastructure.Common;
using Oracle.CloudInfrastructure.IdentityService;
using System.Net.Http;
using System.Text.Json;

// 1. 获取OAuth2访问令牌
var clientId = "你的客户端ID";
var clientSecret = "你的客户端密钥";
var tokenEndpoint = "https://<你的身份域>.identity.oraclecloud.com/oauth2/v1/token";

var tokenRequest = new FormUrlEncodedContent(new[]
{
    new KeyValuePair<string, string>("grant_type", "client_credentials"),
    new KeyValuePair<string, string>("client_id", clientId),
    new KeyValuePair<string, string>("client_secret", clientSecret)
});

using var httpClient = new HttpClient();
var tokenResponse = await httpClient.PostAsync(tokenEndpoint, tokenRequest);
tokenResponse.EnsureSuccessStatusCode();
var tokenData = JsonSerializer.Deserialize<JsonElement>(await tokenResponse.Content.ReadAsStringAsync());
var accessToken = tokenData.GetProperty("access_token").GetString();

// 2. 用访问令牌初始化SDK客户端
var authProvider = new StaticTokenAuthenticationDetailsProvider(accessToken);
var identityClient = new IdentityClient(authProvider)
{
    Region = Region.UsEast1 // 替换为你的目标区域
};

// 执行Compartment创建示例
var compartmentParams = new CreateCompartmentDetails
{
    CompartmentId = "你的租户ID",
    Name = "auto-created-compartment",
    Description = "通过OAuth2认证自动化创建的Compartment"
};
var createResult = await identityClient.CreateCompartment(compartmentParams);

关键注意事项

  • 权限配置:需通过OCI控制台的策略,为Identity Domains应用授予对应操作的权限(如manage users、manage compartments)。
  • 令牌管理:访问令牌默认有效期3600秒,需在过期前重新获取,或实现自动刷新逻辑。
  • 安全存储:客户端密钥避免硬编码,建议用环境变量或OCI Vault等密钥管理服务存储。

内容的提问来源于stack exchange,提问作者SIVA KUMAR KALLURI

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 11:06:15