protected override void ProcessRecord() { try { AWSSAMLUtils awsSamlUtils = new AWSSAMLUtils(); SessionAWSCredentials awsSessionCredentials = null; ICredentials userCredentials = GetUserCredentials(useCurrentCredentials); Uri uri = new Uri(identityProviderUrl); NetworkCredential networkCredentials = userCredentials.GetCredential(uri, ""); if (CredentialCache.DefaultCredentials != userCredentials) { ImpersonateUser(networkCredentials.UserName, networkCredentials.Password, networkCredentials.Domain); } string samlAssertion = awsSamlUtils.GetSamlAssertion(identityProviderUrl); string[] awsSamlRoles = awsSamlUtils.GetAwsSamlRoles(samlAssertion); UnImpersonateUser(); string awsSamlRole = null; if (roleIndex < awsSamlRoles.Length) { awsSamlRole = awsSamlRoles[roleIndex]; } else if (!string.IsNullOrEmpty(role)) { awsSamlRole = awsSamlRoles.FirstOrDefault(p => p.Contains(role)); if (awsSamlRole == null) { throw new ArgumentException(string.Format("role {0} not found in list of available roles: {1}", role, string.Join(", ", awsSamlRoles))); } } else { awsSamlRole = AskUserForAwsSamlRole(awsSamlRoles); } awsSessionCredentials = awsSamlUtils.GetSamlRoleCredentails(samlAssertion, awsSamlRole); SetPowershellSamlProfile(awsSessionCredentials.GetCredentials()); } catch { throw; } }
protected override void ProcessRecord() { try { AWSSAMLUtils awsSamlUtils = new AWSSAMLUtils(); SessionAWSCredentials awsSessionCredentials = null; ICredentials userCredentials = AskUserForCredentials(useCurrentCredentials); Uri uri = new Uri(identityProviderUrl); NetworkCredential networkCredentials = userCredentials.GetCredential(uri, ""); if (CredentialCache.DefaultCredentials != userCredentials) { ImpersonateUser(networkCredentials.UserName, networkCredentials.Password, networkCredentials.Domain); } string samlAssertion = awsSamlUtils.GetSamlAssertion(identityProviderUrl); string[] awsSamlRoles = awsSamlUtils.GetAwsSamlRoles(samlAssertion); UnImpersonateUser(); string awsSamlRole = null; if (roleIndex < awsSamlRoles.Length) { awsSamlRole = awsSamlRoles[roleIndex]; } else { awsSamlRole = AskUserForAwsSamlRole(awsSamlRoles); } awsSessionCredentials = awsSamlUtils.GetSamlRoleCredentails(samlAssertion, awsSamlRole); SetPowershellSamlProfile(awsSessionCredentials.GetCredentials()); } catch { throw; } }