Files
Snippets/bruno-idoit-session.md
T
2026-07-06 11:32:17 +02:00

2.0 KiB
Raw Blame History

Bruno: Session zur i-doit aufbauen

In Bruno bekommst du eine "Session" über eine Kombination aus Environment-Variablen und dem API-Key-Login von i-doit. i-doit selbst nutzt keine klassischen Cookie-Sessions für die JSON-RPC-API, sondern authentifiziert jeden Request per Header der "Session-Charakter" kommt also über gespeicherte Variablen, die alle Requests teilen.

1. Environment anlegen

Anlegen eines Environment demo-idoit mit:

base_url:   https://demo.i-doit.com/src/jsonrpc.php
apikey:     c1ia5q
username:   admin
password:   admin

2. Login-Request (holt die Session-ID)

i-doit unterstützt eine echte Session über idoit.login. Der Response liefert einen X-RPC-Auth-Session-Header, den du für Folge-Requests wiederverwendest.

POST {{base_url}}

Headers:

Content-Type: application/json
X-RPC-Auth-Username: {{username}}
X-RPC-Auth-Password: {{password}}

Body (JSON):

{
  "version": "2.0",
  "method": "idoit.login",
  "params": { "apikey": "{{apikey}}" },
  "id": 1
}

Im Script → Post Response die Session-ID in eine Variable schreiben:

bru.setEnvVar("session_id", res.getHeader("x-rpc-auth-session"));

3. Folge-Requests mit der Session

Alle weiteren Requests nutzen dann statt Username/Passwort nur noch:

Content-Type: application/json
X-RPC-Auth-Session: {{session_id}}

Body z. B. für eine Objektabfrage:

{
  "version": "2.0",
  "method": "cmdb.objects.read",
  "params": { "apikey": "{{apikey}}", "filter": { "type": 5 } },
  "id": 1
}

4. Logout (optional)

{ "version": "2.0", "method": "idoit.logout", "params": { "apikey": "{{apikey}}" }, "id": 1 }

mit Header X-RPC-Auth-Session: {{session_id}}.


Kernpunkt: Die Session-ID aus dem Login-Response wird per Post-Response-Script als Environment-Variable gespeichert und von allen Requests im selben Environment geteilt. Damit sparst du dir den Login-Roundtrip pro Abfrage und hast quasi eine durchgehende Session.