全部產品
Search
文件中心

Identity as a Service:環境準備

更新時間:Mar 28, 2026

環境要求

  • 安裝 Python 版本 3.9 及以上。

  • 安裝 pip 工具。

安裝 Python SDK

Core SDK 最新版本參考:https://pypi.org/project/cloud-idaas-core/

通過 pip 工具在 Python 環境中安裝依賴:

pip install cloud-idaas-core

# 或者安裝指定版本,x.x.x 替換為版本號碼
pip install cloud-idaas-core==x.x.x

此外,IDaaS SDK 支援 OpenAPI 認證方式,在Function Compute(FC) 等情境下, 可以使用阿里雲的身份憑證(AK/SK、STS)擷取 M2M 用戶端令牌。使用該認證方式,還需要額外安裝阿里雲認證方式擴充外掛程式。

阿里雲認證擴充外掛程式最新版本參考:https://pypi.org/project/cloud-idaas-core-alibabacloud-authentication-plugin/

pip install cloud-idaas-core-alibabacloud-authentication-plugin

# 或者安裝指定版本,x.x.x 替換為版本號碼
pip install cloud-idaas-core-alibabacloud-authentication-plugin==x.x.x

路徑說明

設定檔的預設路徑:~/.cloud_idaas/client-config.json。

也可以通過環境變數或初始化傳參指定設定檔路徑:

  • 環境變數名:CLOUD_IDAAS_CONFIG_PATH

環境變數樣本:

CLOUD_IDAAS_CONFIG_PATH=/.../client-config.json

初始化傳參樣本:

IDaaSCredentialProviderFactory.init("/.../client-config.json")

設定檔說明

設定檔樣本如下:

{
  "idaasInstanceId": "idaas_xxx",      
  "clientId": "app_xxx",               
  "issuer":"https://xxx/api/v2/iauths_system/oauth2",               
  "tokenEndpoint": "https://xxx/api/v2/iauths_system/oauth2/token",
  "scope": "api.example.com|read:file",
  "openApiEndpoint":"eiam.[region_id].aliyuncs.com",
  "developerApiEndpoint":"eiam-developerapi.[region_id].aliyuncs.com",
  "authnConfiguration": {
    "identityType": "CLIENT",
    "authnMethod": "CLIENT_SECRET_POST",
    "clientSecretEnvVarName": "IDAAS_CLIENT_SECRET"
  },
  "httpConfiguration": {
    "connectTimeout": 5000,
    "readTimeout": 10000
  }
}

參數說明

欄位名

備忘

idaasInstanceId

必填,IDaaS EIAM 的執行個體 ID。

clientId

必填,IDaaS 應用的應用 ID,可在對應 IDaaS 應用中查看。

issuer

必填,IDaaS EIAM 執行個體的 Issuer 端點,可在 IDaaS EIAM 執行個體下的任意 M2M 應用中查看。

tokenEndpoint

必填,IDaaS EIAM 執行個體的令牌端點,可在 IDaaS EIAM 執行個體下的任意 M2M 應用中查看。

scope

必填,指定要訪問的 M2M 服務端應用的受眾標識和許可權標識,格式為受眾標識|許可權標識

在擷取託管到 IDaaS 的 RAM 角色的 STS Token 或憑據的情境下,固定為 urn:cloud:idaas:pam|.all,表示 IDaaS 內建的 scope。

openApiEndpoint

可選,IDaaS 的 OpenAPI 地址,使用OpenAPI 認證時使用。

服務地址從雲身份服務 (IDaaS EIAM)-阿里雲OpenAPI開發人員門戶中擷取。

若應用部署在阿里雲 VPC 中,且與 IDaaS 執行個體在同一地區,則可以通過內網 VPC 地址訪問,見阿里雲OpenAPI開發人員門戶中的 VPC 地址。

developerApiEndpoint

可選,IDaaS 的 DeveloperAPI 地址,擷取託管到 IDaaS 的 RAM 角色的 STS Token 或憑據時使用。

服務地址從雲身份服務 (IDaaS EIAM)-阿里雲OpenAPI開發人員門戶中擷取。

