static async Task <ImmutableCredentials> Authenticate(AwsConfig awsConfig, RegionEndpoint region) { var service = new AwsCliSsoService(region); var credentials = await service.GetCredentials(awsConfig.StartUrl, awsConfig.AccountId, awsConfig.RoleName); return(await credentials.GetCredentialsAsync()); }
static AwsConfig GetAwsConfig() { var awsConfig = new AwsConfig(); var configFile = $"{Environment.GetFolderPath(Environment.SpecialFolder.UserProfile)}/.aws/config"; if (!File.Exists(configFile)) { throw new FileNotFoundException(); } var parser = new FileIniDataParser(); IniData data = parser.ReadFile(configFile); awsConfig.AccountId = data["default"]["sso_account_id"]; awsConfig.RoleName = data["default"]["sso_role_name"]; awsConfig.StartUrl = data["default"]["sso_start_url"]; if (!awsConfig.IsValid()) { throw new Exception("Credentials not set. Have you run aws configure sso?"); } return(awsConfig); }