Skip to content

IAM Identity Center + Google Workspace: IdP-initiated SAML (launcher tile / Test SAML Login) fails with "couldn't verify your sign-in credentials" — SP-initiated works fine

0

Environment

  • IAM Identity Center, home region us-east-1
  • External IdP: Google Workspace, configured via the official "Amazon Web Services (SAML)" catalog app per the gs-gwp.html tutorial, followed exactly (including mapping https://aws.amazon.com/SAML/Attributes/Role to a Google Directory attribute — Department — per the guide's own recommendation)
  • SCIM auto-provisioning from Google Workspace is enabled and working correctly
  • Identity Store ID: d-906639123c
  • Account ID: 893130089477

What works

  • Navigating directly to the AWS access portal URL (https://<my-company>.awsapps.com/start) and signing in — SP-initiated flow completes successfully every time, and correctly lands the user in the console with the expected permission set.
  • Confirmed via CloudTrail: successful ConsoleLogin events with AssumedRole: AWSReservedSSO_AdministratorAccess_....

What fails

  • Clicking the "Amazon Web Services" tile in the Google Workspace app launcher (IdP-initiated SAML), or using Google's own "Test SAML Login" button, always returns the following generic error on the AWS side:

"Something doesn't compute We couldn't verify your sign-in credentials. Please try again."

  • This is consistent and 100% reproducible — every attempt fails identically.
  • No corresponding CloudTrail event is generated for the failed attempts (checked identitystore-scim.amazonaws.com, sso-directory.amazonaws.com, and signin.amazonaws.com event sources around the exact failure timestamps) — the rejection appears to happen before anything reaches a loggable stage.

Troubleshooting already done

  1. Verified and corrected the ACS URL / Recipient / Destination in the Google SAML app to exactly match the dual-stack endpoint IAM Identity Center issued (https://us-east-1.sso.signin.aws/platform/saml/acs/...) — confirmed via decoded SAML response that these now match byte-for-byte.
  2. Tested with both the IPv4-only and dual-stack ACS URL configurations from IAM Identity Center's Settings page — both produce the identical error for IdP-initiated login.
  3. Confirmed NameID format is EMAIL and NameID value is a correctly formatted email address matching the user's email in Identity Center.
  4. Confirmed the SAML Audience in the assertion exactly matches the IAM Identity Center issuer URL (https://us-east-1.signin.aws.amazon.com/platform/saml/d-906639123c). 5.Confirmed assertion timestamps (IssueInstant, NotBefore, NotOnOrAfter) are within a valid 5-10 minute window with no apparent clock skew.
  5. Confirmed the https://aws.amazon.com/SAML/Attributes/Role attribute is populated (initially left empty, then populated with a Department value per the official tutorial's own suggestion) — no change in behavior either way.
  6. Rotated the Google Workspace SAML signing certificate and re-synced metadata on both sides — no change in behavior.
  7. Captured and reviewed multiple full decoded SAMLResponse XML payloads via SAML-tracer — structurally valid, signed, and spec-compliant in every field checked.

Sample decoded SAMLResponse (most recent attempt, redacted where appropriate)

xml <saml2p:Response ... Destination="https://us-east-1.sso.signin.aws/platform/saml/acs/[ACS_ID]" ...> saml2:Issuerhttps://accounts.google.com/o/saml2?idpid=[IDP_ID]</saml2:Issuer> saml2p:Status<saml2p:StatusCode Value="urn:oasis:names:tc:SAML:2.0:status:Success"/></saml2p:Status> <saml2:Assertion ...> saml2:Subject <saml2:NameID Format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"><user_email></saml2:NameID> <saml2:SubjectConfirmation Method="urn:oasis:names:tc:SAML:2.0:cm:bearer"> <saml2:SubjectConfirmationData NotOnOrAfter="..." Recipient="https://us-east-1.sso.signin.aws/platform/saml/acs/[ACS_ID]"/> </saml2:SubjectConfirmation> </saml2:Subject> <saml2:Conditions NotBefore="..." NotOnOrAfter="..."> saml2:AudienceRestriction saml2:Audiencehttps://us-east-1.signin.aws.amazon.com/platform/saml/d-906639123c</saml2:Audience> </saml2:AudienceRestriction> </saml2:Conditions> saml2:AttributeStatement <saml2:Attribute Name="https://aws.amazon.com/SAML/Attributes/Role"> saml2:AttributeValueRND</saml2:AttributeValue> </saml2:Attribute> <saml2:Attribute Name="https://aws.amazon.com/SAML/Attributes/RoleSessionName"> saml2:AttributeValue<user_email></saml2:AttributeValue> </saml2:Attribute> </saml2:AttributeStatement> <saml2:AuthnStatement .../> </saml2:Assertion> </saml2p:Response>

Question

Since this is an unsolicited (IdP-initiated) SAML response with no corresponding SP-generated request, is there a specific server-side validation IAM Identity Center performs on unsolicited assertions that differs from SP-initiated ones — beyond ACS/Audience/NameID matching — that could produce this generic error without generating a CloudTrail event? Is there a way to get more detailed server-side rejection logging for failed IdP-initiated attempts specifically? We don't have a paid AWS Support plan, so we're hoping the community or an AWS engineer monitoring re:Post can point us toward the actual validation failure.

For now we're relying on SP-initiated login exclusively (direct portal URL), which works reliably — but we'd like to restore the launcher-tile experience for our team if there's a known fix.

asked a month ago83 views

2 Answers
3

The issue you are experiencing is a known limitation between Google Workspace and AWS IAM Identity Center regarding IdP-initiated SAML flows, specifically related to the RelayState parameter.

The Root Cause: While SP-initiated flows (starting at the AWS access portal) work perfectly because AWS generates the request and handles the state, IdP-initiated flows (clicking the launcher tile in Google Workspace) send an "unsolicited" SAML response.

For AWS IAM Identity Center to accept an unsolicited SAML response, the IdP must support sending a specific RelayState endpoint URL (essentially deep-linking the user to the AWS portal). Google Workspace currently does not support dynamic RelayState for IdP-initiated SSO.

Because Google Workspace sends the SAML assertion without the expected RelayState routing information, AWS Identity Center fails to validate the context of the unsolicited login. This results in the generic "We couldn't verify your sign-in credentials" error, and because the failure happens at the edge validation layer before a session context is established, it often drops before generating a CloudTrail event.

Workarounds:

  1. Hide the Tile: Since the SP-initiated flow works, the most common solution is to hide the AWS SAML tile from the Google Workspace app launcher to prevent users from clicking it and encountering the error. Instruct users to bookmark your AWS access portal URL (https://<my-company>[.awsapps.com/start](https://.awsapps.com/start)) directly.
  2. Custom App (Not Recommended): Some administrators attempt to create a custom bookmark app in Google Workspace that simply redirects to the AWS SP-initiated portal URL, replacing the broken SAML app tile.

The troubleshooting steps regarding dual-stack endpoints apply primarily to CLI device-code flows and will not resolve this specific SAML RelayState limitation between Google and AWS.

see also:

EXPERT

answered a month ago

0

A known issue has been reported where aws sso login --use-device-code fails in dual-stack environments, triggering the generic error message: "Something doesn't compute / We couldn't verify your sign-in credentials." This issue arises from a mismatch between the endpoint family configured for the IdP and the one expected by AWS; setting AWS_USE_DUALSTACK_ENDPOINT=true serves as a workaround.

Furthermore, official documentation states that Google Workspace does not support multiple SAML ACS URLs for IAM Identity Center applications. While this limitation is noted to impact multi-region support, it suggests that even in single-region configurations, Identity Center performs internal checks to ensure endpoint family consistency.

Why SP-initiated flows succeed while IdP-initiated flows fail (Hypothesis)

[SP-initiated flow]

  1. User accesses the portal URL.
  2. AWS (SP) generates a SAMLRequest.

→ At this stage, AWS determines which ACS endpoint (IPv4 or dual-stack) it expects the response on and includes this in the request.

  1. Google responds in accordance with that request.
  2. Endpoint consistency is guaranteed. ✅

[IdP-initiated flow]

  1. Google independently generates a SAMLResponse. (No prior request from AWS = unsolicited)
  2. Google performs a POST to the ACS URL stored in its SAML app configuration (only one type—either IPv4 or dual-stack).
  3. AWS's internal validation logic cannot pre-determine which endpoint family the request should arrive on, leading to a potential mismatch during validation. ⚠️

This aligns with the fact that you experienced the same failure when testing with both IPv4-only and dual-stack ACS URLs, and that no events were recorded in CloudTrail (indicating the request was rejected before reaching the logging stage). Additional troubleshooting steps to try:

  1. Check the Google Admin Console audit logs

Even if no logs appear on the AWS side, a record may exist on the Google side:

Google Admin Console → Reports → Audit and investigation → SAML (select from the left-hand menu) → Search for events around the time of the failure

Google may record specific error details here (e.g., destination mismatch, certificate issues, etc.).

  1. Standardize Identity Center SAML settings to a single endpoint

On the Identity Center "Authentication" settings screen, explicitly configure the system to use only the IPv4-specific ACS URL and Issuer URL. Then, re-test after ensuring the Google SAML app settings match these exactly (do not switch to dual-stack).

  1. Check for the presence of RelayState

Use SAML-tracer to verify whether the SAMLResponse sent by Google during the IdP-initiated flow includes the RelayState parameter. If this parameter is missing or contains an invalid value, Identity Center may fail to process the request, resulting in the same generic error.

answered a month ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.