{ "info": { "_postman_id": "8fbacb45-7382-4ac7-90f9-6a95f7ecaad3", "name": "SoloID API PP Demo", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", "_exporter_id": "12944750" }, "item": [ { "name": "Get service token for SoloID Authenticator API", "request": { "auth": { "type": "noauth" }, "method": "POST", "header": [], "body": { "mode": "urlencoded", "urlencoded": [ { "key": "grant_type", "value": "client_credentials", "type": "text" }, { "key": "scope", "value": "privilege_api", "type": "text" }, { "key": "client_id", "value": "6af73679-44bb-4923-a29f-148e32eab169", "type": "text" }, { "key": "client_secret", "value": "J95v9a5GbJLnvFsFDMZp9caEI3IqHCXTdahRAnVzuyUxCPeoSpbiKv35/3W03EZqs/lTQw9GANtVYkoOsp1XmA==", "type": "text" } ] }, "url": { "raw": "https://pp.netseidbroker.dk/op/connect/token", "protocol": "https", "host": [ "pp", "netseidbroker", "dk" ], "path": [ "op", "connect", "token" ] }, "description": "1: Get service token for organization DK00000002 API client \n2: Copy access_token over as Authorization Bearer header for the other calls" }, "response": [] }, { "name": "/api/sp/v2/flow appid (specific AppID)", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" }, { "key": "Accept", "value": "text/plain" } ], "body": { "mode": "raw", "raw": "{\r\n \"deviceList\": {\r\n \"deviceListType\": \"AppIds\",\r\n \"appIds\": [\r\n \"r91-116-119\"\r\n ]\r\n },\r\n \"approveText\": \"Approve flow started from PostMan 😉\"\r\n}", "options": { "raw": { "headerFamily": "json", "language": "json" } } }, "url": { "raw": "{{baseUrl}}/api/sp/v2/flow", "host": [ "{{baseUrl}}" ], "path": [ "api", "sp", "v2", "flow" ] }, "description": "AppID specific flow.\n\nRegister new PP app, follow steps on [https://demo-pp.soloid.dk,](https://demo-pp.soloid.dk,) get AppID and start flow!" }, "response": [ { "name": "Success", "originalRequest": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" }, { "key": "Accept", "value": "text/plain" }, { "description": "Added as a part of security scheme: apikey", "key": "Authorization", "value": "" } ], "body": { "mode": "raw", "raw": "{\n \"deviceList\": {\n \"deviceListType\": \"IdpDevice\",\n \"appIds\": [\n \"\",\n \"\"\n ],\n \"idp\": \"\",\n \"idpId\": \"\"\n },\n \"approveFlowType\": \"StepUp\",\n \"requestedIdp\": \"None\",\n \"approveText\": \"\",\n \"channelBindingOption\": \"None\",\n \"appSwitchUrlOnCompleted\": \"\"\n}", "options": { "raw": { "headerFamily": "json", "language": "json" } } }, "url": { "raw": "{{baseUrl}}/api/sp/v2/flow", "host": [ "{{baseUrl}}" ], "path": [ "api", "sp", "v2", "flow" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Content-Type", "value": "application/json" } ], "cookie": [], "body": "{\n \"flowId\": \"\",\n \"message\": \"\",\n \"initFlowStatus\": \"Error\"\n}" }, { "name": "Bad Request", "originalRequest": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" }, { "description": "Added as a part of security scheme: apikey", "key": "Authorization", "value": "" } ], "body": { "mode": "raw", "raw": "{\n \"deviceList\": {\n \"deviceListType\": \"IdpDevice\",\n \"appIds\": [\n \"\",\n \"\"\n ],\n \"idp\": \"\",\n \"idpId\": \"\"\n },\n \"approveFlowType\": \"StepUp\",\n \"requestedIdp\": \"None\",\n \"approveText\": \"\",\n \"channelBindingOption\": \"None\",\n \"appSwitchUrlOnCompleted\": \"\"\n}", "options": { "raw": { "headerFamily": "json", "language": "json" } } }, "url": { "raw": "{{baseUrl}}/api/sp/v2/flow", "host": [ "{{baseUrl}}" ], "path": [ "api", "sp", "v2", "flow" ] } }, "status": "Bad Request", "code": 400, "_postman_previewlanguage": "text", "header": [], "cookie": [], "body": "" }, { "name": "Unauthorized", "originalRequest": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" }, { "description": "Added as a part of security scheme: apikey", "key": "Authorization", "value": "" } ], "body": { "mode": "raw", "raw": "{\n \"deviceList\": {\n \"deviceListType\": \"IdpDevice\",\n \"appIds\": [\n \"\",\n \"\"\n ],\n \"idp\": \"\",\n \"idpId\": \"\"\n },\n \"approveFlowType\": \"StepUp\",\n \"requestedIdp\": \"None\",\n \"approveText\": \"\",\n \"channelBindingOption\": \"None\",\n \"appSwitchUrlOnCompleted\": \"\"\n}", "options": { "raw": { "headerFamily": "json", "language": "json" } } }, "url": { "raw": "{{baseUrl}}/api/sp/v2/flow", "host": [ "{{baseUrl}}" ], "path": [ "api", "sp", "v2", "flow" ] } }, "status": "Unauthorized", "code": 401, "_postman_previewlanguage": "text", "header": [], "cookie": [], "body": "" } ] }, { "name": "/api/sp/v2/flow (default step-up, example use for iframe flow)", "request": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" }, { "key": "Accept", "value": "text/plain" } ], "body": { "mode": "raw", "raw": "{\n \"approveText\": \"Approve flow started from PostMan 😉\"\n}", "options": { "raw": { "headerFamily": "json", "language": "json" } } }, "url": { "raw": "{{baseUrl}}/api/sp/v2/flow", "host": [ "{{baseUrl}}" ], "path": [ "api", "sp", "v2", "flow" ] }, "description": "In this flow, no AppID or eID specific device(s) is specified which creates an \"open\" flow.\n\nHere the user will have to either scan the SoloID Authenticator QR code for the flow, or appswitch.\n\nSetup the iframe using the generated flowId to have the QR/appswitch button shown for the user." }, "response": [ { "name": "Success", "originalRequest": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" }, { "key": "Accept", "value": "text/plain" }, { "description": "Added as a part of security scheme: apikey", "key": "Authorization", "value": "" } ], "body": { "mode": "raw", "raw": "{\n \"deviceList\": {\n \"deviceListType\": \"IdpDevice\",\n \"appIds\": [\n \"\",\n \"\"\n ],\n \"idp\": \"\",\n \"idpId\": \"\"\n },\n \"approveFlowType\": \"StepUp\",\n \"requestedIdp\": \"None\",\n \"approveText\": \"\",\n \"channelBindingOption\": \"None\",\n \"appSwitchUrlOnCompleted\": \"\"\n}", "options": { "raw": { "headerFamily": "json", "language": "json" } } }, "url": { "raw": "{{baseUrl}}/api/sp/v2/flow", "host": [ "{{baseUrl}}" ], "path": [ "api", "sp", "v2", "flow" ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Content-Type", "value": "application/json" } ], "cookie": [], "body": "{\n \"flowId\": \"\",\n \"message\": \"\",\n \"initFlowStatus\": \"Error\"\n}" }, { "name": "Bad Request", "originalRequest": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" }, { "description": "Added as a part of security scheme: apikey", "key": "Authorization", "value": "" } ], "body": { "mode": "raw", "raw": "{\n \"deviceList\": {\n \"deviceListType\": \"IdpDevice\",\n \"appIds\": [\n \"\",\n \"\"\n ],\n \"idp\": \"\",\n \"idpId\": \"\"\n },\n \"approveFlowType\": \"StepUp\",\n \"requestedIdp\": \"None\",\n \"approveText\": \"\",\n \"channelBindingOption\": \"None\",\n \"appSwitchUrlOnCompleted\": \"\"\n}", "options": { "raw": { "headerFamily": "json", "language": "json" } } }, "url": { "raw": "{{baseUrl}}/api/sp/v2/flow", "host": [ "{{baseUrl}}" ], "path": [ "api", "sp", "v2", "flow" ] } }, "status": "Bad Request", "code": 400, "_postman_previewlanguage": "text", "header": [], "cookie": [], "body": "" }, { "name": "Unauthorized", "originalRequest": { "method": "POST", "header": [ { "key": "Content-Type", "value": "application/json" }, { "description": "Added as a part of security scheme: apikey", "key": "Authorization", "value": "" } ], "body": { "mode": "raw", "raw": "{\n \"deviceList\": {\n \"deviceListType\": \"IdpDevice\",\n \"appIds\": [\n \"\",\n \"\"\n ],\n \"idp\": \"\",\n \"idpId\": \"\"\n },\n \"approveFlowType\": \"StepUp\",\n \"requestedIdp\": \"None\",\n \"approveText\": \"\",\n \"channelBindingOption\": \"None\",\n \"appSwitchUrlOnCompleted\": \"\"\n}", "options": { "raw": { "headerFamily": "json", "language": "json" } } }, "url": { "raw": "{{baseUrl}}/api/sp/v2/flow", "host": [ "{{baseUrl}}" ], "path": [ "api", "sp", "v2", "flow" ] } }, "status": "Unauthorized", "code": 401, "_postman_previewlanguage": "text", "header": [], "cookie": [], "body": "" } ] }, { "name": "/api/sp/v2/poll/:flowId", "request": { "method": "GET", "header": [ { "key": "Accept", "value": "text/plain" } ], "url": { "raw": "{{baseUrl}}/api/sp/v2/poll/:flowId", "host": [ "{{baseUrl}}" ], "path": [ "api", "sp", "v2", "poll", ":flowId" ], "variable": [ { "key": "flowId", "value": "", "description": "(Required) " } ] }, "description": "Poll API used by iframe, usable from browsers (CORS enabled) and usable from backends. Able to get basic flow state from flowId.\n\nUse corresponding GET /flow API in order to get result from flow." }, "response": [ { "name": "Success", "originalRequest": { "method": "GET", "header": [ { "key": "Accept", "value": "text/plain" }, { "description": "Added as a part of security scheme: apikey", "key": "Authorization", "value": "" } ], "url": { "raw": "{{baseUrl}}/api/sp/v2/poll/:flowId", "host": [ "{{baseUrl}}" ], "path": [ "api", "sp", "v2", "poll", ":flowId" ], "variable": [ { "key": "flowId" } ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Content-Type", "value": "application/json" } ], "cookie": [], "body": "{\n \"flowState\": \"Rejected\"\n}" }, { "name": "Bad Request", "originalRequest": { "method": "GET", "header": [ { "description": "Added as a part of security scheme: apikey", "key": "Authorization", "value": "" } ], "url": { "raw": "{{baseUrl}}/api/sp/v2/poll/:flowId", "host": [ "{{baseUrl}}" ], "path": [ "api", "sp", "v2", "poll", ":flowId" ], "variable": [ { "key": "flowId" } ] } }, "status": "Bad Request", "code": 400, "_postman_previewlanguage": "text", "header": [], "cookie": [], "body": "" }, { "name": "Unauthorized", "originalRequest": { "method": "GET", "header": [ { "description": "Added as a part of security scheme: apikey", "key": "Authorization", "value": "" } ], "url": { "raw": "{{baseUrl}}/api/sp/v2/poll/:flowId", "host": [ "{{baseUrl}}" ], "path": [ "api", "sp", "v2", "poll", ":flowId" ], "variable": [ { "key": "flowId" } ] } }, "status": "Unauthorized", "code": 401, "_postman_previewlanguage": "text", "header": [], "cookie": [], "body": "" } ] }, { "name": "/api/sp/v2/flow/:flowId", "request": { "method": "GET", "header": [ { "key": "Accept", "value": "text/plain" } ], "url": { "raw": "{{baseUrl}}/api/sp/v2/flow/:flowId", "host": [ "{{baseUrl}}" ], "path": [ "api", "sp", "v2", "flow", ":flowId" ], "variable": [ { "key": "flowId", "value": "", "description": "(Required) " } ] }, "description": "Used to get result from flow" }, "response": [ { "name": "Success", "originalRequest": { "method": "GET", "header": [ { "key": "Accept", "value": "text/plain" }, { "description": "Added as a part of security scheme: apikey", "key": "Authorization", "value": "" } ], "url": { "raw": "{{baseUrl}}/api/sp/v2/flow/:flowId", "host": [ "{{baseUrl}}" ], "path": [ "api", "sp", "v2", "flow", ":flowId" ], "variable": [ { "key": "flowId" } ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "json", "header": [ { "key": "Content-Type", "value": "application/json" } ], "cookie": [], "body": "{\n \"flowId\": \"\",\n \"flowState\": \"Pending\",\n \"appId\": \"\",\n \"idp\": \"\",\n \"idpIdentityId\": \"\"\n}" }, { "name": "Bad Request", "originalRequest": { "method": "GET", "header": [ { "description": "Added as a part of security scheme: apikey", "key": "Authorization", "value": "" } ], "url": { "raw": "{{baseUrl}}/api/sp/v2/flow/:flowId", "host": [ "{{baseUrl}}" ], "path": [ "api", "sp", "v2", "flow", ":flowId" ], "variable": [ { "key": "flowId" } ] } }, "status": "Bad Request", "code": 400, "_postman_previewlanguage": "text", "header": [], "cookie": [], "body": "" }, { "name": "Unauthorized", "originalRequest": { "method": "GET", "header": [ { "description": "Added as a part of security scheme: apikey", "key": "Authorization", "value": "" } ], "url": { "raw": "{{baseUrl}}/api/sp/v2/flow/:flowId", "host": [ "{{baseUrl}}" ], "path": [ "api", "sp", "v2", "flow", ":flowId" ], "variable": [ { "key": "flowId" } ] } }, "status": "Unauthorized", "code": 401, "_postman_previewlanguage": "text", "header": [], "cookie": [], "body": "" } ] }, { "name": "/api/sp/v2/flow/:flowId", "request": { "method": "DELETE", "header": [], "url": { "raw": "{{baseUrl}}/api/sp/v2/flow/:flowId", "host": [ "{{baseUrl}}" ], "path": [ "api", "sp", "v2", "flow", ":flowId" ], "variable": [ { "key": "flowId", "value": "", "description": "(Required) " } ] }, "description": "Deletes an active flow" }, "response": [ { "name": "Success", "originalRequest": { "method": "DELETE", "header": [ { "description": "Added as a part of security scheme: apikey", "key": "Authorization", "value": "" } ], "url": { "raw": "{{baseUrl}}/api/sp/v2/flow/:flowId", "host": [ "{{baseUrl}}" ], "path": [ "api", "sp", "v2", "flow", ":flowId" ], "variable": [ { "key": "flowId" } ] } }, "status": "OK", "code": 200, "_postman_previewlanguage": "text", "header": [], "cookie": [], "body": "" }, { "name": "Bad Request", "originalRequest": { "method": "DELETE", "header": [ { "description": "Added as a part of security scheme: apikey", "key": "Authorization", "value": "" } ], "url": { "raw": "{{baseUrl}}/api/sp/v2/flow/:flowId", "host": [ "{{baseUrl}}" ], "path": [ "api", "sp", "v2", "flow", ":flowId" ], "variable": [ { "key": "flowId" } ] } }, "status": "Bad Request", "code": 400, "_postman_previewlanguage": "text", "header": [], "cookie": [], "body": "" }, { "name": "Unauthorized", "originalRequest": { "method": "DELETE", "header": [ { "description": "Added as a part of security scheme: apikey", "key": "Authorization", "value": "" } ], "url": { "raw": "{{baseUrl}}/api/sp/v2/flow/:flowId", "host": [ "{{baseUrl}}" ], "path": [ "api", "sp", "v2", "flow", ":flowId" ], "variable": [ { "key": "flowId" } ] } }, "status": "Unauthorized", "code": 401, "_postman_previewlanguage": "text", "header": [], "cookie": [], "body": "" } ] } ], "auth": { "type": "bearer", "bearer": [ { "key": "token", "value": "eyJhbGciOiJSUzI1NiIsImtpZCI6IjA0ODA1OEJCNTlGNEQzMDA3MDQ1ODk2RkQ0ODhDRTgxRjRFQjQ5MjMiLCJ0eXAiOiJhdCtqd3QifQ.eyJpc3MiOiJodHRwczovL3BwLm5ldHNlaWRicm9rZXIuZGsvb3AiLCJuYmYiOjE3MTI5MTA2MTksImlhdCI6MTcxMjkxMDYxOSwiZXhwIjoxNzEyOTE0MjE5LCJhdWQiOiJodHRwczovL25ldHNlaWRicm9rZXIuZGsvcHJpdmlsZWdlYXBpIiwic2NvcGUiOlsicHJpdmlsZWdlX2FwaSJdLCJjbGllbnRfaWQiOiI2YWY3MzY3OS00NGJiLTQ5MjMtYTI5Zi0xNDhlMzJlYWIxNjkiLCJjbGllbnRfb3JnX2lkIjoiNzQwMWI5ZDQtNDRmNi00MWE0LTg5MGMtNDU4ZWJiOTJmYWNmIiwiY2xpZW50X3NlcnZpY2VfcHJvdmlkZXJfaWQiOiJjMDJjZGRjNi0yYTUzLTRjMmQtYTUxYi01OWMzYTljNzUxMDgiLCJjbGllbnRfc2VydmljZV9pZCI6ImNhNGU3ZGNhLWEzMTctNDU2Zi1hZTdlLWMyMjdhMDFjNTM4OCIsImNsaWVudF9vcmdfdGF4YXRpb25fbnVtYmVyIjoiREs2NDk0MjIxMiIsImNsaWVudF9hdF90eXBlIjoic2VydmljZV90b2tlbiIsImp0aSI6IkI3RjMzOTdEMERDMDZGNEM4OUJDODlCOEIwODRCRjdDIn0.AuUJ0VyCHJIKqdeggkyZrA6hkdkDeCg0jbJpsq8SYfE8tmKu9SQBWOubko_uAJgA0fRmuRCpNlWxRUMJHbKsA_Xb_l7sdF-cqIRI4A0eGcFPoENP4SveGYDX3BhzRHmjaGOq1OyQp8dGcYf5UvVeeEfau36zfxGsEn2umCVfdDi1w19T2ZsmUnxgkJcLVgWteyUEuUlXkKIgZfNYlrs20-bCypWqm93erDK73jUcCOfnqDQPLeikk9bgVtnxfoUxYYMpFMnTXRRt-rU8E6TFcvobDmwj3hQ0FduCV9qVB8szDy5V3H8usgIqDUHVBOeHh232Xn5PAAVQXJZ35qPJNg", "type": "string" } ] }, "event": [ { "listen": "prerequest", "script": { "type": "text/javascript", "packages": {}, "exec": [ "" ] } }, { "listen": "test", "script": { "type": "text/javascript", "packages": {}, "exec": [ "" ] } } ], "variable": [ { "key": "baseUrl", "value": "https://pp.soloid.dk" }, { "key": "client_id", "value": "", "type": "string" }, { "key": "client_secret", "value": "", "type": "string" } ] }