InteractiveBrowserBrokerCredential Class

Uses an authentication broker to interactively sign in a user.

Currently, only the Windows authentication broker, Web Account Manager (WAM), is supported. Users on macOS and Linux will be authenticated through a browser.

get_token opens a browser to a login URL provided by Microsoft Entra ID and authenticates a user there with the authorization code flow, using PKCE (Proof Key for Code Exchange) internally to protect the code.

Inheritance
azure.identity._credentials.browser.InteractiveBrowserCredential
InteractiveBrowserBrokerCredential

Constructor

InteractiveBrowserBrokerCredential(**kwargs: Any)

Keyword-Only Parameters

Name Description
authority
str

Authority of a Microsoft Entra endpoint, for example "login.microsoftonline.com", the authority for Azure Public Cloud (which is the default). AzureAuthorityHosts defines authorities for other clouds.

tenant_id
str

a Microsoft Entra tenant ID. Defaults to the "organizations" tenant, which can authenticate work or school accounts.

client_id
str

Client ID of the Microsoft Entra application users will sign in to. If unspecified, users will authenticate to an Azure development application.

login_hint
str

a username suggestion to pre-fill the login page's username/email address field. A user may still log in with a different username.

timeout
int

seconds to wait for the user to complete authentication. Defaults to 300 (5 minutes).

parent_window_handle
int

If your app is a GUI app running on a modern Windows system, you are required to also provide its window handle so that the sign in UI window will properly pop up on top of your window.

use_default_broker_account

Enables automatically using the default broker account for authentication instead of prompting the user with an account picker. Defaults to False.

enable_msa_passthrough

Determines whether Microsoft Account (MSA) passthrough is enabled. Note, this is only needed for select legacy first-party applications. Defaults to False.

disable_instance_discovery

Determines whether or not instance discovery is performed when attempting to authenticate. Setting this to true will completely disable both instance discovery and authority validation. This functionality is intended for use in scenarios where the metadata endpoint cannot be reached, such as in private clouds or Azure Stack. The process of instance discovery entails retrieving authority metadata from https://login.microsoft.com/ to validate the authority. By setting this to True, the validation of the authority is disabled. As a result, it is crucial to ensure that the configured authority host is valid and trustworthy.

enable_support_logging

Enables additional support logging in the underlying MSAL library. This logging potentially contains personally identifiable information and is intended to be used only for troubleshooting purposes.

Methods

authenticate

Interactively authenticate a user.

close
get_token

Request an access token for scopes.

This method is called automatically by Azure SDK clients.

authenticate

Interactively authenticate a user.

authenticate(*, scopes: Iterable[str] | None = None, claims: str | None = None, **kwargs: Any) -> AuthenticationRecord

Keyword-Only Parameters

Name Description
scopes

scopes to request during authentication, such as those provided by <xref:AuthenticationRequiredError.scopes>. If provided, successful authentication will cache an access token for these scopes.

claims
str

additional claims required in the token, such as those provided by <xref:AuthenticationRequiredError.claims>

Returns

Type Description

Exceptions

Type Description

authentication failed. The error's message attribute gives a reason.

close

close() -> None

Keyword-Only Parameters

Name Description
scopes

scopes to request during authentication, such as those provided by <xref:AuthenticationRequiredError.scopes>. If provided, successful authentication will cache an access token for these scopes.

claims
str

additional claims required in the token, such as those provided by <xref:AuthenticationRequiredError.claims>

Exceptions

Type Description

authentication failed. The error's message attribute gives a reason.

get_token

Request an access token for scopes.

This method is called automatically by Azure SDK clients.

get_token(*scopes: str, claims: str | None = None, tenant_id: str | None = None, enable_cae: bool = False, **kwargs: Any) -> AccessToken

Parameters

Name Description
scopes
Required
str

desired scopes for the access token. This method requires at least one scope. For more information about scopes, see https://learn.microsoft.com/entra/identity-platform/scopes-oidc.

Keyword-Only Parameters

Name Description
claims
str

additional claims required in the token, such as those returned in a resource provider's claims challenge following an authorization failure

tenant_id
str

optional tenant to include in the token request.

enable_cae

indicates whether to enable Continuous Access Evaluation (CAE) for the requested token. Defaults to False.

Returns

Type Description

An access token with the desired scopes.

Exceptions

Type Description
CredentialUnavailableError

the credential is unable to attempt authentication because it lacks required data, state, or platform support

authentication failed. The error's message attribute gives a reason.

AuthenticationRequiredError

user interaction is necessary to acquire a token, and the credential is configured not to begin this automatically. Call

to begin interactive authentication.