/// <summary> /// Initializes a new instance of the <see cref="ManagedIdentityAppCredentials"/> class. /// Managed Identity for AAD credentials auth and caching. /// </summary> /// <param name="appId">Client ID for the managed identity assigned to the bot.</param> /// <param name="oAuthScope">The scope for the token.</param> /// <param name="tokenProviderFactory">The JWT token provider factory to use.</param> /// <param name="customHttpClient">Optional <see cref="HttpClient"/> to be used when acquiring tokens.</param> /// <param name="logger">Optional <see cref="ILogger"/> to gather telemetry data while acquiring and managing credentials.</param> public ManagedIdentityAppCredentials(string appId, string oAuthScope, IJwtTokenProviderFactory tokenProviderFactory, HttpClient customHttpClient = null, ILogger logger = null) : base(channelAuthTenant: null, customHttpClient, logger, oAuthScope) { if (string.IsNullOrWhiteSpace(appId)) { throw new ArgumentNullException(nameof(appId)); } _tokenProviderFactory = tokenProviderFactory ?? throw new ArgumentNullException(nameof(tokenProviderFactory)); MicrosoftAppId = appId; }
/// <summary> /// Initializes a new instance of the <see cref="ManagedIdentityServiceClientCredentialsFactory"/> class. /// </summary> /// <param name="appId">Client ID for the managed identity assigned to the bot.</param> /// <param name="tokenProviderFactory">The JWT token provider factory to use.</param> /// <param name="httpClient">A custom httpClient to use.</param> /// <param name="logger">A logger instance to use.</param> public ManagedIdentityServiceClientCredentialsFactory(string appId, IJwtTokenProviderFactory tokenProviderFactory, HttpClient httpClient = null, ILogger logger = null) { if (string.IsNullOrWhiteSpace(appId)) { throw new ArgumentNullException(nameof(appId)); } _appId = appId; _tokenProviderFactory = tokenProviderFactory ?? throw new ArgumentNullException(nameof(tokenProviderFactory)); _httpClient = httpClient; _logger = logger; }
/// <summary> /// Initializes a new instance of the <see cref="ManagedIdentityAuthenticator"/> class. /// </summary> /// <param name="appId">Client id for the managed identity to be used for acquiring tokens.</param> /// <param name="resource">Resource for which to acquire the token.</param> /// <param name="tokenProviderFactory">The JWT token provider factory to use.</param> /// <param name="customHttpClient">A customized instance of the HttpClient class.</param> /// <param name="logger">The type used to perform logging.</param> public ManagedIdentityAuthenticator(string appId, string resource, IJwtTokenProviderFactory tokenProviderFactory, HttpClient customHttpClient = null, ILogger logger = null) { if (string.IsNullOrWhiteSpace(appId)) { throw new ArgumentNullException(nameof(appId)); } if (string.IsNullOrWhiteSpace(resource)) { throw new ArgumentNullException(nameof(resource)); } if (tokenProviderFactory == null) { throw new ArgumentNullException(nameof(tokenProviderFactory)); } _resource = resource; _tokenProvider = tokenProviderFactory.CreateAzureServiceTokenProvider(appId, customHttpClient); _logger = logger ?? NullLogger.Instance; }