{"id":3264,"date":"2025-12-14T15:50:13","date_gmt":"2025-12-14T14:50:13","guid":{"rendered":"https:\/\/france.magicsoftware.com\/blog\/?p=3264"},"modified":"2025-12-30T16:12:53","modified_gmt":"2025-12-30T15:12:53","slug":"amazon-cognito-magic-xpi","status":"publish","type":"post","link":"https:\/\/france.magicsoftware.com\/blog\/magic-xpi\/amazon-cognito-magic-xpi\/","title":{"rendered":"Amazon Cognito &#8211; Magic xpi"},"content":{"rendered":"\n<p><strong>Goal : Configure OAuth2 Authentication for Magic xpi RESTful API Service using Amazon Cognito<\/strong><\/p>\n\n\n\n<p>1\/ Sign on your AWS portal and create a user pool in Cognito<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"348\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG2-1024x348.png\" alt=\"\" class=\"wp-image-3266\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG2-1024x348.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG2-300x102.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG2-768x261.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG2.png 1263w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>In this user pool, create an application client (MagicxpiAPP)<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"283\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG3-1024x283.png\" alt=\"\" class=\"wp-image-3267\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG3-1024x283.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG3-300x83.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG3-768x213.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG3.png 1261w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Copy the client id and client secret<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"365\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG4-1024x365.png\" alt=\"\" class=\"wp-image-3269\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG4-1024x365.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG4-300x107.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG4-768x274.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG4.png 1240w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Return to user pool level and click on Domain<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"557\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG5-1024x557.png\" alt=\"\" class=\"wp-image-3270\" style=\"width:796px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG5-1024x557.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG5-300x163.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG5-768x418.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG5.png 1341w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Scroll down and Create a resource server<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"444\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG6-1024x444.png\" alt=\"\" class=\"wp-image-3272\" style=\"width:733px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG6-1024x444.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG6-300x130.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG6-768x333.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG6-1536x666.png 1536w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG6.png 1820w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Create a scope inside this resource server<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"419\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG7-1024x419.png\" alt=\"\" class=\"wp-image-3274\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG7-1024x419.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG7-300x123.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG7-768x314.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG7-1536x629.png 1536w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG7.png 1698w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>Return to App clients level, scroll down and copy the information to get an access token from aws Cognito<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"569\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG8-1-1024x569.png\" alt=\"\" class=\"wp-image-3277\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG8-1-1024x569.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG8-1-300x167.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG8-1-768x427.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG8-1.png 1478w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>2\/ Check with Postman that you can get an access token like below<\/p>\n\n\n\n<p>make a POST on your token URL and pass in the body (clientid, client secret, grant type and scope) using an urlencoded format<\/p>\n\n\n\n<p>use the information from the previous step.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"561\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG9-1024x561.png\" alt=\"\" class=\"wp-image-3279\" style=\"width:699px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG9-1024x561.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG9-300x164.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG9-768x421.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG9.png 1238w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>3\/ Check in the token that you get the <strong>scope<\/strong> and the <strong>iss<\/strong> (issuer)<\/p>\n\n\n\n<p>You can use the website : https:\/\/www.jwt.io (copy and paste the bearer token)<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"636\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG10-1024x636.png\" alt=\"\" class=\"wp-image-3280\" style=\"aspect-ratio:1.610093672337985;width:748px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG10-1024x636.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG10-300x186.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG10-768x477.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG10.png 1394w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>4\/ Create an xpi project and create a RESTFul API service like below<\/p>\n\n\n\n<p>(*) In my example, i use 6443 for the apache\/tomcat port (can be change in the server.xml file in the apache conf directory)<\/p>\n\n\n\n<p>Set the Security to <strong>OAuth2<\/strong><\/p>\n\n\n\n<p>Create GetTime path.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1020\" height=\"700\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AZ_OAUTH2_MG17.png\" alt=\"\" class=\"wp-image-3235\" style=\"width:564px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AZ_OAUTH2_MG17.png 1020w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AZ_OAUTH2_MG17-300x206.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AZ_OAUTH2_MG17-768x527.png 768w\" sizes=\"auto, (max-width: 1020px) 100vw, 1020px\" \/><\/figure>\n\n\n\n<p>5\/ Create a new flow and use a RESTFul API connector  in the trigger area<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"763\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AZ_OAUTH2_MG18-1024x763.png\" alt=\"\" class=\"wp-image-3236\" style=\"aspect-ratio:1.3420777784604043;width:530px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AZ_OAUTH2_MG18-1024x763.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AZ_OAUTH2_MG18-300x224.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AZ_OAUTH2_MG18-768x572.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AZ_OAUTH2_MG18.png 1051w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>In the last step of your flow, add a Flow Data to update C.UserBlob variable with a simple json containing the time (&lsquo;{\u00ab\u00a0time\u00a0\u00bb:\u00a0\u00bb&lsquo;&amp;TStr (Time (),&rsquo;HH:MM:SS&rsquo;)&amp;'\u00a0\u00bb}&rsquo;) and C.UserCode with 201.<\/p>\n\n\n\n<p>6\/ Open the XML service definition file of your RESTFul service  under your project directory<\/p>\n\n\n\n<p>(ex : &lt;Magicxpi installation directory&gt;Runtime\\projects\\OAuth2_Keycloak\\OAuth2_Keycloak\\RESTful API\\MyRESTfulAPI)<\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"673\" height=\"203\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AZ_OAUTH2_MG19.png\" alt=\"\" class=\"wp-image-3238\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AZ_OAUTH2_MG19.png 673w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AZ_OAUTH2_MG19-300x90.png 300w\" sizes=\"auto, (max-width: 673px) 100vw, 673px\" \/><\/figure>\n\n\n\n<p><strong>Add the oauth2 resource server in the securityDefinitions<\/strong><\/p>\n\n\n\n<p>Use the iss value from the token (step 3) for the issuerUri<\/p>\n\n\n\n<p><strong>Add the security role (\u00ab\u00a0default-m2m-resource-server-m5jgoo\/read\u00a0\u00bb) (step 3) for the path you want to protect<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"330\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG12-1024x330.png\" alt=\"\" class=\"wp-image-3291\" style=\"aspect-ratio:3.103129883043705;width:894px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG12-1024x330.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG12-300x97.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG12-768x248.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG12.png 1537w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>7\/ Copy the war file (xpiREST.war) from your installation directory (ex: &lt;Magicxpi installation directory&gt;\\Runtime\\addon_connectors\\RESTfulAPI\\servicefiles to your webapps apache directory (ex: &lt;Magicxpi installation directory&gt;\\Runtime\\apache-tomcat\\webapps)<\/p>\n\n\n\n<p class=\"has-medium-font-size\"><strong>!! Use the last version of the war file<\/strong> (you can get it from the Magic support)<\/p>\n\n\n\n<p>8\/ Start your apache server (startup.bat) from your apache directory (ex : &lt;Magicxpi installation directory>\\Runtime\\apache-tomcat\\bin) using command line (Admin mode)<\/p>\n\n\n\n<p>You should see the xpiREST folder created.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"909\" height=\"261\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG14.png\" alt=\"\" class=\"wp-image-3357\" style=\"aspect-ratio:3.4829072621684727;width:623px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG14.png 909w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG14-300x86.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG14-768x221.png 768w\" sizes=\"auto, (max-width: 909px) 100vw, 909px\" \/><\/figure>\n\n\n\n<p>9\/ Copy the service definition file from step6 to directory \u00ab\u00a0rest-services\u00a0\u00bb  of your apache\/tomcat <\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"683\" height=\"156\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AZ_OAUTH2_MG21.png\" alt=\"\" class=\"wp-image-3242\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AZ_OAUTH2_MG21.png 683w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AZ_OAUTH2_MG21-300x69.png 300w\" sizes=\"auto, (max-width: 683px) 100vw, 683px\" \/><\/figure>\n\n\n\n<p>10\/ Start your magic xpi project<\/p>\n\n\n\n<p>11\/ Use Postman to call Magic xpi service and use the bearer token you got from step 2\/ <\/p>\n\n\n\n<p>Set the Authorization header with the Bearer token<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"430\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AZ_OAUTH2_MG22-1024x430.png\" alt=\"\" class=\"wp-image-3244\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AZ_OAUTH2_MG22-1024x430.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AZ_OAUTH2_MG22-300x126.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AZ_OAUTH2_MG22-768x322.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AZ_OAUTH2_MG22.png 1289w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>You should receive status 201 with the time value in a json format.<\/p>\n\n\n\n<p>12\/ Set a wrong role in the service definition file in your apache directory<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"328\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG13-1024x328.png\" alt=\"\" class=\"wp-image-3294\" style=\"aspect-ratio:3.122052308132057;width:893px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG13-1024x328.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG13-300x96.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG13-768x246.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG13-1536x492.png 1536w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG13.png 1553w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p>If you call again the service, you should get error status 403 Forbidden<\/p>\n\n\n\n<figure class=\"wp-block-image size-large is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"435\" src=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AZ_OAUTH2_MG24-1024x435.png\" alt=\"\" class=\"wp-image-3246\" style=\"aspect-ratio:2.354156189381421;width:782px;height:auto\" srcset=\"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AZ_OAUTH2_MG24-1024x435.png 1024w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AZ_OAUTH2_MG24-300x128.png 300w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AZ_OAUTH2_MG24-768x326.png 768w, https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AZ_OAUTH2_MG24.png 1275w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/figure>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Goal : Configure OAuth2 Authentication for Magic xpi RESTful API Service using Amazon Cognito 1\/ Sign on your AWS portal and create a user pool in Cognito In this user pool, create an application client (MagicxpiAPP) Copy the client id and client secret Return to user pool level and click on Domain Scroll down and [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":3265,"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":[35,92,4,27],"tags":[11,14],"class_list":["post-3264","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-magic-xpi-magic-xpi","category-cognito","category-magic-xpi","category-oauth2","tag-azure","tag-magic-xpi"],"aioseo_notices":[],"jetpack_featured_media_url":"https:\/\/france.magicsoftware.com\/blog\/wp-content\/uploads\/2025\/12\/AWS_Cognito_MG1.png","_links":{"self":[{"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/posts\/3264","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=3264"}],"version-history":[{"count":21,"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/posts\/3264\/revisions"}],"predecessor-version":[{"id":3358,"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/posts\/3264\/revisions\/3358"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/media\/3265"}],"wp:attachment":[{"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/media?parent=3264"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/categories?post=3264"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/france.magicsoftware.com\/blog\/wp-json\/wp\/v2\/tags?post=3264"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}