若應用部署在阿里雲 VPC 中,且與 IDaaS 執行個體在同一地區,則可以通過內網 VPC 地址訪問,見阿里雲OpenAPI開發人員門戶中的 VPC 地址。

authnConfiguration

  • identityType:可選,預設值為CLIENT,目前只支援CLIENT,表示 M2M 用戶端應用以機器身份進行認證。

  • authnMethod:必填,認證方式。不同認證方式所需的 authnConfiguration 欄位不同,詳細對應關係參見authnMethod 欄位值 和 authnConfiguration 欄位對應關係

httpConfiguration

http 協議相關配置,包含 2 個欄位:

  • connectTimeout:可選,用戶端與服務端建立串連的最大等待時間(毫秒),預設為 5000。

  • readTimeout:可選,串連建立後,用戶端等待服務端返回資料的最大等待時間(毫秒),預設為 10000。

authnMethod 欄位值 和 authnConfiguration 欄位對應關係

authnMethod

需要的 authnConfiguration 欄位

authnConfiguration 欄位說明

CLIENT_SECRET_BASIC

clientSecretEnvVarName

欄位值為環境變數名稱,通過該環境變數讀取 M2M 用戶端應用的 Client Secret 。

CLIENT_SECRET_POST

CLIENT_SECRET_JWT

PRIVATE_KEY_JWT

privateKeyEnvVarName

欄位值為環境變數名稱,通過該環境變數讀取 M2M 用戶端應用的 Private Key。

PKCS7

applicationFederatedCredentialName

PKCS7 的聯邦憑證名稱。需提前建立聯邦信任源,相關配置可參考:建立聯邦憑證

clientDeployEnvironment

部署環境,目前只支援 ALIBABA_CLOUD_ECS

OIDC

applicationFederatedCredentialName

OIDC 的聯邦憑證名稱。需提前建立聯邦信任源,相關配置可參考:建立聯邦憑證

clientDeployEnvironment

部署環境,目前只支援 KUBERNETES

oidcTokenFilePath

可選,用於指定 Service Account Token 檔案的路徑。若未配置,則嘗試通過 oidcTokenFilePathEnvVarName 指定的環境變數讀取路徑;若兩者均未設定,則預設使用 Kubernetes 標準路徑:/var/run/secrets/kubernetes.io/serviceaccount/token。

oidcTokenFilePathEnvVarName

可選,未指定 oidcTokenFilePath 時生效,欄位值為環境變數名稱,通過該環境變數讀取 Service Account Token 的檔案路徑。

PCA

applicationFederatedCredentialName

PCA 的聯邦憑證名稱。需提前建立聯邦信任源,相關配置可參考:建立聯邦憑證

clientX509Certificate

終端認證,格式為:

-----BEGIN CERTIFICATE-----

xxx

-----END CERTIFICATE-----

x509CertChains

中間認證列表,多張認證使用換行拼接,格式:

-----BEGIN CERTIFICATE-----

xxx

-----END CERTIFICATE-----

-----BEGIN CERTIFICATE-----

xxx

-----END CERTIFICATE-----

privateKeyEnvVarName

欄位值為環境變數名稱,通過該環境變數讀取 M2M 用戶端應用的 Private Key。

PLUGIN

pluginName

pluginName 為擴充外掛程式名,目前只支援 alibabacloudPluginCredentialProvider,即阿里雲 OpenAPI 認證方式。使用阿里雲 OpenAPI 認證時需要完成以下配置:

配置參數樣本

不同認證方式下的具體的配置樣本。

Client Secret 憑證配置樣本

{
  "idaasInstanceId": "idaas_xxx",      
  "clientId": "app_xxx",               
  "issuer":"https://xxx/api/v2/iauths_system/oauth2",               
  "tokenEndpoint": "https://xxx/api/v2/iauths_system/oauth2/token",
  "scope": "api.example.com|read:file",
  "authnConfiguration": {
    "identityType": "CLIENT",
    "authnMethod": "CLIENT_SECRET_BASIC" 或 "CLIENT_SECRET_POST" 或 "CLIENT_SECRET_JWT",
    "clientSecretEnvVarName": "IDAAS_CLIENT_SECRET"
  }
  "httpConfiguration": {
    "connectTimeout": 5000,
    "readTimeout": 10000
  }
}

