ServicePrincipalValidationClientError エラー コードのトラブルシューティング
この記事では、Microsoft Azure Kubernetes Service (AKS) クラスターを作成してデプロイしようとした場合に発生する可能性がある ServicePrincipalValidationClientError
エラーを特定して解決する方法について説明します。
前提条件
- Azure CLI バージョン 2.0.59 以降のバージョン。 Azure CLI が既にインストールされている場合は、
az --version
を実行してバージョン番号を確認できます。
現象
AKS クラスターをデプロイしようとすると、次のエラー メッセージが表示されます。
adal: 更新要求に失敗しました。 状態コード = '401'。
応答本文: {
"error": "invalid_client",
"error_description": "AADSTS7000215: Invalid クライアント シークレットが提供されます。要求で送信されるシークレットが、アプリ '123456789-1234-1234-1234-1234-1234567890987'.\r\n に追加されたシークレットのクライアント シークレット ID ではなく、クライアント シークレットの値であることを確認します
トレース ID: 12345\r\n
関連付け ID: 6789\r\n
Timestamp: 2022-02-03 03:07:11Z",
"error_codes": [7000215],
"timestamp": "2022-02-03 03:07:11Z",
"trace_id": "12345",
"correlation_id": "6789",
"error_uri": "https://login.microsoftonline.com/error?code=7000215"
} エンドポイント https://login.microsoftonline.com/123456787/oauth2/token?api-version=1.0
原因
強調表示されたサービス プリンシパルに対して提供されているシークレットが無効です。
解決策 1: サービス プリンシパル シークレットをリセットする
この問題を解決するには、次のいずれかの方法を使用してサービス プリンシパル シークレットをリセットします。
az ad sp credential reset コマンドを実行して、サービス プリンシパルの資格情報をリセットします。
az ad sp credential reset --name "01234567-89ab-cdef-0123-456789abcdef" --query password --output tsv
次のコマンドを実行して、有効期限を指定します。
az ad sp credential reset --name <service-principal-name> --credential-description "New secret for AKS" --years 1
上記のコマンドはシークレットをリセットし、出力として表示します。 その後、新しいクラスターを再度作成しようとしたときに、新しいシークレットを指定できます。
既存のクラスターで失敗した操作の場合は、AKS クラスターを新しいシークレットで更新してください。
az aks update-credentials --resource-group <resource-group> --name <aks-cluster> --reset-service-principal --client-secret <new-client-secret>
解決策 2: 新しいサービス プリンシパルを作成する
新しいサービス プリンシパルを作成し、それに関連付けられているシークレットを取得するには、 az ad sp create-for-rbac コマンドを実行します。
az ad sp create-for-rbac --role Contributor
コマンドの出力は、次の JSON 文字列のようになります。
{
"appId": "12345678-9abc-def0-1234-56789abcdef0",
"name": "23456789-abcd-ef01-2345-6789abcdef01",
"password": "3456789a-bcde-f012-3456-789abcdef012",
"tenant": "456789ab-cdef-0123-4567-89abcdef0123"
}
生成される appId
値と password
値に注意してください。 これらの値を取得したら、新しいサービス プリンシパルとシークレットのクラスター作成コマンドを再実行できます。
新しいサービス プリンシパルの資格情報で AKS クラスターを更新するには、次のコマンドを実行します。
az aks update-credentials --resource-group <resource-group> --name <aks-cluster> --service-principal <new-client-id> --client-secret <new-client-secret>
詳細
お問い合わせはこちらから
質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。