internal DefaultAzureCredential(DefaultAzureCredentialFactory factory, DefaultAzureCredentialOptions options) { _pipeline = factory.Pipeline; _sources = GetDefaultAzureCredentialChain(factory, options); _credentialLock = new AsyncLockWithValue <TokenCredential>(); }
internal DefaultAzureCredential(DefaultAzureCredentialFactory factory, DefaultAzureCredentialOptions options) { _pipeline = factory.Pipeline; _sources = GetDefaultAzureCredentialChain(factory, options); }
/// <summary> /// Creates an instance of the <see cref="DefaultAzureCredential"/> class. /// </summary> /// <param name="options">Options that configure the management of the requests sent to Azure Active Directory services, and determine which credentials are included in the <see cref="DefaultAzureCredential"/> authentication flow.</param> public DefaultAzureCredential(DefaultAzureCredentialOptions options) : this(new DefaultAzureCredentialFactory(options), options) { }
/// <summary> /// Creates an instance of the <see cref="DefaultAzureCredential"/> class. /// </summary> /// <param name="options">Options that configure the management of the requests sent to Azure Active Directory services, and determine which credentials are included in the <see cref="DefaultAzureCredential"/> authentication flow.</param> public DefaultAzureCredential(DefaultAzureCredentialOptions options) : this(new DefaultAzureCredentialFactory(CredentialPipeline.GetInstance(options)), options) { }
private static IExtendedTokenCredential[] GetDefaultAzureCredentialChain(DefaultAzureCredentialFactory factory, DefaultAzureCredentialOptions options) { if (options is null) { return(s_defaultCredentialChain); } int i = 0; IExtendedTokenCredential[] chain = new IExtendedTokenCredential[4]; if (!options.ExcludeEnvironmentCredential) { chain[i++] = factory.CreateEnvironmentCredential(); } if (!options.ExcludeManagedIdentityCredential) { chain[i++] = factory.CreateManagedIdentityCredential(options.ManagedIdentityClientId); } if (!options.ExcludeSharedTokenCacheCredential) { chain[i++] = factory.CreateSharedTokenCacheCredential(options.SharedTokenCacheTenantId, options.SharedTokenCacheUsername); } if (!options.ExcludeInteractiveBrowserCredential) { chain[i++] = factory.CreateInteractiveBrowserCredential(options.InteractiveBrowserTenantId); } if (i == 0) { throw new ArgumentException("At least one credential type must be included in the authentication flow.", nameof(options)); } return(chain); }
/// <summary> /// Creates an instance of the <see cref="DefaultAzureCredential"/> class. /// </summary> /// <param name="options">Options that configure the management of the requests sent to Azure Active Directory services, and determine which credentials are included in the <see cref="DefaultAzureCredential"/> authentication flow.</param> public DefaultAzureCredential(DefaultAzureCredentialOptions options) // we call ValidateAuthoriyHostOption to validate that we have a valid authority host before constructing the DAC chain // if we don't validate this up front it will end up throwing an exception out of a static initializer which obscures the error. : this(new DefaultAzureCredentialFactory(ValidateAuthorityHostOption(options)), options) { }
private static ReadOnlyMemory <TokenCredential> GetDefaultAzureCredentialChain(DefaultAzureCredentialOptions options) { if (options is null) { return(s_defaultCredentialChain); } int i = 0; TokenCredential[] chain = new TokenCredential[5]; if (!options.ExcludeEnvironmentCredential) { chain[i++] = new EnvironmentCredential(options); } if (!options.ExcludeManagedIdentityCredential) { chain[i++] = new ManagedIdentityCredential(options.ManagedIdentityClientId, options); } if (!options.ExcludeSharedTokenCacheCredential) { chain[i++] = new SharedTokenCacheCredential(options.SharedTokenCacheUsername); } if (!options.ExcludeInteractiveBrowserCredential) { chain[i++] = new InteractiveBrowserCredential(null, Constants.DeveloperSignOnClientId, options); } chain[i++] = new CredentialNotFoundGuard(); return(new ReadOnlyMemory <TokenCredential>(chain, 0, i)); }
/// <summary> /// Creates an instance of the DefaultAzureCredential class. /// </summary> /// <param name="options"></param> public DefaultAzureCredential(DefaultAzureCredentialOptions options) : base(GetDefaultAzureCredentialChain(options)) { }