Exemplo n.º 1
0
        /// <summary>
        /// Acquires an access token for SQL using AzureServiceTokenProvider with the given SQL authentication parameters.
        /// </summary>
        /// <param name="parameters">The parameters needed in order to obtain a SQL access token</param>
        /// <returns></returns>
        public async Task <SqlAuthenticationToken> AcquireTokenAsync(SqlAppAuthenticationParameters parameters)
        {
            string azureAdInstance = UriHelper.GetAzureAdInstanceByAuthority(parameters.Authority);
            string tenantId        = UriHelper.GetTenantByAuthority(parameters.Authority);

            if (string.IsNullOrEmpty(azureAdInstance))
            {
                throw new ArgumentException("The Azure AD instance could not be parsed from the authority provided in SqlAuthenticationParameters");
            }

            if (string.IsNullOrEmpty(parameters.Resource))
            {
                throw new ArgumentException("A resource must be specified in SqlAuthenticationParameters");
            }

            AzureServiceTokenProvider tokenProvider = new AzureServiceTokenProvider(azureAdInstance: azureAdInstance);

            var authResult = await tokenProvider.GetAuthenticationResultAsync(parameters.Resource, tenantId).ConfigureAwait(false);

            return(new SqlAuthenticationToken(authResult.AccessToken, authResult.ExpiresOn));
        }
        /// <summary>
        /// Acquires an access token for SQL using AzureServiceTokenProvider with the given SQL authentication parameters.
        /// </summary>
        /// <param name="parameters">The parameters needed in order to obtain a SQL access token</param>
        /// <returns></returns>
        public override async Task <SqlAuthenticationToken> AcquireTokenAsync(SqlAuthenticationParameters parameters)
        {
            var appAuthParameters = new SqlAppAuthenticationParameters(parameters);

            return(await AcquireTokenAsync(appAuthParameters).ConfigureAwait(false));
        }