{"id":668,"date":"2024-05-23T10:59:06","date_gmt":"2024-05-23T09:59:06","guid":{"rendered":"https:\/\/france.magicsoftware.com\/blog\/?p=668"},"modified":"2025-12-10T15:22:32","modified_gmt":"2025-12-10T14:22:32","slug":"magic-xpi-and-keycloak-iam","status":"publish","type":"post","link":"https:\/\/france.magicsoftware.com\/blog\/magic-xpi\/magic-xpi-and-keycloak-iam\/","title":{"rendered":"KEYCLOAK IAM &#8211; Magic xpi"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><strong>Goal : Configure OAuth2 Authentication for Magic xpi RESTful API Service using KeyCloak Identity Access Management<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Prerequisites :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Access to a Keycloak server <a href=\"https:\/\/www.keycloak.org\/\" title=\"\">https:\/\/www.keycloak.org\/<\/a><\/li>\n\n\n\n<li>Apache tomcat<\/li>\n\n\n\n<li>Magic xpi<\/li>\n\n\n\n<li>Postman<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">1\/ keyCloak Server Installation<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Download and unzip keycloak server <\/p>\n\n\n\n<p class=\"wp-block-paragraph\">install java version \u00ab\u00a017.0.11\u00a0\u00bb 2024-04-16 LTS<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Start Keycloak server (Dev environment) : kc start-dev<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/1-1024x576.png\" alt=\"\" class=\"wp-image-684\" style=\"width:584px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/1-1024x576.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/1-300x169.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/1-768x432.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/1-1536x864.png 1536w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/1.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Browse : http:\/\/localhost:8080 and create Admin user<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/2-1024x576.png\" alt=\"\" class=\"wp-image-688\" style=\"width:514px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/2-1024x576.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/2-300x169.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/2-768x432.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/2-1536x864.png 1536w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/2.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">2\/ Keycloak settings<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Create Realm for Magic xpi<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/4-1024x576.png\" alt=\"\" class=\"wp-image-687\" style=\"width:528px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/4-1024x576.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/4-300x169.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/4-768x432.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/4-1536x864.png 1536w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/4.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"576\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/5-1024x576.png\" alt=\"\" class=\"wp-image-690\" style=\"width:659px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/5-1024x576.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/5-300x169.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/5-768x432.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/5-1536x864.png 1536w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/5.png 1920w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Create Magic xpi Client<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1920\" height=\"1080\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/6-1024x576.png\" alt=\"\" class=\"wp-image-692\" style=\"width:674px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/6-1024x576.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/6-300x169.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/6-768x432.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/6-1536x864.png 1536w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/6.png 1920w\" sizes=\"auto, (max-width: 1920px) 100vw, 1920px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"496\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateClient-1024x496.png\" alt=\"\" class=\"wp-image-776\" style=\"width:648px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateClient-1024x496.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateClient-300x145.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateClient-768x372.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateClient-1536x744.png 1536w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateClient.png 1606w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">3\/ Enter an URL redirection to Magic xpi RESTFul API  <\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"657\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateClient_2-1024x657.png\" alt=\"\" class=\"wp-image-777\" style=\"width:683px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateClient_2-1024x657.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateClient_2-300x192.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateClient_2-768x493.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateClient_2.png 1361w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Save the Client Secret<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"551\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateClient_3-1024x551.png\" alt=\"\" class=\"wp-image-779\" style=\"width:712px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateClient_3-1024x551.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateClient_3-300x161.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateClient_3-768x413.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateClient_3.png 1343w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">4\/ Create a Client Scope (magicxpiscope)<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"610\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateScope1-1024x610.png\" alt=\"\" class=\"wp-image-781\" style=\"width:705px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateScope1-1024x610.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateScope1-300x179.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateScope1-768x457.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateScope1.png 1313w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Create 2 mapper (UserProperty (boolean) and UserAttribute (custom atrribute)) (Add mapper By Configuration)<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"795\" height=\"840\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateScope2.png\" alt=\"\" class=\"wp-image-783\" style=\"width:384px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateScope2.png 795w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateScope2-284x300.png 284w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateScope2-768x811.png 768w\" sizes=\"auto, (max-width: 795px) 100vw, 795px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"738\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateScope3-1024x738.png\" alt=\"\" class=\"wp-image-785\" style=\"width:588px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateScope3-1024x738.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateScope3-300x216.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateScope3-768x554.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateScope3.png 1071w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">4\/ Add the client scope \u00ab\u00a0magicxpiscope\u00a0\u00bb to the client<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"510\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateScope4-1024x510.png\" alt=\"\" class=\"wp-image-788\" style=\"width:791px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateScope4-1024x510.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateScope4-300x149.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateScope4-768x382.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/CreateScope4.png 1420w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">4\/ Deploy Magic xpi Tomcat requester (<em>Magic xpi &#8211; RESTful API Provider Installation Instructions.pdf<\/em>)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Copy the file <strong>xpiREST.war<\/strong> from<strong>&lt;Magic xpi installation&gt;\\Runtime\\addon_connectors\\RESTfulAPI\\servicefiles<\/strong> to <strong>&lt;Magic xpi installation&gt;\\Runtime\\apache-tomcat\\webapps<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">We will use the Magic xpi Embedded Apache Tomcat (<strong>&lt;Magic xpi installation&gt;\\Runtime\\apache-tomcat<\/strong>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Change the Apache Tomcat port to 6443 in the server.xml file and start the server<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"617\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/apache1-1024x617.png\" alt=\"\" class=\"wp-image-725\" style=\"width:590px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/apache1-1024x617.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/apache1-300x181.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/apache1-768x463.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/apache1.png 1176w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>After starting the Apache server<\/strong> (&lt;xpi installation&gt;\\Runtime\\apache-tomcat\\bin\\<strong>startup.bat<\/strong>), <strong>xpiREST<\/strong> and <strong>rest-services<\/strong> will appear.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"860\" height=\"301\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/apache2.png\" alt=\"\" class=\"wp-image-727\" style=\"width:437px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/apache2.png 860w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/apache2-300x105.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/apache2-768x269.png 768w\" sizes=\"auto, (max-width: 860px) 100vw, 860px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"950\" height=\"383\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/apache3.png\" alt=\"\" class=\"wp-image-728\" style=\"width:464px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/apache3.png 950w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/apache3-300x121.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/apache3-768x310.png 768w\" sizes=\"auto, (max-width: 950px) 100vw, 950px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">5\/ Create a Magic xpi project including a RESTFul Service<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"442\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/xpi1-1024x442.png\" alt=\"\" class=\"wp-image-716\" style=\"width:604px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/xpi1-1024x442.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/xpi1-300x129.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/xpi1-768x331.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/xpi1-1536x663.png 1536w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/xpi1.png 1877w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Define 2 methods<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"349\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/xpi2-1024x349.png\" alt=\"\" class=\"wp-image-718\" style=\"width:632px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/xpi2-1024x349.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/xpi2-300x102.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/xpi2-768x262.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/xpi2-1536x524.png 1536w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/xpi2.png 1643w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Under &lt;xpi project&gt;\\RESTful API\\&lt;ServiceNameFolder&gt;. (ex: C:\\MSE\\Magicxpi414\\Runtime\\projects\\OAuth2_Keycloak\\OAuth2_Keycloak\\RESTful API\\MyRESTfulAPI)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">you will find the Service Definition File (<strong>&lt;Project Name&gt;_&lt;Service Name&gt;_serviceDefinition.xml<\/strong>) (C:\\MSE\\Magicxpi414\\Runtime\\projects\\OAuth2_Keycloak\\OAuth2_Keycloak\\RESTful API\\MyRESTfulAPI\\OAuth2_Keycloak_MyRESTfulAPI_serviceDefinition.xml)<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Add the OAuth2 Issuer<\/strong> (http:\/\/localhost:8080\/realms\/Magicxpi) and the security role =&gt; client scope for each method<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"406\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/Servicedef1-1024x406.png\" alt=\"\" class=\"wp-image-790\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/Servicedef1-1024x406.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/Servicedef1-300x119.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/Servicedef1-768x304.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/Servicedef1.png 1461w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">6\/ Copy the Service Definition file from <strong>&lt;xpi project&gt;\\RESTful API\\&lt;ServiceNameFolder&gt;<\/strong> to <strong>&lt;Magic xpi installation&gt;\\Runtime\\apache-tomcat\\rest-services<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"725\" height=\"164\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/xpi4.png\" alt=\"\" class=\"wp-image-734\" style=\"width:506px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/xpi4.png 725w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/xpi4-300x68.png 300w\" sizes=\"auto, (max-width: 725px) 100vw, 725px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">7\/ Test using Postman<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Make a POST on <strong>http:\/\/localhost:8080\/realms\/Magicxpi\/protocol\/openid-connect\/token<\/strong> with these credentials with <strong>scope set to <\/strong>openid email address profile <strong>magicxpiscope<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Check in the response that you get the clientscope that you want<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"672\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/postman1-1-1024x672.png\" alt=\"\" class=\"wp-image-794\" style=\"width:692px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/postman1-1-1024x672.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/postman1-1-300x197.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/postman1-1-768x504.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/postman1-1.png 1168w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">In the response you will get the \u00ab\u00a0access_token\u00a0\u00bb and the \u00ab\u00a0refresh_token\u00a0\u00bb , if you want to test a call to the Magic xpi RESTFUl service, you can use access_token in the authorization header<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"421\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/Postman2-1024x421.png\" alt=\"\" class=\"wp-image-741\" style=\"width:642px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/Postman2-1024x421.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/Postman2-300x123.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/Postman2-768x316.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/Postman2.png 1393w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">(*) You got Status 201 because in the Magic xpi Flow, i put 201 in the response status (C.UserCode)<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"446\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/xpi6-1024x446.png\" alt=\"\" class=\"wp-image-742\" style=\"width:628px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/xpi6-1024x446.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/xpi6-300x131.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/xpi6-768x334.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/xpi6-1536x669.png 1536w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/xpi6.png 1856w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">(**) if you set a wrong role in the service definition file, you get a 403 Forbidden<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"795\" height=\"589\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/postman3.png\" alt=\"\" class=\"wp-image-799\" style=\"width:457px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/postman3.png 795w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/postman3-300x222.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/postman3-768x569.png 768w\" sizes=\"auto, (max-width: 795px) 100vw, 795px\" \/><\/figure>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"384\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/postman2-1024x384.png\" alt=\"\" class=\"wp-image-797\" style=\"width:639px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/postman2-1024x384.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/postman2-300x113.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/postman2-768x288.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/06\/postman2.png 1332w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">(***) If you pass a wrong Bearer token or if the token is expired then you get 401 Unauthorized<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"431\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/Postman3-1024x431.png\" alt=\"\" class=\"wp-image-749\" style=\"width:626px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/Postman3-1024x431.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/Postman3-300x126.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/Postman3-768x323.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/Postman3.png 1395w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">8\/ By default, the Access token expired after 5min, you can change this setting in the KeyCloak console<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"588\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/14-1024x588.png\" alt=\"\" class=\"wp-image-760\" style=\"width:565px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/14-1024x588.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/14-300x172.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/14-768x441.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/14.png 1402w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n","protected":false},"excerpt":{"rendered":"<p>Goal : Configure OAuth2 Authentication for Magic xpi RESTful API Service using KeyCloak Identity Access Management Prerequisites : 1\/ keyCloak Server Installation Download and unzip keycloak server install java version \u00ab\u00a017.0.11\u00a0\u00bb 2024-04-16 LTS Start Keycloak server (Dev environment) : kc start-dev Browse : http:\/\/localhost:8080 and create Admin user 2\/ Keycloak settings Create Realm for Magic [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":669,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[4,27],"tags":[49,14],"class_list":["post-668","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-magic-xpi","category-oauth2","tag-keycloak","tag-magic-xpi"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.8 - aioseo.com -->\n\t<meta name=\"description\" content=\"Goal : Configure OAuth2 Authentication for Magic xpi RESTful API Service using KeyCloak Identity Access Management Prerequisites : Access to a Keycloak server https:\/\/www.keycloak.org\/ Apache tomcat Magic xpi Postman 1\/ keyCloak Server Installation Download and unzip keycloak server install java version &quot;17.0.11&quot; 2024-04-16 LTS Start Keycloak server (Dev environment) : kc start-dev Browse : http:\/\/localhost:8080\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Sa\u00e2d Alem\"\/>\n\t<meta name=\"google-site-verification\" content=\"5yLZLt_RgZVqkETQDrOlMUHaNTra2i5W8dtHQoCMueY\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/france.magicsoftware.com\/blog\/magic-xpi\/magic-xpi-and-keycloak-iam\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.8\" \/>\n\t\t<meta property=\"og:locale\" content=\"fr_FR\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Le Blog Techno | Magic Software France\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"KEYCLOAK IAM \u2013 Magic xpi | Le Blog Techno\" \/>\n\t\t<meta property=\"og:description\" content=\"Goal : Configure OAuth2 Authentication for Magic xpi RESTful API Service using KeyCloak Identity Access Management Prerequisites : Access to a Keycloak server https:\/\/www.keycloak.org\/ Apache tomcat Magic xpi Postman 1\/ keyCloak Server Installation Download and unzip keycloak server install java version &quot;17.0.11&quot; 2024-04-16 LTS Start Keycloak server (Dev environment) : kc start-dev Browse : http:\/\/localhost:8080\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/france.magicsoftware.com\/blog\/magic-xpi\/magic-xpi-and-keycloak-iam\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/Magic.ico\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/Magic.ico\" \/>\n\t\t<meta property=\"og:image:width\" content=\"16\" \/>\n\t\t<meta property=\"og:image:height\" content=\"16\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2024-05-23T09:59:06+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2025-12-10T14:22:32+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/MagicSoftwareEnterprises\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:site\" content=\"@MagicSoftware\" \/>\n\t\t<meta name=\"twitter:title\" content=\"KEYCLOAK IAM \u2013 Magic xpi | Le Blog Techno\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Goal : Configure OAuth2 Authentication for Magic xpi RESTful API Service using KeyCloak Identity Access Management Prerequisites : Access to a Keycloak server https:\/\/www.keycloak.org\/ Apache tomcat Magic xpi Postman 1\/ keyCloak Server Installation Download and unzip keycloak server install java version &quot;17.0.11&quot; 2024-04-16 LTS Start Keycloak server (Dev environment) : kc start-dev Browse : http:\/\/localhost:8080\" \/>\n\t\t<meta name=\"twitter:creator\" content=\"@MagicSoftware\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/Magic.ico\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BlogPosting\",\"@id\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/magic-xpi\\\/magic-xpi-and-keycloak-iam\\\/#blogposting\",\"name\":\"KEYCLOAK IAM \\u2013 Magic xpi | Le Blog Techno\",\"headline\":\"KEYCLOAK IAM &#8211; Magic xpi\",\"author\":{\"@id\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/author\\\/saad\\\/#author\"},\"publisher\":{\"@id\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/#organization\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/05\\\/keycloak.png\",\"width\":680,\"height\":131},\"datePublished\":\"2024-05-23T10:59:06+01:00\",\"dateModified\":\"2025-12-10T15:22:32+01:00\",\"inLanguage\":\"fr-FR\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/magic-xpi\\\/magic-xpi-and-keycloak-iam\\\/#webpage\"},\"isPartOf\":{\"@id\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/magic-xpi\\\/magic-xpi-and-keycloak-iam\\\/#webpage\"},\"articleSection\":\"Magic xpi, OAuth2, keycloak, Magic xpi\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/magic-xpi\\\/magic-xpi-and-keycloak-iam\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog#listItem\",\"position\":1,\"name\":\"Domicile\",\"item\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/category\\\/magic-xpi\\\/#listItem\",\"name\":\"Magic xpi\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/category\\\/magic-xpi\\\/#listItem\",\"position\":2,\"name\":\"Magic xpi\",\"item\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/category\\\/magic-xpi\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/category\\\/magic-xpi\\\/oauth2\\\/#listItem\",\"name\":\"OAuth2\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog#listItem\",\"name\":\"Domicile\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/category\\\/magic-xpi\\\/oauth2\\\/#listItem\",\"position\":3,\"name\":\"OAuth2\",\"item\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/category\\\/magic-xpi\\\/oauth2\\\/\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/magic-xpi\\\/magic-xpi-and-keycloak-iam\\\/#listItem\",\"name\":\"KEYCLOAK IAM &#8211; Magic xpi\"},\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/category\\\/magic-xpi\\\/#listItem\",\"name\":\"Magic xpi\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/magic-xpi\\\/magic-xpi-and-keycloak-iam\\\/#listItem\",\"position\":4,\"name\":\"KEYCLOAK IAM &#8211; Magic xpi\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/category\\\/magic-xpi\\\/oauth2\\\/#listItem\",\"name\":\"OAuth2\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/#organization\",\"name\":\"Blog Magic France\",\"description\":\"Magic Software France\",\"url\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/\",\"telephone\":\"+33149105858\",\"logo\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/wp-content\\\/uploads\\\/2023\\\/11\\\/Magic.ico\",\"@id\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/magic-xpi\\\/magic-xpi-and-keycloak-iam\\\/#organizationLogo\",\"width\":16,\"height\":16},\"image\":{\"@id\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/magic-xpi\\\/magic-xpi-and-keycloak-iam\\\/#organizationLogo\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/MagicSoftwareEnterprises\",\"https:\\\/\\\/twitter.com\\\/MagicSoftware\",\"https:\\\/\\\/youtube.com\\\/MagicSoftware\",\"https:\\\/\\\/linkedin.com\\\/company\\\/magic-software-enterprises\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/author\\\/saad\\\/#author\",\"url\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/author\\\/saad\\\/\",\"name\":\"Sa\\u00e2d Alem\",\"image\":{\"@type\":\"ImageObject\",\"@id\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/magic-xpi\\\/magic-xpi-and-keycloak-iam\\\/#authorImage\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/38fae53569553d87ce6ffb3b936e4df6feecf6069ddb238526105d8d906273c4?s=96&d=mm&r=g\",\"width\":96,\"height\":96,\"caption\":\"Sa\\u00e2d Alem\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/magic-xpi\\\/magic-xpi-and-keycloak-iam\\\/#webpage\",\"url\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/magic-xpi\\\/magic-xpi-and-keycloak-iam\\\/\",\"name\":\"KEYCLOAK IAM \\u2013 Magic xpi | Le Blog Techno\",\"description\":\"Goal : Configure OAuth2 Authentication for Magic xpi RESTful API Service using KeyCloak Identity Access Management Prerequisites : Access to a Keycloak server https:\\\/\\\/www.keycloak.org\\\/ Apache tomcat Magic xpi Postman 1\\\/ keyCloak Server Installation Download and unzip keycloak server install java version \\\"17.0.11\\\" 2024-04-16 LTS Start Keycloak server (Dev environment) : kc start-dev Browse : http:\\\/\\\/localhost:8080\",\"inLanguage\":\"fr-FR\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/magic-xpi\\\/magic-xpi-and-keycloak-iam\\\/#breadcrumblist\"},\"author\":{\"@id\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/author\\\/saad\\\/#author\"},\"creator\":{\"@id\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/author\\\/saad\\\/#author\"},\"image\":{\"@type\":\"ImageObject\",\"url\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/wp-content\\\/uploads\\\/2024\\\/05\\\/keycloak.png\",\"@id\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/magic-xpi\\\/magic-xpi-and-keycloak-iam\\\/#mainImage\",\"width\":680,\"height\":131},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/magic-xpi\\\/magic-xpi-and-keycloak-iam\\\/#mainImage\"},\"datePublished\":\"2024-05-23T10:59:06+01:00\",\"dateModified\":\"2025-12-10T15:22:32+01:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/\",\"name\":\"Blog Magic France\",\"description\":\"Magic Software France\",\"inLanguage\":\"fr-FR\",\"publisher\":{\"@id\":\"https:\\\/\\\/france.magicsoftware.com\\\/blog\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"KEYCLOAK IAM \u2013 Magic xpi | Le Blog Techno","description":"Goal : Configure OAuth2 Authentication for Magic xpi RESTful API Service using KeyCloak Identity Access Management Prerequisites : Access to a Keycloak server https:\/\/www.keycloak.org\/ Apache tomcat Magic xpi Postman 1\/ keyCloak Server Installation Download and unzip keycloak server install java version \"17.0.11\" 2024-04-16 LTS Start Keycloak server (Dev environment) : kc start-dev Browse : http:\/\/localhost:8080","canonical_url":"https:\/\/france.magicsoftware.com\/blog\/magic-xpi\/magic-xpi-and-keycloak-iam\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"google-site-verification":"5yLZLt_RgZVqkETQDrOlMUHaNTra2i5W8dtHQoCMueY","miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BlogPosting","@id":"https:\/\/france.magicsoftware.com\/blog\/magic-xpi\/magic-xpi-and-keycloak-iam\/#blogposting","name":"KEYCLOAK IAM \u2013 Magic xpi | Le Blog Techno","headline":"KEYCLOAK IAM &#8211; Magic xpi","author":{"@id":"https:\/\/france.magicsoftware.com\/blog\/author\/saad\/#author"},"publisher":{"@id":"https:\/\/france.magicsoftware.com\/blog\/#organization"},"image":{"@type":"ImageObject","url":"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/keycloak.png","width":680,"height":131},"datePublished":"2024-05-23T10:59:06+01:00","dateModified":"2025-12-10T15:22:32+01:00","inLanguage":"fr-FR","mainEntityOfPage":{"@id":"https:\/\/france.magicsoftware.com\/blog\/magic-xpi\/magic-xpi-and-keycloak-iam\/#webpage"},"isPartOf":{"@id":"https:\/\/france.magicsoftware.com\/blog\/magic-xpi\/magic-xpi-and-keycloak-iam\/#webpage"},"articleSection":"Magic xpi, OAuth2, keycloak, Magic xpi"},{"@type":"BreadcrumbList","@id":"https:\/\/france.magicsoftware.com\/blog\/magic-xpi\/magic-xpi-and-keycloak-iam\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/france.magicsoftware.com\/blog#listItem","position":1,"name":"Domicile","item":"https:\/\/france.magicsoftware.com\/blog","nextItem":{"@type":"ListItem","@id":"https:\/\/france.magicsoftware.com\/blog\/category\/magic-xpi\/#listItem","name":"Magic xpi"}},{"@type":"ListItem","@id":"https:\/\/france.magicsoftware.com\/blog\/category\/magic-xpi\/#listItem","position":2,"name":"Magic xpi","item":"https:\/\/france.magicsoftware.com\/blog\/category\/magic-xpi\/","nextItem":{"@type":"ListItem","@id":"https:\/\/france.magicsoftware.com\/blog\/category\/magic-xpi\/oauth2\/#listItem","name":"OAuth2"},"previousItem":{"@type":"ListItem","@id":"https:\/\/france.magicsoftware.com\/blog#listItem","name":"Domicile"}},{"@type":"ListItem","@id":"https:\/\/france.magicsoftware.com\/blog\/category\/magic-xpi\/oauth2\/#listItem","position":3,"name":"OAuth2","item":"https:\/\/france.magicsoftware.com\/blog\/category\/magic-xpi\/oauth2\/","nextItem":{"@type":"ListItem","@id":"https:\/\/france.magicsoftware.com\/blog\/magic-xpi\/magic-xpi-and-keycloak-iam\/#listItem","name":"KEYCLOAK IAM &#8211; Magic xpi"},"previousItem":{"@type":"ListItem","@id":"https:\/\/france.magicsoftware.com\/blog\/category\/magic-xpi\/#listItem","name":"Magic xpi"}},{"@type":"ListItem","@id":"https:\/\/france.magicsoftware.com\/blog\/magic-xpi\/magic-xpi-and-keycloak-iam\/#listItem","position":4,"name":"KEYCLOAK IAM &#8211; Magic xpi","previousItem":{"@type":"ListItem","@id":"https:\/\/france.magicsoftware.com\/blog\/category\/magic-xpi\/oauth2\/#listItem","name":"OAuth2"}}]},{"@type":"Organization","@id":"https:\/\/france.magicsoftware.com\/blog\/#organization","name":"Blog Magic France","description":"Magic Software France","url":"https:\/\/france.magicsoftware.com\/blog\/","telephone":"+33149105858","logo":{"@type":"ImageObject","url":"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/Magic.ico","@id":"https:\/\/france.magicsoftware.com\/blog\/magic-xpi\/magic-xpi-and-keycloak-iam\/#organizationLogo","width":16,"height":16},"image":{"@id":"https:\/\/france.magicsoftware.com\/blog\/magic-xpi\/magic-xpi-and-keycloak-iam\/#organizationLogo"},"sameAs":["https:\/\/www.facebook.com\/MagicSoftwareEnterprises","https:\/\/twitter.com\/MagicSoftware","https:\/\/youtube.com\/MagicSoftware","https:\/\/linkedin.com\/company\/magic-software-enterprises"]},{"@type":"Person","@id":"https:\/\/france.magicsoftware.com\/blog\/author\/saad\/#author","url":"https:\/\/france.magicsoftware.com\/blog\/author\/saad\/","name":"Sa\u00e2d Alem","image":{"@type":"ImageObject","@id":"https:\/\/france.magicsoftware.com\/blog\/magic-xpi\/magic-xpi-and-keycloak-iam\/#authorImage","url":"https:\/\/secure.gravatar.com\/avatar\/38fae53569553d87ce6ffb3b936e4df6feecf6069ddb238526105d8d906273c4?s=96&d=mm&r=g","width":96,"height":96,"caption":"Sa\u00e2d Alem"}},{"@type":"WebPage","@id":"https:\/\/france.magicsoftware.com\/blog\/magic-xpi\/magic-xpi-and-keycloak-iam\/#webpage","url":"https:\/\/france.magicsoftware.com\/blog\/magic-xpi\/magic-xpi-and-keycloak-iam\/","name":"KEYCLOAK IAM \u2013 Magic xpi | Le Blog Techno","description":"Goal : Configure OAuth2 Authentication for Magic xpi RESTful API Service using KeyCloak Identity Access Management Prerequisites : Access to a Keycloak server https:\/\/www.keycloak.org\/ Apache tomcat Magic xpi Postman 1\/ keyCloak Server Installation Download and unzip keycloak server install java version \"17.0.11\" 2024-04-16 LTS Start Keycloak server (Dev environment) : kc start-dev Browse : http:\/\/localhost:8080","inLanguage":"fr-FR","isPartOf":{"@id":"https:\/\/france.magicsoftware.com\/blog\/#website"},"breadcrumb":{"@id":"https:\/\/france.magicsoftware.com\/blog\/magic-xpi\/magic-xpi-and-keycloak-iam\/#breadcrumblist"},"author":{"@id":"https:\/\/france.magicsoftware.com\/blog\/author\/saad\/#author"},"creator":{"@id":"https:\/\/france.magicsoftware.com\/blog\/author\/saad\/#author"},"image":{"@type":"ImageObject","url":"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/keycloak.png","@id":"https:\/\/france.magicsoftware.com\/blog\/magic-xpi\/magic-xpi-and-keycloak-iam\/#mainImage","width":680,"height":131},"primaryImageOfPage":{"@id":"https:\/\/france.magicsoftware.com\/blog\/magic-xpi\/magic-xpi-and-keycloak-iam\/#mainImage"},"datePublished":"2024-05-23T10:59:06+01:00","dateModified":"2025-12-10T15:22:32+01:00"},{"@type":"WebSite","@id":"https:\/\/france.magicsoftware.com\/blog\/#website","url":"https:\/\/france.magicsoftware.com\/blog\/","name":"Blog Magic France","description":"Magic Software France","inLanguage":"fr-FR","publisher":{"@id":"https:\/\/france.magicsoftware.com\/blog\/#organization"}}]},"og:locale":"fr_FR","og:site_name":"Le Blog Techno | Magic Software France","og:type":"article","og:title":"KEYCLOAK IAM \u2013 Magic xpi | Le Blog Techno","og:description":"Goal : Configure OAuth2 Authentication for Magic xpi RESTful API Service using KeyCloak Identity Access Management Prerequisites : Access to a Keycloak server https:\/\/www.keycloak.org\/ Apache tomcat Magic xpi Postman 1\/ keyCloak Server Installation Download and unzip keycloak server install java version &quot;17.0.11&quot; 2024-04-16 LTS Start Keycloak server (Dev environment) : kc start-dev Browse : http:\/\/localhost:8080","og:url":"https:\/\/france.magicsoftware.com\/blog\/magic-xpi\/magic-xpi-and-keycloak-iam\/","og:image":"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/Magic.ico","og:image:secure_url":"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/Magic.ico","og:image:width":16,"og:image:height":16,"article:published_time":"2024-05-23T09:59:06+00:00","article:modified_time":"2025-12-10T14:22:32+00:00","article:publisher":"https:\/\/www.facebook.com\/MagicSoftwareEnterprises","twitter:card":"summary_large_image","twitter:site":"@MagicSoftware","twitter:title":"KEYCLOAK IAM \u2013 Magic xpi | Le Blog Techno","twitter:description":"Goal : Configure OAuth2 Authentication for Magic xpi RESTful API Service using KeyCloak Identity Access Management Prerequisites : Access to a Keycloak server https:\/\/www.keycloak.org\/ Apache tomcat Magic xpi Postman 1\/ keyCloak Server Installation Download and unzip keycloak server install java version &quot;17.0.11&quot; 2024-04-16 LTS Start Keycloak server (Dev environment) : kc start-dev Browse : http:\/\/localhost:8080","twitter:creator":"@MagicSoftware","twitter:image":"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2023\/11\/Magic.ico"},"aioseo_meta_data":{"post_id":"668","title":null,"description":null,"keywords":null,"keyphrases":{"focus":{"keyphrase":"","score":0,"analysis":{"keyphraseInTitle":{"score":0,"maxScore":9,"error":1}}},"additional":[]},"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":"","og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"BlogPosting","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":"-1","robots_max_videopreview":"-1","robots_max_imagepreview":"large","priority":null,"frequency":"default","local_seo":null,"breadcrumb_settings":null,"limit_modified_date":false,"ai":null,"created":"2024-05-23 09:57:08","updated":"2025-12-10 14:23:34","seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/france.magicsoftware.com\/blog\" title=\"Domicile\">Domicile<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/france.magicsoftware.com\/blog\/category\/magic-xpi\/\" title=\"Magic xpi\">Magic xpi<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/france.magicsoftware.com\/blog\/category\/magic-xpi\/oauth2\/\" title=\"OAuth2\">OAuth2<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tKEYCLOAK IAM \u2013 Magic xpi\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Domicile","link":"https:\/\/france.magicsoftware.com\/blog"},{"label":"Magic xpi","link":"https:\/\/france.magicsoftware.com\/blog\/category\/magic-xpi\/"},{"label":"OAuth2","link":"https:\/\/france.magicsoftware.com\/blog\/category\/magic-xpi\/oauth2\/"},{"label":"KEYCLOAK IAM &#8211; Magic xpi","link":"https:\/\/france.magicsoftware.com\/blog\/magic-xpi\/magic-xpi-and-keycloak-iam\/"}],"jetpack_featured_media_url":"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2024\/05\/keycloak.png","_links":{"self":[{"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/posts\/668","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/comments?post=668"}],"version-history":[{"count":75,"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/posts\/668\/revisions"}],"predecessor-version":[{"id":3263,"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/posts\/668\/revisions\/3263"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/media\/669"}],"wp:attachment":[{"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/media?parent=668"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/categories?post=668"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/tags?post=668"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}