Аутентификация в kubernetes api через Azure Active Directory (AKS) - PullRequest
0 голосов
/ 14 октября 2019

Я хотел бы использовать python kubernetes-client для подключения к моему API AKS кластера.

Для этого я пытаюсь использовать пример, предоставленный kubernetes:

config.load_kube_config()

v1 = client.CoreV1Api()
print("Listing pods with their IPs:")
ret = v1.list_pod_for_all_namespaces(watch=False)
for i in ret.items:
    print("%s\t%s\t%s" % (i.status.pod_ip, i.metadata.namespace, i.metadata.name))

Предполагается загрузить мой локальный kubeconfig и получить список модулей, но я получаю следующую ошибку:

Traceback (последний вызов был последним): файл "test.py", строка 4, в файле config.load_kube_config () "/Users//works/test-kube-api-python/env/lib/python2.7/site-packages/kubernetes/config/kube_config.py", строка 661, в загрузчике load_kube_config.load_and_set (config) Файл "/Users//works/test-kube-api-python/env/lib/python2.7/site-packages/kubernetes/config/kube_config.py", строка 469, в файле load_and_set self._load_authentication() Файл "/Users//works/test-kube-api-python/env/lib/python2.7/site-packages/kubernetes/config/kube_config.py", строка 203, в _load_authentication если self._load_auth_provider_token (): Файл "/Users//works/test-kube-api-python/env/lib/python2.7/site-packages/kubernetes/config/kube_config.py",строка 221, в _load_auth_provider_token возвращает файл self._load_azure_token (провайдера) "/Users//works/test-kube-api-python/env/lib/python2.7/site-packages/kubernetes/config/kube_config.py", строка233, в файле _load_azure_token self._refresh_azure_token (поставщик ['config']) "/Users//works/test-kube-api-python/env/lib/python2.7/site-packages/kubernetes/config/kube_config.py", строка 253, в _refresh_azure_token refresh_token, client_id, '00000002-0000-0000-c000-000000000000') Файл" /Users//works/test-kube-api-python/env/lib/python2.7/site-packages/adal/authentication_context.py ", строка 236, в acqu_token_with_refresh_token возвращает файл self._acquire_token (token_func)" /Users//works/test-kube-api-python/env/lib/python2.7/site-packages/adal/authentication_context.py ", строка 128, в _acquire_token вернуть файл token_func (self)" /Users//works/test-kube-api-python/env/lib/python2.7/site-packages/adal/authentication_context.py ",строка 234, в token_func вернуть token_request.get_token_with_refresh_token(refresh_token, client_secret) Файл "/Users//works/test-kube-api-python/env/lib/python2.7/site-packages/adal/token_request.py", строка 343, в get_token_with_refresh_token возвращает self._get_token_with_refresh_token (refresh_token, None, client_secret) Файл "/Users//works/test-kube-api-python/env/lib/python2.7/site-packages/adal/token_request.py", строка 340, в _get_token_with_refresh_token возвращает self._oauth_get_token(oauth_parameters) Файл "/Users//works/test-kube-api-python/env/lib/python2.7/site-packages/adal/token_request.py", строка 112, в _oauth_get_token возвращает client.get_token (oauth_parameters)Файл "/Users//works/test-kube-api-python/env/lib/python2.7/site-packages/adal/oauth2_client.py", строка 291, в get_token поднять AdalError (return_error_string, error_response) adal.adal_error.AdalError: Запрос Get Token вернул ошибку http: 400 и ответ сервера: {"error": "invalid_grant", "error_description": "AADSTS65001: пользователь или администратор не дали согласие на использование приложения с ID '' по имени 'Клиент Kubernetes AD'. Отправьте интерактивный запрос авторизации для этого пользователя и ресурса. \ R \ nTrace ID: \ r \ nКорреляционный идентификатор: \ r \ nTimestamp: 2019-10-14 12: 32: 35Z "," error_codes ": [65001]," timestamp":" 2019-10-14 12: 32: 35Z "," trace_id ":" "," correlation_id ":" "," suberror ":" accord_required "}

Я действительно не знаюЯ не понимаю, почему это не работает.

Когда я использую kubectl, все работает нормально.

Я читаю некоторые документы, но я не уверен, что понимаю ошибку adal.

Спасибо за вашу помощь

1 Ответ

0 голосов
/ 14 октября 2019
  • Войдите в систему как администратор клиента для https://portal.azure.com
  • Откройте регистрацию для своего приложения в
  • Перейдите в Настройки, затем Требуемые разрешения
  • Нажмите GrantКнопка прав доступа

Если вы не являетесь администратором-арендатором, вы не можете дать согласие администратора

С https://github.com/Azure-Samples/active-directory-angularjs-singlepageapp-dotnet-webapi/issues/19

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...