'Returns a credentials provider
If no credential provider exists yet creates one.
It always use the configuration value from identity.auth_version,
since we always want to provision accounts with the current version
of the identity API.'

@classmethod
def _get_credentials_provider(cls):

    if ((not hasattr(cls, '_creds_provider')) or (not cls._creds_provider) or (not (cls._creds_provider.name == cls.__name__))):
        force_tenant_isolation = getattr(cls, 'force_tenant_isolation', False)
        cls._creds_provider = credentials.get_credentials_provider(name=cls.__name__, network_resources=cls.network_resources, force_tenant_isolation=force_tenant_isolation)
    return cls._creds_provider
