環境要件
Python 3.9 以降。
pip。
Python SDK のインストール
コア SDK の最新バージョンについては、https://pypi.org/project/cloud-idaas-core/ をご参照ください。
pip を使用して依存関係をインストールします:
pip install cloud-idaas-core
# 特定のバージョンをインストールするには、x.x.x をバージョン番号に置き換えます
pip install cloud-idaas-core==x.x.xIDaaS SDK は OpenAPI 認証もサポートしています。Function Compute (FC) などの環境では、Alibaba Cloud ID 認証情報 (AK/SK ペアや Alibaba Cloud STS など) を使用して M2M クライアントトークンを取得できます。この認証方式を使用するには、Alibaba Cloud 認証拡張プラグインもインストールする必要があります。
Alibaba Cloud 認証拡張プラグインの最新バージョンについては、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=/path/to/your/client-config.json初期化パラメーターの例:
IDaaSCredentialProviderFactory.init("/path/to/your/client-config.json")設定ファイル
設定ファイルの例:
{
"idaasInstanceId": "idaas_xxx",
"clientId": "app_xxx",
"issuer":"https://xxx.example.com/api/v2/iauths_system/oauth2",
"tokenEndpoint": "https://xxx.example.com/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 | 必須。ご利用の Cloud Identity and Access Management (IDaaS EIAM) インスタンスの ID。 |
clientId | 必須。ご利用の IDaaS アプリケーションの ID。この ID は、IDaaS コンソール内のアプリケーション設定で確認できます。 |
issuer | 必須。ご利用の IDaaS EIAM インスタンスの発行者エンドポイント。このエンドポイントは、IDaaS EIAM インスタンス内の任意の M2M アプリケーションの設定で確認できます。 |
tokenEndpoint | 必須。ご利用の IDaaS EIAM インスタンスのトークンエンドポイント。このエンドポイントは、IDaaS EIAM インスタンス内の任意の M2M アプリケーションの設定で確認できます。 |
scope | 必須。ターゲットの M2M サーバー側アプリケーションのオーディエンスと権限識別子を指定します。フォーマットは IDaaS が管理する RAM ロールの Alibaba Cloud STS トークンまたは認証情報を取得する場合、この値を IDaaS の組み込みスコープを表す |
openApiEndpoint | 任意。IDaaS の OpenAPI エンドポイント。OpenAPI 認証に使用されます。 エンドポイントは Alibaba Cloud OpenAPI 開発者ポータル から取得できます。 ご利用のアプリケーションが IDaaS インスタンスと同じリージョン内の Alibaba Cloud VPC にデプロイされている場合、内部 VPC エンドポイントを使用してアクセスできます。VPC エンドポイントは Alibaba Cloud OpenAPI 開発者ポータルで確認できます。 |
developerApiEndpoint | 任意。IDaaS の DeveloperAPI エンドポイント。このエンドポイントを使用して、IDaaS が管理する RAM ロールの Alibaba Cloud STS トークンまたは認証情報を取得します。 エンドポイントは Alibaba Cloud OpenAPI 開発者ポータル から取得できます。 ご利用のアプリケーションが IDaaS インスタンスと同じリージョン内の Alibaba Cloud VPC にデプロイされている場合、内部 VPC エンドポイントを使用してアクセスできます。VPC エンドポイントは Alibaba Cloud OpenAPI 開発者ポータルで確認できます。 |
authnConfiguration |
|
httpConfiguration | HTTP 設定を構成します:
|
authnMethod と authnConfiguration のマッピング
authnMethod | 必須パラメーター | 説明 |
CLIENT_SECRET_BASIC | clientSecretEnvVarName | M2M アプリケーションのクライアントシークレットを格納する環境変数の名前。 |
CLIENT_SECRET_POST | ||
CLIENT_SECRET_JWT | ||
PRIVATE_KEY_JWT | privateKeyEnvVarName | M2M アプリケーションの秘密鍵を格納する環境変数の名前。 |
PKCS7 | applicationFederatedCredentialName | PKCS7 フェデレーション認証情報の名前。事前にフェデレーション信頼ソースを作成する必要があります。設定の詳細については、「フェデレーション認証情報の作成」をご参照ください。 |
clientDeployEnvironment | デプロイ環境。現在、 | |
OIDC | applicationFederatedCredentialName | OIDC フェデレーション認証情報の名前。事前にフェデレーション信頼ソースを作成する必要があります。設定の詳細については、「フェデレーション認証情報の作成」をご参照ください。 |
clientDeployEnvironment | 現在サポートされている唯一のデプロイ環境は | |
oidcTokenFilePath | 任意。Service Account トークンファイルへのパス。このパラメーターが設定されていない場合、SDK は | |
oidcTokenFilePathEnvVarName | 任意。Service Account トークンファイルへのパスを含む環境変数の名前。これは | |
PCA | applicationFederatedCredentialName | PCA フェデレーション認証情報の名前。事前にフェデレーション信頼ソースを作成する必要があります。設定の詳細については、「フェデレーション認証情報の作成」をご参照ください。 |
clientX509Certificate | クライアント証明書。以下のフォーマットです: -----BEGIN CERTIFICATE----- xxx -----END CERTIFICATE----- | |
x509CertChains | 中間証明書のリスト。複数の証明書を改行で連結し、以下のフォーマットで記述します: -----BEGIN CERTIFICATE----- xxx -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- xxx -----END CERTIFICATE----- | |
privateKeyEnvVarName | クライアントアプリケーションの秘密鍵を格納する環境変数の名前。 | |
PLUGIN | pluginName |
|
設定例
このセクションでは、さまざまな認証方式の設定例を示します。
例:クライアントシークレット認証情報
{
"idaasInstanceId": "idaas_xxx",
"clientId": "app_xxx",
"issuer":"https://xxx.example.com/api/v2/iauths_system/oauth2",
"tokenEndpoint": "https://xxx.example.com/api/v2/iauths_system/oauth2/token",
"scope": "api.example.com|read:file",
"authnConfiguration": {
"identityType": "CLIENT",
// サポートされる値:"CLIENT_SECRET_BASIC"、"CLIENT_SECRET_POST"、"CLIENT_SECRET_JWT"
"authnMethod": "CLIENT_SECRET_POST",
"clientSecretEnvVarName": "IDAAS_CLIENT_SECRET"
},
"httpConfiguration": {
"connectTimeout": 5000,
"readTimeout": 10000
}
}例:公開鍵/秘密鍵認証情報
{
"idaasInstanceId": "idaas_xxx",
"clientId": "app_xxx",
"issuer":"https://xxx.example.com/api/v2/iauths_system/oauth2",
"tokenEndpoint": "https://xxx.example.com/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.example.com/api/v2/iauths_system/oauth2",
"tokenEndpoint": "https://xxx.example.com/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.example.com/api/v2/iauths_system/oauth2",
"tokenEndpoint": "https://xxx.example.com/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.example.com/api/v2/iauths_system/oauth2",
"tokenEndpoint": "https://xxx.example.com/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-----\nxxxxxx\n-----END CERTIFICATE-----",
"x509CertChains":
"-----BEGIN CERTIFICATE-----\nxxxxxx\n-----END CERTIFICATE-----\n-----BEGIN CERTIFICATE-----\nxxxxxx\n-----END CERTIFICATE-----",
"privateKeyEnvVarName": "ENV_PRIVATE_KEY"
},
"httpConfiguration": {
"connectTimeout": 5000,
"readTimeout": 10000
}
}例:OpenAPI 認証
{
"idaasInstanceId": "idaas_xxx",
"clientId": "app_xxx",
"issuer":"https://xxx.example.com/api/v2/iauths_system/oauth2",
"tokenEndpoint": "https://xxx.example.com/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
}
}