APIs
Introduction
Flow
Communication between Identity Provider Proxy and Endpoint
The Idpp interposing itself between the Identity Provider and the Endpoint sends user information via a header to the Endpoint. The header is visible only to the Endpoint application and its key is X-Idpp-Outcoming-Data; The value of that header is in JWT format.
JWT Decoded header:
{
"alg": "RS256"
}
JWT Body decoded:
{
"sub": "V76hkpYvQTHC3rlvU0q8uhCvpQOcuv4DQCYiz-JVC28",
"verified_secondary_email": [
"example.2@acme.org"
],
"iss": "https://www.acme-idp.org/a85314ec-ef7e-4f39-be72-fdca47945f3d",
"preferred_username": "example@acme.org",
"verified_primary_email": [
"example@acme.org"
],
"ipaddr": "X.X.X",
"email": "example@acme.org",
"ver": "2.0",
"groups": [
"5d333cc8-eea3-478f-a25f-5f1bdbb77640",
"1c8575e9-cd1f-422e-b91d-55a485eed34f",
"7912607a-0754-4566-b2ef-ea1bf743c689",
"371f4ca5-3a01-4b3d-998a-3d934a4ef50a",
"80760599-097e-4ed9-93a9-939eb1375636",
"e157f6bc-07c0-4177-a56c-df52fc9c4292",
"9a3a5751-724d-40a4-84e2-522d156f20b5",
"3a8f04e9-3108-4039-989e-1278c834dd46",
"da14a324-3008-4593-9209-ac7e4620e8f6"
],
"given_name": "example",
"nonce": "lUeYcAqMiiz_KXIGT8t9ItdWVoAXhOh3k6hqBJPtym8",
"tenant_ctry": "EN",
"aud": "c3d5716c-d33c-4396-84e6-bd672a387e4a",
"tenant_region_scope": "EU",
"upn": "example@acme.org",
"name": "example_surname",
"family_name": "example_surname",
"idpp_key": "pLEBKvJruSLJZPEDhb6YMOZcxoidfPyTYernPAN2mGvbSkMbVIFKPOA4TYp1fpR8PvaFCpOwiEOYRMQfvaLu9g",
"idpp_logout_endpoint": "https://www.acme.org/logout",
"idpp_listener_http_protocol": "HTTP/1.1"
}
The elements of the Body JWT are all the information sent by the Identity Provider unmodified with in addition the idpp_logout_endpoint, idpp_key and idpp_listener_http_protocol key.
Logout
In order to perform a logout the endpoint must execute a request as below:
GET ${idpp_logout_endpoint.path} ${idpp_listener_http_protocol}
Host: ${idpp_logout_endpoint.hostname}
X-Idpp-Incoming-Data: ${endoded_jwt_sent_by_idpp}
Verifying the validity of the JWT
The signature of the JWT can be verified by the public key used in the global parameters of the rule. This public key in PEM format can be exported of the Idpp and imported into the endpoint application.