Repository navigation
UAE PASS Identity Provider Integration - No token from server #36715
|
Hi everyone, I'm trying to integrate UAE Pass as an OIDC IDP for keycloak. I tried the relevant UAE endpoints in postman and I can get the access token. But for some reason, after configuring in keycloak it gives the following error: These are the endpoints: Token: Logout: UserInfo: client_id: sandbox_stage These information are publically available in the UAE Pass Docs. I tried changing almost every setting in different combinations, but nothing works. Anyone got any idea? Btw, I'm using Keycloak 17. Thanks. |
Replies: 3 comments
|
I was ble to find the issue. Tried a fresh instance of keycloak and went through keycloak setup from the beginning and added UAE Pass IDP Config. I went through the logs and got the token response from UAE Pass. Decoded the "id_token". There's a property called "iss". Copied it's value and pasted it in UAE Pass config's "Issuer" field in keycloak. Now its working. Hope it helps someone! |
|
As for the original question, Keycloak automatically attaches the required params on the fly. So we don't need to set them up manually. Also added the scope values to "Scope" field in config. |
|
If the goal is "make UAE PASS look like a proper OIDC IdP" for downstream consumers (Azure CIAM / Entra External ID, apps, proxies), a cleaner approach is to place an OIDC broker in front of it. Dex works well for this: Dex exposes a full OIDC surface (/.well-known/openid-configuration, JWKS, ID token signing) and uses its generic oauth connector upstream to do the UAE PASS OAuth2 code flow + userinfo fetch + claim mapping. In other words: downstream talks OIDC to Dex; upstream talks OAuth2 to UAE PASS, and you keep Keycloak/Azure on the happy path of standards-based federation. |
As for the original question,
I changed the Auth endpoint in keycloak to the following in UAE Pass Config:
https://stg-id.uaepass.ae/idshub/authorize?acr_values=urn:safelayer:tws:policies:authentication:level:lowKeycloak automatically attaches the required params on the fly. So we don't need to set them up manually.
Also added the scope values to "Scope" field in config.