すべてのプロダクト
Search
ドキュメントセンター

Identity as a Service:前提条件

最終更新日:Mar 28, 2026

環境要件

  • 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.x

IDaaS 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 の組み込みスコープを表す urn:cloud:idaas:pam|.all に設定します。

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

  • identityType:任意。デフォルト値は CLIENT です。現在、M2M クライアントアプリケーションがマシン ID として認証することを示す CLIENT のみがサポートされています。

  • authnMethod:必須。認証方式。必須の authnConfiguration フィールドは、選択した認証方式によって異なります。詳細については、「authnMethod と authnConfiguration のマッピング」をご参照ください。

httpConfiguration

HTTP 設定を構成します:

  • connectTimeout:任意。接続が確立されるまでの最大待機時間 (ミリ秒)。デフォルト:5000。

  • readTimeout:任意。接続確立後にサーバーからデータを受信するまでの最大待機時間 (ミリ秒)。デフォルト:10000。

authnMethod と authnConfiguration のマッピング

authnMethod

必須パラメーター

説明

CLIENT_SECRET_BASIC

clientSecretEnvVarName

M2M アプリケーションのクライアントシークレットを格納する環境変数の名前。

CLIENT_SECRET_POST

CLIENT_SECRET_JWT

PRIVATE_KEY_JWT

privateKeyEnvVarName

M2M アプリケーションの秘密鍵を格納する環境変数の名前。

PKCS7

applicationFederatedCredentialName

PKCS7 フェデレーション認証情報の名前。事前にフェデレーション信頼ソースを作成する必要があります。設定の詳細については、「フェデレーション認証情報の作成」をご参照ください。

clientDeployEnvironment

デプロイ環境。現在、ALIBABA_CLOUD_ECS のみがサポートされています。

OIDC

applicationFederatedCredentialName

OIDC フェデレーション認証情報の名前。事前にフェデレーション信頼ソースを作成する必要があります。設定の詳細については、「フェデレーション認証情報の作成」をご参照ください。

clientDeployEnvironment

現在サポートされている唯一のデプロイ環境は KUBERNETES です。

oidcTokenFilePath

任意。Service Account トークンファイルへのパス。このパラメーターが設定されていない場合、SDK は oidcTokenFilePathEnvVarName 環境変数からパスを読み取ります。どちらも指定されていない場合、SDK は標準の Kubernetes パスである /var/run/secrets/kubernetes.io/serviceaccount/token をデフォルトとして使用します。

oidcTokenFilePathEnvVarName

任意。Service Account トークンファイルへのパスを含む環境変数の名前。これは oidcTokenFilePath が指定されていない場合に使用されます。

PCA

applicationFederatedCredentialName

PCA フェデレーション認証情報の名前。事前にフェデレーション信頼ソースを作成する必要があります。設定の詳細については、「フェデレーション認証情報の作成」をご参照ください。

clientX509Certificate

クライアント証明書。以下のフォーマットです:

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

xxx

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

x509CertChains

中間証明書のリスト。複数の証明書を改行で連結し、以下のフォーマットで記述します:

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

xxx

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

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

xxx

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

privateKeyEnvVarName

クライアントアプリケーションの秘密鍵を格納する環境変数の名前。

PLUGIN

pluginName

pluginName は拡張プラグインの名前です。サポートされている値は Alibaba Cloud OpenAPI 認証方式である alibabacloudPluginCredentialProvider のみです。この方式を使用するには、以下の設定を完了する必要があります:

設定例

このセクションでは、さまざまな認証方式の設定例を示します。

例:クライアントシークレット認証情報

{
  "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
  }
}