{ "info": { "_postman_id": "8442113d-3d49-4c34-adc0-8d4562bac3d2", "name": "Adobe IO Token", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", "_exporter_id": "17913394" }, "item": [ { "name": "INIT: Load Crypto Library for RS256", "event": [ { "listen": "test", "script": { "exec": [ "postman.setGlobalVariable(\"jsrsasign-js\", responseBody);", "", "pm.test(\"Status code is 200\", function () {", " pm.response.to.have.status(200);", "});" ], "type": "text/javascript" } } ], "request": { "method": "GET", "header": [], "url": { "raw": "http://kjur.github.io/jsrsasign/jsrsasign-latest-all-min.js", "protocol": "http", "host": [ "kjur", "github", "io" ], "path": [ "jsrsasign", "jsrsasign-latest-all-min.js" ] }, "description": "Load the RSA-Sign Crypto LIbrary in a global environment variable\n\nSource: http://kjur.github.io/jsrsasign/jsrsasign-latest-all-min.js\n\nGithub: https://github.com/kjur/jsrsasign" }, "response": [] }, { "name": "IMS: JWT Generate + Auth", "event": [ { "listen": "test", "script": { "exec": [ "var data = JSON.parse(responseBody);", "", "access_token = data.access_token;", "postman.setEnvironmentVariable(\"ACCESS_TOKEN\", access_token);", "", "// console.log(\"Access Token: \" + access_token);", "", "pm.test(\"Status code is 200\", function () {", " pm.response.to.have.status(200);", " pm.expect(access_token).to.be.not.empty;", "});" ], "type": "text/javascript" } }, { "listen": "prerequest", "script": { "exec": [ "// Tips from: https://github.com/kjur/jsrsasign/issues/199", "// https://github.com/kjur/jsrsasign/wiki/Tutorial-for-JWT-generation", "", "var navigator = {}; //fake a navigator object for the lib", "var window = {}; //fake a window object for the lib", "eval(postman.getGlobalVariable(\"jsrsasign-js\")); //import javascript jsrsasign", "", "", "var header = {", "\t\"alg\": \"RS256\"", "};", "", "var ims = postman.getEnvironmentVariable(\"IMS\");", "if(!ims.includes(\"http\")){", " ims = \"https://\" + ims;", " postman.setEnvironmentVariable(\"IMS\", ims);", "}", "var data = {", "\t\"exp\": Math.round(87000 + Date.now()/1000),", "\t\"iss\": postman.getEnvironmentVariable(\"ORG_ID\"),", "\t\"sub\": postman.getEnvironmentVariable(\"TECHNICAL_ACCOUNT_ID\"),", "\t\"aud\": postman.getEnvironmentVariable(\"IMS\")+\"/c/\"+postman.getEnvironmentVariable(\"CLIENT_ID\")", "};", "", "meta_scopes = postman.getEnvironmentVariable(\"META_SCOPE\")", "if(typeof meta_scopes == \"string\"){", " meta_scopes = meta_scopes.split(\",\");", "}", "", "meta_scopes.forEach(function(scope){", " var meta_scope = postman.getEnvironmentVariable(\"IMS\") + \"/s/\"+", " scope;", " data[meta_scope] = true;", "});", "", "var private_key = postman.getEnvironmentVariable(\"PRIVATE_KEY\");", "", "var sHeader = JSON.stringify(header);", "var sPayload = JSON.stringify(data);", "", "var sJWT = KJUR.jws.JWS.sign(\"RS256\", sHeader, sPayload, private_key);", "", "console.log(sPayload);", "console.log(sJWT);", "", "postman.setEnvironmentVariable(\"JWT_TOKEN\", sJWT);" ], "type": "text/javascript" } } ], "request": { "method": "POST", "header": [], "body": { "mode": "formdata", "formdata": [ { "key": "client_id", "value": "{{CLIENT_ID}}", "type": "text" }, { "key": "client_secret", "value": "{{CLIENT_SECRET}}", "type": "text" }, { "key": "jwt_token", "value": "{{JWT_TOKEN}}", "type": "text" } ] }, "url": { "raw": "{{IMS}}/ims/exchange/jwt/", "host": [ "{{IMS}}" ], "path": [ "ims", "exchange", "jwt", "" ] }, "description": "Generate a JWT token using the Crypto RS256\nSend to IMS for access_token" }, "response": [] }, { "name": "IMS: Get Profile", "event": [ { "listen": "test", "script": { "exec": [ "pm.test(\"Status code is 200\", function () {", " pm.response.to.have.status(200);", "});" ], "type": "text/javascript" } } ], "request": { "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{ACCESS_TOKEN}}" } ], "url": { "raw": "{{IMS}}/ims/profile/v1", "host": [ "{{IMS}}" ], "path": [ "ims", "profile", "v1" ] } }, "response": [] } ] }