Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-azure-identity for
openSUSE:Factory checked in at 2023-10-11 23:56:37
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-azure-identity (Old)
and /work/SRC/openSUSE:Factory/.python-azure-identity.new.1807 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-azure-identity"
Wed Oct 11 23:56:37 2023 rev:20 rq:1116973 version:1.14.1
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-azure-identity/python-azure-identity.changes
2023-08-14 22:36:20.632638990 +0200
+++
/work/SRC/openSUSE:Factory/.python-azure-identity.new.1807/python-azure-identity.changes
2023-10-12 11:51:58.142504026 +0200
@@ -1,0 +2,8 @@
+Tue Oct 10 08:36:14 UTC 2023 - John Paul Adrian Glaubitz
<[email protected]>
+
+- New upstream release
+ + Version 1.14.1
+ + For detailed information about changes see the
+ CHANGELOG.md file provided with this package
+
+-------------------------------------------------------------------
Old:
----
azure-identity-1.14.0.zip
New:
----
azure-identity-1.14.1.zip
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-azure-identity.spec ++++++
--- /var/tmp/diff_new_pack.Gy6ZZw/_old 2023-10-12 11:51:58.722524692 +0200
+++ /var/tmp/diff_new_pack.Gy6ZZw/_new 2023-10-12 11:51:58.726524834 +0200
@@ -21,7 +21,7 @@
%define skip_python2 1
%endif
Name: python-azure-identity
-Version: 1.14.0
+Version: 1.14.1
Release: 0
Summary: Azure Identity client library for Python
License: MIT
++++++ azure-identity-1.14.0.zip -> azure-identity-1.14.1.zip ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/azure-identity-1.14.0/CHANGELOG.md
new/azure-identity-1.14.1/CHANGELOG.md
--- old/azure-identity-1.14.0/CHANGELOG.md 2023-08-08 23:43:26.000000000
+0200
+++ new/azure-identity-1.14.1/CHANGELOG.md 2023-10-09 21:39:44.000000000
+0200
@@ -1,5 +1,33 @@
# Release History
+## 1.14.1 (2023-10-09)
+
+### Bugs Fixed
+
+- Bug fixes for developer credentials
+
+## 1.15.0b1 (2023-09-12)
+
+### Features Added
+
+- Added Windows Web Account Manager (WAM) Brokered Authentication support.
+- Added `enable_msa_passthrough` suppport for `InteractiveBrowserCredential`.
By default `InteractiveBrowserCredential` only lists AAD accounts. If you set
`enable_msa_passthrough` to `True`, it lists both AAD accounts and MSA
outlook.com accounts that are logged in to Windows.
+
+### Bugs Fixed
+
+- Ensure `AzurePowershellCredential` calls PowerShell with the `-NoProfile`
flag to avoid loading user profiles for more consistent behavior.
([#31682](https://github.com/Azure/azure-sdk-for-python/pull/31682))
+- Fixed an issue with subprocess-based developer credentials (such as
AzureCliCredential) where the process would sometimes hang waiting for user
input. ([#31534](https://github.com/Azure/azure-sdk-for-python/pull/31534))
+- Fixed an issue with `ClientAssertionCredential` not properly checking if CAE
should be enabled.
([#31544](https://github.com/Azure/azure-sdk-for-python/pull/31544))
+- `ManagedIdentityCredential` will fall through to the next credential in the
chain in the case that Docker Desktop returns a 403 response when attempting to
access the IMDS endpoint.
([#31824](https://github.com/Azure/azure-sdk-for-python/pull/31824))
+
+### Other Changes
+
+- Update typing of async credentials to match the `AsyncTokenCredential`
protocol.
+- If within `DefaultAzureCredential`, `EnvironmentCredential` will now use log
level INFO instead of WARNING to inform users of an incomplete environment
configuration.
([#31814](https://github.com/Azure/azure-sdk-for-python/pull/31814))
+- Strengthened `AzureCliCredential` and `AzureDeveloperCliCredential` error
checking when determining if a user is logged in or not. Now, if an AADSTS
error exists in the error, the full error message is propagated instead of a
canned error message.
([#30047](https://github.com/Azure/azure-sdk-for-python/pull/30047))
+- `ManagedIdentityCredential` instances using IMDS will now be allowed to
continue sending requests to the IMDS endpoint even after previous attempts
failed. This is to prevent credential instances from potentially being
permanently disabled after a temporary network failure.
+- IMDS endpoint probes in `ManagedIdentityCredential` will now only occur when
inside a credential chain such as `DefaultAzureCredential`. This probe request
timeout has been increased to 1 second from 0.3 seconds to reduce the
likelihood of false negatives.
+
## 1.14.0 (2023-08-08)
### Features Added
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/azure-identity-1.14.0/PKG-INFO
new/azure-identity-1.14.1/PKG-INFO
--- old/azure-identity-1.14.0/PKG-INFO 2023-08-08 23:44:22.000000000 +0200
+++ new/azure-identity-1.14.1/PKG-INFO 2023-10-09 21:40:38.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: azure-identity
-Version: 1.14.0
+Version: 1.14.1
Summary: Microsoft Azure Identity Library for Python
Home-page:
https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity
Author: Microsoft Corporation
@@ -19,6 +19,10 @@
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
+Requires-Dist: azure-core<2.0.0,>=1.11.0
+Requires-Dist: cryptography>=2.5
+Requires-Dist: msal<2.0.0,>=1.20.0
+Requires-Dist: msal-extensions<2.0.0,>=0.3.0
# Azure Identity client library for Python
@@ -413,6 +417,34 @@
# Release History
+## 1.14.1 (2023-10-09)
+
+### Bugs Fixed
+
+- Bug fixes for developer credentials
+
+## 1.15.0b1 (2023-09-12)
+
+### Features Added
+
+- Added Windows Web Account Manager (WAM) Brokered Authentication support.
+- Added `enable_msa_passthrough` suppport for `InteractiveBrowserCredential`.
By default `InteractiveBrowserCredential` only lists AAD accounts. If you set
`enable_msa_passthrough` to `True`, it lists both AAD accounts and MSA
outlook.com accounts that are logged in to Windows.
+
+### Bugs Fixed
+
+- Ensure `AzurePowershellCredential` calls PowerShell with the `-NoProfile`
flag to avoid loading user profiles for more consistent behavior.
([#31682](https://github.com/Azure/azure-sdk-for-python/pull/31682))
+- Fixed an issue with subprocess-based developer credentials (such as
AzureCliCredential) where the process would sometimes hang waiting for user
input. ([#31534](https://github.com/Azure/azure-sdk-for-python/pull/31534))
+- Fixed an issue with `ClientAssertionCredential` not properly checking if CAE
should be enabled.
([#31544](https://github.com/Azure/azure-sdk-for-python/pull/31544))
+- `ManagedIdentityCredential` will fall through to the next credential in the
chain in the case that Docker Desktop returns a 403 response when attempting to
access the IMDS endpoint.
([#31824](https://github.com/Azure/azure-sdk-for-python/pull/31824))
+
+### Other Changes
+
+- Update typing of async credentials to match the `AsyncTokenCredential`
protocol.
+- If within `DefaultAzureCredential`, `EnvironmentCredential` will now use log
level INFO instead of WARNING to inform users of an incomplete environment
configuration.
([#31814](https://github.com/Azure/azure-sdk-for-python/pull/31814))
+- Strengthened `AzureCliCredential` and `AzureDeveloperCliCredential` error
checking when determining if a user is logged in or not. Now, if an AADSTS
error exists in the error, the full error message is propagated instead of a
canned error message.
([#30047](https://github.com/Azure/azure-sdk-for-python/pull/30047))
+- `ManagedIdentityCredential` instances using IMDS will now be allowed to
continue sending requests to the IMDS endpoint even after previous attempts
failed. This is to prevent credential instances from potentially being
permanently disabled after a temporary network failure.
+- IMDS endpoint probes in `ManagedIdentityCredential` will now only occur when
inside a credential chain such as `DefaultAzureCredential`. This probe request
timeout has been increased to 1 second from 0.3 seconds to reduce the
likelihood of false negatives.
+
## 1.14.0 (2023-08-08)
### Features Added
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/azure-identity-1.14.0/azure/identity/_credentials/azd_cli.py
new/azure-identity-1.14.1/azure/identity/_credentials/azd_cli.py
--- old/azure-identity-1.14.0/azure/identity/_credentials/azd_cli.py
2023-08-08 23:43:26.000000000 +0200
+++ new/azure-identity-1.14.1/azure/identity/_credentials/azd_cli.py
2023-10-09 21:39:44.000000000 +0200
@@ -16,7 +16,7 @@
from azure.core.exceptions import ClientAuthenticationError
from .. import CredentialUnavailableError
-from .._internal import resolve_tenant, within_dac
+from .._internal import resolve_tenant, within_dac, validate_tenant_id,
validate_scope
from .._internal.decorators import log_get_token
CLI_NOT_FOUND = (
@@ -76,7 +76,8 @@
additionally_allowed_tenants: Optional[List[str]] = None,
process_timeout: int = 10,
) -> None:
-
+ if tenant_id:
+ validate_tenant_id(tenant_id)
self.tenant_id = tenant_id
self._additionally_allowed_tenants = additionally_allowed_tenants or []
self._process_timeout = process_timeout
@@ -121,6 +122,11 @@
if not scopes:
raise ValueError("Missing scope in request. \n")
+ if tenant_id:
+ validate_tenant_id(tenant_id)
+ for scope in scopes:
+ validate_scope(scope)
+
commandString = " --scope ".join(scopes)
command = COMMAND_LINE.format(commandString)
tenant = resolve_tenant(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/azure-identity-1.14.0/azure/identity/_credentials/azure_cli.py
new/azure-identity-1.14.1/azure/identity/_credentials/azure_cli.py
--- old/azure-identity-1.14.0/azure/identity/_credentials/azure_cli.py
2023-08-08 23:43:26.000000000 +0200
+++ new/azure-identity-1.14.1/azure/identity/_credentials/azure_cli.py
2023-10-09 21:39:44.000000000 +0200
@@ -16,7 +16,7 @@
from azure.core.exceptions import ClientAuthenticationError
from .. import CredentialUnavailableError
-from .._internal import _scopes_to_resource, resolve_tenant, within_dac
+from .._internal import _scopes_to_resource, resolve_tenant, within_dac,
validate_tenant_id, validate_scope
from .._internal.decorators import log_get_token
@@ -54,7 +54,8 @@
additionally_allowed_tenants: Optional[List[str]] = None,
process_timeout: int = 10,
) -> None:
-
+ if tenant_id:
+ validate_tenant_id(tenant_id)
self.tenant_id = tenant_id
self._additionally_allowed_tenants = additionally_allowed_tenants or []
self._process_timeout = process_timeout
@@ -94,6 +95,10 @@
:raises ~azure.core.exceptions.ClientAuthenticationError: the
credential invoked the Azure CLI but didn't
receive an access token.
"""
+ if tenant_id:
+ validate_tenant_id(tenant_id)
+ for scope in scopes:
+ validate_scope(scope)
resource = _scopes_to_resource(*scopes)
command = COMMAND_LINE.format(resource)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/azure-identity-1.14.0/azure/identity/_credentials/azure_powershell.py
new/azure-identity-1.14.1/azure/identity/_credentials/azure_powershell.py
--- old/azure-identity-1.14.0/azure/identity/_credentials/azure_powershell.py
2023-08-08 23:43:26.000000000 +0200
+++ new/azure-identity-1.14.1/azure/identity/_credentials/azure_powershell.py
2023-10-09 21:39:44.000000000 +0200
@@ -13,7 +13,7 @@
from .azure_cli import get_safe_working_dir
from .. import CredentialUnavailableError
-from .._internal import _scopes_to_resource, resolve_tenant, within_dac
+from .._internal import _scopes_to_resource, resolve_tenant, within_dac,
validate_tenant_id, validate_scope
from .._internal.decorators import log_get_token
@@ -68,7 +68,8 @@
additionally_allowed_tenants: Optional[List[str]] = None,
process_timeout: int = 10,
) -> None:
-
+ if tenant_id:
+ validate_tenant_id(tenant_id)
self.tenant_id = tenant_id
self._additionally_allowed_tenants = additionally_allowed_tenants or []
self._process_timeout = process_timeout
@@ -109,6 +110,11 @@
:raises ~azure.core.exceptions.ClientAuthenticationError: the
credential invoked Azure PowerShell but didn't
receive an access token
"""
+ if tenant_id:
+ validate_tenant_id(tenant_id)
+ for scope in scopes:
+ validate_scope(scope)
+
tenant_id = resolve_tenant(
default_tenant=self.tenant_id,
tenant_id=tenant_id,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/azure-identity-1.14.0/azure/identity/_internal/__init__.py
new/azure-identity-1.14.1/azure/identity/_internal/__init__.py
--- old/azure-identity-1.14.0/azure/identity/_internal/__init__.py
2023-08-08 23:43:26.000000000 +0200
+++ new/azure-identity-1.14.1/azure/identity/_internal/__init__.py
2023-10-09 21:39:44.000000000 +0200
@@ -12,6 +12,7 @@
get_default_authority,
normalize_authority,
resolve_tenant,
+ validate_scope,
validate_tenant_id,
within_credential_chain,
within_dac,
@@ -47,6 +48,7 @@
"InteractiveCredential",
"normalize_authority",
"resolve_tenant",
+ "validate_scope",
"within_credential_chain",
"within_dac",
"wrap_exceptions",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/azure-identity-1.14.0/azure/identity/_internal/utils.py
new/azure-identity-1.14.1/azure/identity/_internal/utils.py
--- old/azure-identity-1.14.0/azure/identity/_internal/utils.py 2023-08-08
23:43:26.000000000 +0200
+++ new/azure-identity-1.14.1/azure/identity/_internal/utils.py 2023-10-09
21:39:44.000000000 +0200
@@ -5,6 +5,7 @@
import os
import logging
from contextvars import ContextVar
+from string import ascii_letters, digits
from typing import List, Optional
from urllib.parse import urlparse
@@ -17,6 +18,9 @@
_LOGGER = logging.getLogger(__name__)
+VALID_TENANT_ID_CHARACTERS = frozenset(ascii_letters + digits + "-.")
+VALID_SCOPE_CHARACTERS = frozenset(ascii_letters + digits + "_-.:/")
+
def normalize_authority(authority: str) -> str:
"""Ensure authority uses https, strip trailing spaces and /.
@@ -43,19 +47,28 @@
return normalize_authority(authority)
-VALID_TENANT_ID_CHARACTERS =
frozenset("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" + "0123456789"
+ "-.")
+def validate_scope(scope: str) -> None:
+ """Raise ValueError if scope is empty or contains a character invalid for
a scope
+
+ :param str scope: scope to validate
+ :raises: ValueError if scope is empty or contains a character invalid for
a scope.
+ """
+ if not scope or any(c not in VALID_SCOPE_CHARACTERS for c in scope):
+ raise ValueError(
+ "An invalid scope was provided. Only alphanumeric characters, '.',
'-', '_', ':', and '/' are allowed."
+ )
def validate_tenant_id(tenant_id: str) -> None:
"""Raise ValueError if tenant_id is empty or contains a character invalid
for a tenant ID.
- :param str tenant_id: tenant id to validate
+ :param str tenant_id: tenant ID to validate
:raises: ValueError if tenant_id is empty or contains a character invalid
for a tenant ID.
"""
if not tenant_id or any(c not in VALID_TENANT_ID_CHARACTERS for c in
tenant_id):
raise ValueError(
- "Invalid tenant id provided. You can locate your tenant id by
following the instructions here: "
- +
"https://docs.microsoft.com/partner-center/find-ids-and-domain-names"
+ "Invalid tenant ID provided. You can locate your tenant ID by
following the instructions here: "
+ +
"https://learn.microsoft.com/partner-center/find-ids-and-domain-names"
)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/azure-identity-1.14.0/azure/identity/_version.py
new/azure-identity-1.14.1/azure/identity/_version.py
--- old/azure-identity-1.14.0/azure/identity/_version.py 2023-08-08
23:43:26.000000000 +0200
+++ new/azure-identity-1.14.1/azure/identity/_version.py 2023-10-09
21:39:44.000000000 +0200
@@ -2,4 +2,4 @@
# Copyright (c) Microsoft Corporation.
# Licensed under the MIT License.
# ------------------------------------
-VERSION = "1.14.0"
+VERSION = "1.14.1"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/azure-identity-1.14.0/azure/identity/aio/_credentials/azd_cli.py
new/azure-identity-1.14.1/azure/identity/aio/_credentials/azd_cli.py
--- old/azure-identity-1.14.0/azure/identity/aio/_credentials/azd_cli.py
2023-08-08 23:43:26.000000000 +0200
+++ new/azure-identity-1.14.1/azure/identity/aio/_credentials/azd_cli.py
2023-10-09 21:39:44.000000000 +0200
@@ -23,7 +23,7 @@
parse_token,
sanitize_output,
)
-from ..._internal import resolve_tenant, within_dac
+from ..._internal import resolve_tenant, within_dac, validate_tenant_id,
validate_scope
class AzureDeveloperCliCredential(AsyncContextManager):
@@ -73,7 +73,8 @@
additionally_allowed_tenants: Optional[List[str]] = None,
process_timeout: int = 10,
) -> None:
-
+ if tenant_id:
+ validate_tenant_id(tenant_id)
self.tenant_id = tenant_id
self._additionally_allowed_tenants = additionally_allowed_tenants or []
self._process_timeout = process_timeout
@@ -110,6 +111,11 @@
if not scopes:
raise ValueError("Missing scope in request. \n")
+ if tenant_id:
+ validate_tenant_id(tenant_id)
+ for scope in scopes:
+ validate_scope(scope)
+
commandString = " --scope ".join(scopes)
command = COMMAND_LINE.format(commandString)
tenant = resolve_tenant(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/azure-identity-1.14.0/azure/identity/aio/_credentials/azure_cli.py
new/azure-identity-1.14.1/azure/identity/aio/_credentials/azure_cli.py
--- old/azure-identity-1.14.0/azure/identity/aio/_credentials/azure_cli.py
2023-08-08 23:43:26.000000000 +0200
+++ new/azure-identity-1.14.1/azure/identity/aio/_credentials/azure_cli.py
2023-10-09 21:39:44.000000000 +0200
@@ -23,7 +23,7 @@
parse_token,
sanitize_output,
)
-from ..._internal import _scopes_to_resource, resolve_tenant, within_dac
+from ..._internal import _scopes_to_resource, resolve_tenant, within_dac,
validate_tenant_id, validate_scope
class AzureCliCredential(AsyncContextManager):
@@ -54,7 +54,8 @@
additionally_allowed_tenants: Optional[List[str]] = None,
process_timeout: int = 10,
) -> None:
-
+ if tenant_id:
+ validate_tenant_id(tenant_id)
self.tenant_id = tenant_id
self._additionally_allowed_tenants = additionally_allowed_tenants or []
self._process_timeout = process_timeout
@@ -88,6 +89,11 @@
if sys.platform.startswith("win") and not
isinstance(asyncio.get_event_loop(), asyncio.ProactorEventLoop):
return _SyncAzureCliCredential().get_token(*scopes,
tenant_id=tenant_id, **kwargs)
+ if tenant_id:
+ validate_tenant_id(tenant_id)
+ for scope in scopes:
+ validate_scope(scope)
+
resource = _scopes_to_resource(*scopes)
command = COMMAND_LINE.format(resource)
tenant = resolve_tenant(
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/azure-identity-1.14.0/azure/identity/aio/_credentials/azure_powershell.py
new/azure-identity-1.14.1/azure/identity/aio/_credentials/azure_powershell.py
---
old/azure-identity-1.14.0/azure/identity/aio/_credentials/azure_powershell.py
2023-08-08 23:43:26.000000000 +0200
+++
new/azure-identity-1.14.1/azure/identity/aio/_credentials/azure_powershell.py
2023-10-09 21:39:44.000000000 +0200
@@ -17,7 +17,7 @@
raise_for_error,
parse_token,
)
-from ..._internal import resolve_tenant
+from ..._internal import resolve_tenant, validate_tenant_id, validate_scope
class AzurePowerShellCredential(AsyncContextManager):
@@ -48,7 +48,8 @@
additionally_allowed_tenants: Optional[List[str]] = None,
process_timeout: int = 10,
) -> None:
-
+ if tenant_id:
+ validate_tenant_id(tenant_id)
self.tenant_id = tenant_id
self._additionally_allowed_tenants = additionally_allowed_tenants or []
self._process_timeout = process_timeout
@@ -83,6 +84,11 @@
if sys.platform.startswith("win") and not
isinstance(asyncio.get_event_loop(), asyncio.ProactorEventLoop):
return _SyncCredential().get_token(*scopes, tenant_id=tenant_id,
**kwargs)
+ if tenant_id:
+ validate_tenant_id(tenant_id)
+ for scope in scopes:
+ validate_scope(scope)
+
tenant_id = resolve_tenant(
default_tenant=self.tenant_id,
tenant_id=tenant_id,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/azure-identity-1.14.0/azure_identity.egg-info/PKG-INFO
new/azure-identity-1.14.1/azure_identity.egg-info/PKG-INFO
--- old/azure-identity-1.14.0/azure_identity.egg-info/PKG-INFO 2023-08-08
23:44:22.000000000 +0200
+++ new/azure-identity-1.14.1/azure_identity.egg-info/PKG-INFO 2023-10-09
21:40:38.000000000 +0200
@@ -1,6 +1,6 @@
Metadata-Version: 2.1
Name: azure-identity
-Version: 1.14.0
+Version: 1.14.1
Summary: Microsoft Azure Identity Library for Python
Home-page:
https://github.com/Azure/azure-sdk-for-python/tree/main/sdk/identity/azure-identity
Author: Microsoft Corporation
@@ -19,6 +19,10 @@
Requires-Python: >=3.7
Description-Content-Type: text/markdown
License-File: LICENSE
+Requires-Dist: azure-core<2.0.0,>=1.11.0
+Requires-Dist: cryptography>=2.5
+Requires-Dist: msal<2.0.0,>=1.20.0
+Requires-Dist: msal-extensions<2.0.0,>=0.3.0
# Azure Identity client library for Python
@@ -413,6 +417,34 @@
# Release History
+## 1.14.1 (2023-10-09)
+
+### Bugs Fixed
+
+- Bug fixes for developer credentials
+
+## 1.15.0b1 (2023-09-12)
+
+### Features Added
+
+- Added Windows Web Account Manager (WAM) Brokered Authentication support.
+- Added `enable_msa_passthrough` suppport for `InteractiveBrowserCredential`.
By default `InteractiveBrowserCredential` only lists AAD accounts. If you set
`enable_msa_passthrough` to `True`, it lists both AAD accounts and MSA
outlook.com accounts that are logged in to Windows.
+
+### Bugs Fixed
+
+- Ensure `AzurePowershellCredential` calls PowerShell with the `-NoProfile`
flag to avoid loading user profiles for more consistent behavior.
([#31682](https://github.com/Azure/azure-sdk-for-python/pull/31682))
+- Fixed an issue with subprocess-based developer credentials (such as
AzureCliCredential) where the process would sometimes hang waiting for user
input. ([#31534](https://github.com/Azure/azure-sdk-for-python/pull/31534))
+- Fixed an issue with `ClientAssertionCredential` not properly checking if CAE
should be enabled.
([#31544](https://github.com/Azure/azure-sdk-for-python/pull/31544))
+- `ManagedIdentityCredential` will fall through to the next credential in the
chain in the case that Docker Desktop returns a 403 response when attempting to
access the IMDS endpoint.
([#31824](https://github.com/Azure/azure-sdk-for-python/pull/31824))
+
+### Other Changes
+
+- Update typing of async credentials to match the `AsyncTokenCredential`
protocol.
+- If within `DefaultAzureCredential`, `EnvironmentCredential` will now use log
level INFO instead of WARNING to inform users of an incomplete environment
configuration.
([#31814](https://github.com/Azure/azure-sdk-for-python/pull/31814))
+- Strengthened `AzureCliCredential` and `AzureDeveloperCliCredential` error
checking when determining if a user is logged in or not. Now, if an AADSTS
error exists in the error, the full error message is propagated instead of a
canned error message.
([#30047](https://github.com/Azure/azure-sdk-for-python/pull/30047))
+- `ManagedIdentityCredential` instances using IMDS will now be allowed to
continue sending requests to the IMDS endpoint even after previous attempts
failed. This is to prevent credential instances from potentially being
permanently disabled after a temporary network failure.
+- IMDS endpoint probes in `ManagedIdentityCredential` will now only occur when
inside a credential chain such as `DefaultAzureCredential`. This probe request
timeout has been increased to 1 second from 0.3 seconds to reduce the
likelihood of false negatives.
+
## 1.14.0 (2023-08-08)
### Features Added
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/azure-identity-1.14.0/tests/test_powershell_credential.py
new/azure-identity-1.14.1/tests/test_powershell_credential.py
--- old/azure-identity-1.14.0/tests/test_powershell_credential.py
2023-08-08 23:43:26.000000000 +0200
+++ new/azure-identity-1.14.1/tests/test_powershell_credential.py
2023-10-09 21:39:44.000000000 +0200
@@ -110,7 +110,7 @@
Popen = get_mock_Popen(stdout=stdout, stderr=stderr)
with patch(POPEN, Popen):
- token = AzurePowerShellCredential().get_token(scope,
tenant_id="tenant_id")
+ token = AzurePowerShellCredential().get_token(scope,
tenant_id="tenant-id")
assert token.token == expected_access_token
assert token.expires_on == expected_expires_on
@@ -315,5 +315,5 @@
assert token.token == expected_token
with patch.dict("os.environ",
{EnvironmentVariables.AZURE_IDENTITY_DISABLE_MULTITENANTAUTH: "true"}):
- token = credential.get_token("scope", tenant_id="some tenant")
+ token = credential.get_token("scope", tenant_id="some-tenant")
assert token.token == expected_token
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/azure-identity-1.14.0/tests/test_powershell_credential_async.py
new/azure-identity-1.14.1/tests/test_powershell_credential_async.py
--- old/azure-identity-1.14.0/tests/test_powershell_credential_async.py
2023-08-08 23:43:26.000000000 +0200
+++ new/azure-identity-1.14.1/tests/test_powershell_credential_async.py
2023-10-09 21:39:44.000000000 +0200
@@ -97,7 +97,7 @@
mock_exec = get_mock_exec(stdout=stdout, stderr=stderr)
with patch(CREATE_SUBPROCESS_EXEC, mock_exec):
- token = await AzurePowerShellCredential().get_token(scope,
tenant_id="tenant_id")
+ token = await AzurePowerShellCredential().get_token(scope,
tenant_id="tenant-id")
assert token.token == expected_access_token
assert token.expires_on == expected_expires_on
@@ -313,5 +313,5 @@
assert token.token == expected_token
with patch.dict("os.environ",
{EnvironmentVariables.AZURE_IDENTITY_DISABLE_MULTITENANTAUTH: "true"}):
- token = await credential.get_token("scope", tenant_id="some
tenant")
+ token = await credential.get_token("scope",
tenant_id="some-tenant")
assert token.token == expected_token