private Amazon.SSO.Model.GetRoleCredentialsResponse CallAWSServiceOperation(IAmazonSSO client, Amazon.SSO.Model.GetRoleCredentialsRequest request)
 {
     Utils.Common.WriteVerboseEndpointMessage(this, client.Config, "AWS Single Sign-On", "GetRoleCredentials");
     try
     {
         #if DESKTOP
         return(client.GetRoleCredentials(request));
         #elif CORECLR
         return(client.GetRoleCredentialsAsync(request).GetAwaiter().GetResult());
         #else
                 #error "Unknown build edition"
         #endif
     }
     catch (AmazonServiceException exc)
     {
         var webException = exc.InnerException as System.Net.WebException;
         if (webException != null)
         {
             throw new Exception(Utils.Common.FormatNameResolutionFailureMessage(client.Config, webException.Message), webException);
         }
         throw;
     }
 }
Пример #2
0
        public static async Task <ImmutableCredentials> CredentialsFromSsoAccessTokenAsync(IAmazonSSO client, string accountId,
                                                                                           string roleName, string accessToken,
                                                                                           IDictionary <string, object> additionalProperties)
        {
            var request = new GetRoleCredentialsRequest()
            {
                AccessToken = accessToken,
                AccountId   = accountId,
                RoleName    = roleName,
            };

            InternalSDKUtils.ApplyValues(request, additionalProperties);

            var response = await client.GetRoleCredentialsAsync(request).ConfigureAwait(false);

            DateTime credentialsExpiration =
                AWSSDKUtils.ConvertFromUnixEpochMilliseconds(response.RoleCredentials.Expiration);

            return(new SSOImmutableCredentials(
                       response.RoleCredentials.AccessKeyId,
                       response.RoleCredentials.SecretAccessKey,
                       response.RoleCredentials.SessionToken,
                       credentialsExpiration));
        }