Hi
I have a private external OIDC Identity provider that i want my users to access Quicksight based on that private IDP. which means connecting to my private IDP ( and having the right roles ) will allow them to access Quicksight ( in non default namespace )
I wanted to do a basic test which is using the JWT token given by my IDP to access Quicksight.
What i’ve done, is creating an identity provider in IAM,
I set the identity provider a a url aswell as an audience that matches the claims in my jwt token.
I have a associated a role to the audience and pre registred a user in quicksight with these parameters :
aws quicksight register-user \
–aws-account-id “account_id \
–namespace default \
–identity-type IAM \
–iam-arn my-arn \
–email my_email \
–user-role ADMIN \
–external-login-federation-provider-type CUSTOM_OIDC \
–custom-federation-provider-url “my provider url” \
–external-login-id random-id \
–region my_region
i did a call to STS to assume the role with web identity
aws sts assume-role-with-web-identity
–role-arn role_arn
–role-session-name test
–web-identity-token file://id_token.jwt
–duration-seconds duration
and at the end i did get the sign in url with this peace of code :
signin_token=$(curl -s “ https: // signin. aws .amazon .com / federation “
–data-urlencode “Action=getSigninToken”
–data-urlencode “Session=$(jq -c -n --arg a “$AWS_ACCESS_KEY_ID” --arg b “$AWS_SECRET_ACCESS_KEY” --arg c “$AWS_SESSION_TOKEN” ‘{sessionId:$a,sessionKey:$b,sessionToken:$c}’)”
| jq -r ‘.SigninToken’)login_url=$(python - <<‘PY’ “ https: // signin. aws. amazon. com/ federation “
#I added spaces in the url in order not to be changed to a beautified format
import urllib.parse
print(urllib.parse.quote(“https://eu-west-3.quicksight.aws.amazon.com/”))
PY
)url=“https://signin.aws.amazon.com/federation?Action=login&Issuer=example&Destination=$login_url&SigninToken=$signin_token”
echo “$url”
Since i activated Email Syncing in Quicksight, i got this error :
The AWS principal tag corresponding to “PrincipalTag:Email” in your SAML assertion or OIDC token is either an invalid email or not present. Please reach out to your Quick Suite account’s admin to ensure that the email address for this AWS principal tag is correct.
My questions :
- How can i fix that issue ( i want my users to access quicksight with my IDP’s email )
- Is the trust policy mandatory to include a specific tag to recognize the email claim token ?
- Is there another approache to authenticate my users from the IDP to quicksight directly ?( keeping in mind the namespace constraint )
- since having an external OIDC IDP, what are the possible solutions to connect to Quicksight ?
- From my private external IDP OIDC compatible , my users cannot access directly Quicksight via the url https://eu-west-3.quicksight.aws.amazon.com/sn/ right ? what should the url be ?
- In another words, how can a user registred with the quicksight register user ( based on a custom OIDC parameters ) connect to Quicksight