Изменения в манифесте моего приложения Azure не видны на портале Azure. - PullRequest
1 голос
/ 20 марта 2019

Я хочу программно отразить роли AWS IAM в моей федерации SAML, используя лямбду, с лямбда , как этот разработчик

Я хочу проверить, какие наименьшие привилегии для доступа должны иметь учетные данные для программного обеспечения автоматизации в Azure, поэтому я попробовал простой скрипт на python, чтобы имитировать это (см. Ниже).

Я могу обновить значение и получить обновленное значение, но когда я захожу на портал Azure и смотрю файл манифеста, он не изменился.

Теперь мне интересно, почему это так: происходит ли кэширование в CLI Python для Azure? Не правильно ли я улавливаю некоторые основные ошибки?

from azure.graphrbac import GraphRbacManagementClient
from azure.common.credentials import UserPassCredentials
from azure.graphrbac.models.app_role import AppRole

credentials = UserPassCredentials(
            username='my-user@company',
            password='my-ad-password',
            resource="https://graph.windows.net"
    )

tenant_id = "guid-of-my-company-tenant-from-ad-admins"
graphrbac_client = GraphRbacManagementClient(
    credentials,
    tenant_id
)
oid = "guid-of-object-id"
principal = graphrbac_client.service_principals.get(object_id=oid)
print('display_name: {}'.format(principal.display_name))
try:
    for role in principal.app_roles:
        if( role.display_name == 'AWSRoleInManifestFile'):
            print("is_enabled: ", role.is_enabled)

    # Verify update works by changing one role to isEnabled = false
    for role in principal.app_roles:
        if( role.display_name == 'AWSRoleInManifestFile'):
            role.is_enabled = False

    # Update using the api.
    retval = graphrbac_client.service_principals.update(oid, principal)
except Exception as e:
    print("Exception occured.", e)

# retrieve the values again to see if the change is done.
principal = graphrbac_client.service_principals.get(object_id=oid)

for role in principal.app_roles:
    if( role.display_name == 'AWSRoleInManifestFile'):
        print("role.is_enabled: ", role.is_enabled)
print("done.")

Используя необработанный параметр для вызова обновления, я вижу, что отправляется запрос PATCH, а ответ - 204.

retval = graphrbac_client.service_principals.update(object_id=oid, parameters=principal, custom_headers=None, raw=True)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...