公私密金鑰憑證配置樣本

{
  "idaasInstanceId": "idaas_xxx",      
  "clientId": "app_xxx",               
  "issuer":"https://xxx/api/v2/iauths_system/oauth2",               
  "tokenEndpoint": "https://xxx/api/v2/iauths_system/oauth2/token",
  "scope": "api.example.com|read:file",
  "authnConfiguration": {
    "identityType": "CLIENT",
    "authnMethod": "PRIVATE_KEY_JWT",
    "privateKeyEnvVarName": "ENV_PRIVATE_KEY"
  }
  "httpConfiguration": {
    "connectTimeout": 5000,
    "readTimeout": 10000
  }
}

PKCS7 聯邦憑證配置樣本

{
  "idaasInstanceId": "idaas_xxx",      
  "clientId": "app_xxx",               
  "issuer":"https://xxx/api/v2/iauths_system/oauth2",               
  "tokenEndpoint": "https://xxx/api/v2/iauths_system/oauth2/token",
  "scope": "api.example.com|read:file",
  "authnConfiguration": {
    "identityType": "CLIENT",
    "authnMethod": "PKCS7",
    "applicationFederatedCredentialName": "your_pkcs7_federated_credential_name",
    "clientDeployEnvironment": "ALIBABA_CLOUD_ECS"
  }
  "httpConfiguration": {
    "connectTimeout": 5000,
    "readTimeout": 10000
  }
}

OIDC 聯邦憑證配置樣本

{
  "idaasInstanceId": "idaas_xxx",      
  "clientId": "app_xxx",               
  "issuer":"https://xxx/api/v2/iauths_system/oauth2",               
  "tokenEndpoint": "https://xxx/api/v2/iauths_system/oauth2/token",
  "scope": "api.example.com|read:file",
  "authnConfiguration": {
    "identityType": "CLIENT",
    "authnMethod": "OIDC",
    "applicationFederatedCredentialName": "your_oidc_federated_credential_name",
    "clientDeployEnvironment": "KUBERNETES",
 "oidcTokenFilePath": "/var/run/secrets/.../token"(可選),
 "oidcTokenFilePathEnvVarName": "ENV_OIDC_TOKEN_FILE_PATH"(可選)
  }
  "httpConfiguration": {
    "connectTimeout": 5000,
    "readTimeout": 10000
  }
}

PCA 聯邦憑證配置樣本

{
  "idaasInstanceId": "idaas_xxx",      
  "clientId": "app_xxx",               
  "issuer":"https://xxx/api/v2/iauths_system/oauth2",               
  "tokenEndpoint": "https://xxx/api/v2/iauths_system/oauth2/token",
  "scope": "api.example.com|read:file",
  "authnConfiguration": {
    "identityType": "CLIENT",
    "authnMethod": "PCA",
 "applicationFederatedCredentialName": "your_pca_federated_credential_name",
    "clientX509Certificate": 
    "-----BEGIN CERTIFICATE-----
    xxxxxx
    -----END CERTIFICATE-----",
    "x509CertChains": 
    "-----BEGIN CERTIFICATE-----
    xxxxxx
    -----END CERTIFICATE-----
    -----BEGIN CERTIFICATE-----
    xxxxxx
    -----END CERTIFICATE-----",
    "privateKeyEnvVarName": "ENV_PRIVATE_KEY"
  }
  "httpConfiguration": {
    "connectTimeout": 5000,
    "readTimeout": 10000
  }
}

OpenAPI 認證配置參考

{
  "idaasInstanceId": "idaas_xxx", 
  "clientId": "app_xxx", 
  "issuer":"https://xxx/api/v2/iauths_system/oauth2", 
  "tokenEndpoint": "https://xxx/api/v2/iauths_system/oauth2/token",
  "scope": "api.example.com|read:file",
  "openApiEndpoint":"eiam.[region_id].aliyuncs.com",
  "authnConfiguration": {
    "identityType": "CLIENT",
    "authnMethod": "PLUGIN",
    "pluginName": "alibabacloudPluginCredentialProvider"
  }
  "httpConfiguration": {
    "connectTimeout": 5000,
    "readTimeout": 10000
  }
}