diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/chained.py b/sdk/identity/azure-identity/azure/identity/_credentials/chained.py index 8f3a3acd0efa..63b1f8268f27 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/chained.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/chained.py @@ -60,4 +60,5 @@ def _get_error_message(history): attempts.append("{}: {}".format(credential.__class__.__name__, error)) else: attempts.append(credential.__class__.__name__) - return "No valid token received. {}".format(". ".join(attempts)) + return """No credential in this chain provided a token. +Attempted credentials:\n\t{}""".format("\n\t".join(attempts)) diff --git a/sdk/identity/azure-identity/azure/identity/_credentials/default.py b/sdk/identity/azure-identity/azure/identity/_credentials/default.py index c45ad78c0e3c..b34c1cbd2fed 100644 --- a/sdk/identity/azure-identity/azure/identity/_credentials/default.py +++ b/sdk/identity/azure-identity/azure/identity/_credentials/default.py @@ -4,6 +4,8 @@ # ------------------------------------ import os +from azure.core.exceptions import ClientAuthenticationError + from .._constants import EnvironmentVariables from .chained import ChainedTokenCredential from .environment import EnvironmentCredential @@ -42,3 +44,13 @@ def __init__(self, **kwargs): ) super(DefaultAzureCredential, self).__init__(*credentials) + + def get_token(self, *scopes, **kwargs): + try: + return super(DefaultAzureCredential, self).get_token(*scopes, **kwargs) + except ClientAuthenticationError as e: + raise ClientAuthenticationError(message=""" +{}\n\nPlease visit the Azure identity Python SDK docs at +https://aka.ms/python-sdk-identity#defaultazurecredential +to learn what options DefaultAzureCredential supports""" + .format(e.message))