chore: import upstream snapshot with attribution
CodeQL / Analyze (csharp) (push) Waiting to run
CodeQL / Analyze (python) (push) Waiting to run

This commit is contained in:
wehub-resource-sync
2026-07-13 13:21:23 +08:00
commit b957a53def
5423 changed files with 863745 additions and 0 deletions
@@ -0,0 +1,5 @@
# Copyright (c) Microsoft. All rights reserved.
from semantic_kernel.utils.authentication.entra_id_authentication import get_entra_auth_token
__all__ = ["get_entra_auth_token"]
@@ -0,0 +1,37 @@
# Copyright (c) Microsoft. All rights reserved.
import logging
from azure.core.credentials import TokenCredential
from azure.core.exceptions import ClientAuthenticationError
from semantic_kernel.exceptions.service_exceptions import ServiceInvalidAuthError
logger: logging.Logger = logging.getLogger(__name__)
def get_entra_auth_token(credential: "TokenCredential", token_endpoint: str) -> str | None:
"""Retrieve a Microsoft Entra Auth Token for a given token endpoint.
The token endpoint may be specified as an environment variable, via the .env
file or as an argument. If the token endpoint is not provided, the default is None.
Args:
credential: The credential to use to retrieve the authentication token.
token_endpoint: The token endpoint to use to retrieve the authentication token.
Returns:
The Azure token or None if the token could not be retrieved.
"""
if not token_endpoint:
raise ServiceInvalidAuthError(
"A token endpoint must be provided either in settings, as an environment variable, or as an argument."
)
try:
auth_token = credential.get_token(token_endpoint)
except ClientAuthenticationError:
logger.error(f"Failed to retrieve Azure token for the specified endpoint: `{token_endpoint}`.")
return None
return auth_token.token if auth_token else None