Мы пытаемся создать регистрацию приложения Azure, используя Python SDK (v2.0) и учетные данные CLI текущего пользователя.
from azure.common.credentials import get_azure_cli_credentials
from azure.graphrbac import GraphRbacManagementClient
credentials, subscription_id = get_azure_cli_credentials()
client = GraphRbacManagementClient(credentials, 'my-tenant-id')
app_parameters = {
'available_to_other_tenants': False,
'display_name': 'my-app-name',
'identifier_uris': ['http://my-app-name.com']
}
app = client.applications.create(app_parameters)
Но это возвращает
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/my-app-code/.venv/lib/python3.6/site-packages/azure/graphrbac/operations/applications_operations.py", line 86, in create
raise models.GraphErrorException(self._deserialize, response)
azure.graphrbac.models.graph_error.GraphErrorException: Access Token missing or malformed.
Мы отметили, что мы можем избежать этой ошибки при использовании ServicePrincipalCredentials
, включив resource='https://graph.windows.net'
в конструктор, но, похоже, не существует эквивалентного способа сделать это при использовании get_azure_cli_credentials()
.
Мы делаем что-то не так, или это должно работать?
Пожалуйста, не отвечайте, что мы должны использовать ServicePrincipalCredentials
. В нашем случае явно используется то, что интерактивный пользователь может создать / зарегистрировать приложение Azure с помощью Python SDK.