更新时间:2026-06-10 gmt 08:00
identity sdk-j9九游会登录
场景介绍
identity sdk提供华为云身份认证服务的管理能力,支持工作负载身份、凭证提供者、访问令牌等管理功能。
原理优势
identityclient是身份认证服务的高级客户端。
文件位置:src/agentarts/sdk/services/identity/identity_client.py
from agentarts.sdk.service.identity import identityclient
client = identityclient(region="cn-southwest-2") 操作步骤
- 创建工作负载身份。
workload = client.create_workload_identity( name="my-workload", ) print(f"urn: {workload.urn}") - 创建访问令牌。
# 使用用户token创建 token = client.create_workload_access_token( workload_name="my-workload", user_token="user-oauth-token" ) # 使用用户id创建 token = client.create_workload_access_token_for_user_id( workload_name="my-workload", user_id="user-123" ) print(f"access token: {token}") - 配置凭证提供者管理。
- api key凭证提供者
provider = client.create_api_key_credential_provider( name="my-api-key-provider", api_key="your-api-key" ) print(f"provider urn: {provider.urn}") - oauth2凭证提供者
# github oauth2 provider = client.create_oauth2_credential_provider( name="github-provider", vendor="githuboauth2", client_id="your-client-id", client_secret="your-client-secret" ) # google oauth2 provider = client.create_oauth2_credential_provider( name="google-provider", vendor="googleoauth2", client_id="your-client-id", client_secret="your-client-secret" ) # microsoft oauth2 provider = client.create_oauth2_credential_provider( name="microsoft-provider", vendor="microsoftoauth2", client_id="your-client-id", client_secret="your-client-secret" ) - sts凭证提供者
provider = client.create_sts_credential_provider( name="my-sts-provider", agency_urn="agency-urn:your-agency", tags=[{"key": "env", "value": "prod"}] )
- api key凭证提供者
- 使用客户端进行凭证获取。
- 获取oauth2 token
token = client.get_resource_oauth2_token( provider_name="github-provider", scopes=["user:email", "read:user"], workload_access_token="agent-identity-token" ) print(f"token: {token}") - 获取api key
api_key = client.get_resource_api_key( provider_name="my-api-key-provider", workload_access_token="workload-token" ) print(f"api key: {api_key}") - 获取sts token
sts_token = client.get_resource_sts_token( provider_name="my-sts-provider", workload_access_token="workload-token", agency_session_name="session-name" ) print(f"access key: {sts_token.access_key_id}") print(f"secret key: {sts_token.secret_access_key}") print(f"security token: {sts_token.security_token}")
- 获取oauth2 token
- 推荐使用装饰器来处理凭据生命周期。它们会自动将令牌或密钥注入到你的函数参数中。
from typing import optional from agentarts.sdk import require_access_token, require_api_key, require_sts_token from agentarts.sdk.identity.types import stscredentials # oauth2 access token 注入 (异步) @require_access_token( provider_name="google", scopes=["https://www.googleapis.com/auth/userinfo.email"], auth_flow="user_federation" ) async def fetch_google_data(access_token: optional[str] = none): print(f"using oauth2 token: {access_token}") # m2m access token 注入 (异步) @require_access_token( provider_name="my-company-api", auth_flow="m2m" ) async def call_internal_service(access_token: optional[str] = none): print(f"using m2m oauth2 token: {access_token}") # api key 注入 (同步) @require_api_key(provider_name="openai") def call_llm(api_key: optional[str] = none): print(f"using api key: {api_key}") # sts token 注入 @require_sts_token(provider_name="huaweicloud-iam", agency_session_name="example-session") async def access_huawei_resource(sts_credentials: optional[stscredentials] = none): # 直接访问 sdk 对象字段 print(f"ak: {sts_credentials.access_key_id}") print(f"sk: {sts_credentials.secret_access_key}") print(f"securitytoken: {sts_credentials.security_token}")
父主题:
相关文档
意见反馈
文档内容是否对您有帮助?
提交成功!非常感谢您的反馈,我们会继续努力做到更好! 您可在查看反馈及问题处理状态。
系统繁忙,请稍后重试
如您有其它疑问,您也可以通过华为云社区问答频道来与我们联系探讨