Skip to main content

DefaultAzureCredential

Struct DefaultAzureCredential 

Source
pub struct DefaultAzureCredential { /* private fields */ }
Expand description

A prebuilt ChainedTokenCredential, in (a subset of) azure_identity’s documented DefaultAzureCredential order.

Upstream (Python/.NET) DefaultAzureCredential tries, in order: EnvironmentCredential, WorkloadIdentityCredential, ManagedIdentityCredential, SharedTokenCacheCredential (Windows only), VisualStudioCodeCredential, AzureCliCredential, AzurePowerShellCredential, AzureDeveloperCliCredential, and (Windows/WSL only, off by default) InteractiveBrowserCredential/broker authentication.

This crate implements four of those credential types, so this chain is EnvironmentCredentialWorkloadIdentityCredentialManagedIdentityCredentialAzureCliCredential — the same relative order upstream uses among the credentials that exist here. Every other link in upstream’s list (the shared token cache, IDE-signed-in credentials, PowerShell, the Azure Developer CLI, interactive/broker auth) is simply absent rather than approximated by something else; callers that need one of those should build their own ChainedTokenCredential.

EnvironmentCredential and WorkloadIdentityCredential are included only when their required environment variables are present — construction failure just excludes them from the chain, mirroring upstream’s “unavailable credentials are skipped, not fatal” behavior (there, via a placeholder that defers the error to get_token; here, by omission, since ChainedTokenCredential already only holds constructed credentials). ManagedIdentityCredential and AzureCliCredential need no such configuration and are always present, so the chain is never empty. As with any ChainedTokenCredential, whichever credential first returns a token is remembered and tried first on subsequent calls.

Implementations§

Source§

impl DefaultAzureCredential

Source

pub fn new(scope: impl Into<String>) -> Self

Build the chain, acquiring tokens for scope by default.

Trait Implementations§

Source§

impl TokenCredential for DefaultAzureCredential

Source§

fn get_token<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Fetch a bearer token to send as Authorization: Bearer <token>.
Source§

fn get_token_for_scope<'life0, 'life1, 'async_trait>( &'life0 self, scope: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<String>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Fetch a bearer token for a specific scope (audience), e.g. "https://ai.azure.com/.default". Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Sized + Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more