Source code for azure.common.credentials

#-------------------------------------------------------------------------
# Copyright (c) Microsoft Corporation. All rights reserved.
# Licensed under the MIT License. See License.txt in the project root for
# license information.
#--------------------------------------------------------------------------

import os.path

[docs]def get_cli_profile(): """Return a CLI profile class. .. versionadded:: 1.1.6 :return: A CLI Profile :rtype: azure.cli.core._profile.Profile :raises: ImportError if azure-cli-core package is not available """ try: from azure.cli.core._profile import Profile from azure.cli.core._session import ACCOUNT from azure.cli.core._environment import get_config_dir except ImportError: raise ImportError("You need to install 'azure-cli-core' to load CLI credentials") azure_folder = get_config_dir() ACCOUNT.load(os.path.join(azure_folder, 'azureProfile.json')) return Profile(storage=ACCOUNT)
[docs]def get_azure_cli_credentials(resource=None, with_tenant=False): """Return Credentials and default SubscriptionID of current loaded profile of the CLI. Credentials will be the "az login" command: https://docs.microsoft.com/cli/azure/authenticate-azure-cli Default subscription ID is either the only one you have, or you can define it: https://docs.microsoft.com/cli/azure/manage-azure-subscriptions-azure-cli .. versionadded:: 1.1.6 :param str resource: The alternative resource for credentials if not ARM (GraphRBac, etc.) :param bool with_tenant: If True, return a three-tuple with last as tenant ID :return: tuple of Credentials and SubscriptionID (and tenant ID if with_tenant) :rtype: tuple """ profile = get_cli_profile() cred, subscription_id, tenant_id = profile.get_login_credentials(resource=resource) if with_tenant: return cred, subscription_id, tenant_id else: return cred, subscription_id
try: from msrest.authentication import ( BasicAuthentication, BasicTokenAuthentication, OAuthTokenAuthentication ) except ImportError: raise ImportError("You need to install 'msrest' to use this feature") try: from msrestazure.azure_active_directory import ( InteractiveCredentials, ServicePrincipalCredentials, UserPassCredentials ) except ImportError: raise ImportError("You need to install 'msrestazure' to use this feature")