Поверните секреты AAD в Azure - PullRequest
0 голосов
/ 08 октября 2019

Я пытаюсь повернуть секреты приложений сервера AAD для AKS.

Когда я делаю это локально на Mac, это работает, но как только я запускаю это в конвейере gitlab, выдает эту ошибку.

Ожидаемое поведение заключается в том, что мой AKS обновляет свои учетные данные, и я проверил, обновляется ли секрет, и он и все правильно названы и названы, поэтому проблема связана только с секретом клиента.

Я также пыталсязапустить его на базе 64 и не повезло.

ERROR: Operation failed with status: 'Bad Request'. Details: The server application credentials in AADProfile were invalid. Please see https://aka.ms/aks-aad-integration for more details. (Details: adal: Refresh request failed. Status Code = '401'. Response body: {"error":"invalid_client","error_description":"AADSTS7000215: Invalid client secret is provided.\r\nTrace ID: 7c1e5c58-ec2a-4221-a297-3e1d1bcc6700\r\nCorrelation ID: 6015fdc3-2d56-4f4d-832f-7f456c55035a\r\nTimestamp: 2019-10-08 10:39:04Z","error_codes":[7000215],"timestamp":"2019-10-08 10:39:04Z","trace_id":"7c1e5c58-ec2a-4221-a297-3e1d1bcc6700","correlation_id":"6015fdc3-2d56-4f4d-832f-7f456c55035a","error_uri":"https://login.microsoftonline.com/error?code=7000215"})

#! /bin/bash

AZURE_AKS_SERVER_APP_ID=$(az ad app list --display-name ${AZURE_AKS_SERVER_APP} --query [0].appId -o tsv)
echo "AZURE_AKS_SERVER_APP_ID ${AZURE_AKS_SERVER_APP_ID}"
AZURE_AKS_CLIENT_APP_ID=$(az ad app list --display-name ${AZURE_AKS_CLIENT_APP} --query [0].appId -o tsv)
echo "AZURE_AKS_CLIENT_APP_ID ${AZURE_AKS_CLIENT_APP_ID}"
TenantID=$(az account show | jq -r '.tenantId')
echo "TenantID ${TenantID}"
serverApplicationSecret=$(az ad app credential reset --id ${AZURE_AKS_SERVER_APP_ID} --credential-description "AKSPassword" --password ${SECRET} --query password -o tsv | base64)
echo "serverApplicationSecret ${serverApplicationSecret}"


az aks update-credentials --resource-group "${AZURE_RESOURCE_GROUP}" --name "${AZURE_RESOURCE_NAME_PREFIX}-crd-aks-${VARIANT}" \
 --reset-aad --aad-server-app-id "${AZURE_AKS_SERVER_APP_ID}" \
 --aad-server-app-secret "${serverApplicationSecret}" --aad-client-app-id "${AZURE_AKS_CLIENT_APP_ID}"

1 Ответ

0 голосов
/ 08 октября 2019

Решение этой проблемы заключалось в том, что Azure требуется около 90 секунд для заполнения своего облака во всех регионах новыми учетными данными, поэтому режим сна 100 решил эту проблему.

AZURE_AKS_SERVER_APP_ID=$(az ad app list --display-name ${AZURE_AKS_SERVER_APP} --query [0].appId -o tsv)
echo "AZURE_AKS_SERVER_APP_ID=${AZURE_AKS_SERVER_APP_ID}"

AZURE_AKS_CLIENT_APP_ID=$(az ad app list --display-name ${AZURE_AKS_CLIENT_APP} --query [0].appId -o tsv)
echo "AZURE_AKS_CLIENT_APP_ID=${AZURE_AKS_CLIENT_APP_ID}"

AZURE_TENANT_ID=$(az account show --query 'tenantId' -o tsv)
echo "AZURE_TENANT_ID=${AZURE_TENANT_ID}"

AZURE_AKS_SERVER_APP_SECRET=$(az ad app credential reset --id ${AZURE_AKS_SERVER_APP_ID} --credential-description "AKSPassword" --query password -o tsv)
echo "AZURE_AKS_SERVER_APP_SECRET=${AZURE_AKS_SERVER_APP_SECRET}"

sleep 100

az aks update-credentials \
  --subscription ${AZURE_SUBSCRIPTION_NAME} \
  --resource-group ${AZURE_RESOURCE_GROUP} \
  --name ${AZURE_RESOURCE_NAME_PREFIX}-crd-aks-${VARIANT} \
  --reset-aad \
  --aad-tenant-id ${AZURE_TENANT_ID} \
  --aad-server-app-id ${AZURE_AKS_SERVER_APP_ID} \
  --aad-client-app-id ${AZURE_AKS_CLIENT_APP_ID} \
  --aad-server-app-secret ${AZURE_AKS_SERVER_APP_SECRET}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...