Пример #1
0
        private async Task <bool> RefreshOidcTokenAsync(TokenRefreshManager caller, OidcTokenOptions oidcTokenOptions, CancellationToken cancellationToken)
        {
            var request = new ImpersonationOIdCTokenRequest
            {
                DelegateAccounts = DelegateAccounts,
                Audience         = oidcTokenOptions.TargetAudience,
                IncludeEmail     = true
            };
            var oidcTokenUrl = string.Format(GoogleAuthConsts.IamIdTokenEndpointFormatString, TargetPrincipal);

            caller.Token = await request.ExecuteAsync(HttpClient, oidcTokenUrl, Clock, Logger, cancellationToken)
                           .ConfigureAwait(false);

            return(true);
        }
Пример #2
0
        private async Task <bool> RefreshOidcTokenAsync(TokenRefreshManager caller, OidcTokenOptions oidcTokenOptions, CancellationToken cancellationToken)
        {
            var request = new ImpersonationOIdCTokenRequest
            {
                DelegateAccounts = Options.DelegateAccounts,
                Audience         = oidcTokenOptions.TargetAudience,
                IncludeEmail     = true
            };
            var body    = NewtonsoftJsonSerializer.Instance.Serialize(request);
            var content = new StringContent(body, Encoding.UTF8, "application/json");

            var oidcTokenUrl = String.Format(GoogleAuthConsts.IamIdTokenEndpointFormatString, Options.TargetPrincipal);
            var response     = await HttpClient.PostAsync(oidcTokenUrl, content, cancellationToken).ConfigureAwait(false);

            caller.Token = await TokenResponse.FromHttpResponseAsync(response, Clock, Logger).ConfigureAwait(false);

            return(true);
        }