Endpoints¶
Base URLs¶
| Miljø | Base URL |
|---|---|
| Stage | https://mgmtauthapi.vconf-stage.dk |
| Produktion | https://mgmtauthapi.vconf.dk |
Bekræft den konkrete URL ved adgangsanmodning hos MedCom.
Alle endpoints nedenfor er relative til base URL (fx GET https://mgmtauthapi.vconf-stage.dk/v1/user).
Fælles headers¶
| Header | Påkrævet | Beskrivelse |
|---|---|---|
Authorization |
Ja | Bearer <access_token> fra Keycloak |
X-VDX-AuthorizationId |
Nej | Heltal > 0 — skifter effektiv gruppe til autorisation brugeren ejer |
Endpoint-oversigt¶
| Metode | Route | Formål | Detaljer |
|---|---|---|---|
| GET | /v1/user |
Brugerprofil og organisationskontekst | GET /v1/user |
| GET | /v1/user/authorizations |
Management-autorisationer | GET /v1/user/authorizations |
| GET | /v1/user/group |
Flad gruppe for effektiv kontekst | GET /v1/user/group |
| GET | /v1/user/group/parents |
Parent-træ fra rod til effektiv gruppe | GET /v1/user/group/parents |
Health (uden auth)¶
| Route | Formål |
|---|---|
/health/live |
Liveness |
/health/ready |
Readiness |
/health/startup |
Startup |
Health-endpoints er undtaget rate limiting.
GET /v1/user¶
Returnerer brugerprofil og organisationskontekst efter login. Autorisationslisten er ikke inkluderet — hent den separat via /v1/user/authorizations.
Request¶
| Method | GET |
| Path | /v1/user |
| Authorization | Påkrævet — Bearer <access_token> |
| X-VDX-AuthorizationId | Valgfri — autorisationskontekst |
Eksempel (curl)¶
curl -s -X GET "https://mgmtauthapi.vconf-stage.dk/v1/user" \
-H "Authorization: Bearer DIT_ACCESS_TOKEN"
Med autorisationsskift:
curl -s -X GET "https://mgmtauthapi.vconf-stage.dk/v1/user" \
-H "Authorization: Bearer DIT_ACCESS_TOKEN" \
-H "X-VDX-AuthorizationId: 42"
Response (200 OK)¶
Returnerer en UserProfile-struktur:
{
"email": "bruger@eksempel.dk",
"firstname": "Anna",
"lastname": "Hansen",
"organisationId": "550e8400-e29b-41d4-a716-446655440000",
"organisationName": "Eksempel Kommune",
"organisationGroup": 12345,
"organisationGroupOverride": null,
"authorizationId": null,
"isAuthorization": false,
"hasAvailableAuthorizations": true,
"roles": "meeting-user,management-admin",
"sessionId": "abc123-session-id",
"application": "din-keycloak-klient-id",
"userType": "external",
"timestamp": "2026-05-26T10:15:00Z"
}
Fejl¶
| HTTP | Årsag |
|---|---|
| 401 | Manglende/ugyldig JWT eller manglende claims |
| 403 | Lokal bruger inaktiv/slettet, eller ugyldig X-VDX-AuthorizationId |
| 400 | Ugyldigt format på X-VDX-AuthorizationId |
Se også UserProfile-modellen, Login-flow, Python-eksempel og C#-eksempel.
GET /v1/user/authorizations¶
Returnerer brugerens management-autorisationer (roller med vdx-admin eller management). Listen filtreres ikke efter X-VDX-AuthorizationId.
Request¶
| Method | GET |
| Path | /v1/user/authorizations |
| Authorization | Påkrævet — Bearer <access_token> |
Eksempel (curl)¶
curl -s -X GET "https://mgmtauthapi.vconf-stage.dk/v1/user/authorizations" \
-H "Authorization: Bearer DIT_ACCESS_TOKEN"
Response (200 OK)¶
Array af Authorization-objekter:
[
{
"id": 42,
"groupId": 67890,
"groupName": "Region Nord",
"role": "management-admin",
"lastUse": "2026-05-20T14:30:00Z"
}
]
Brug id som værdi til header X-VDX-AuthorizationId ved autorisationsskift.
Fejl¶
| HTTP | Årsag |
|---|---|
| 401 | Manglende/ugyldig JWT (kræver mindst dk:medcom:email) |
Se også Authorization-modellen, Autorisationsskift, Python-eksempel og C#-eksempel.
GET /v1/user/group¶
Returnerer én flad gruppe for den effektive kontekst (basis-organisation eller autorisationsskift).
Request¶
| Method | GET |
| Path | /v1/user/group |
| Authorization | Påkrævet |
| X-VDX-AuthorizationId | Valgfri — autorisationskontekst |
Eksempel (curl)¶
curl -s -X GET "https://mgmtauthapi.vconf-stage.dk/v1/user/group" \
-H "Authorization: Bearer DIT_ACCESS_TOKEN" \
-H "X-VDX-AuthorizationId: 42"
Response (200 OK)¶
Group-struktur:
{
"organisationId": "550e8400-e29b-41d4-a716-446655440000",
"name": "Region Nord",
"groupId": 67890
}
Fejl¶
| HTTP | Årsag |
|---|---|
| 401 | Manglende/ugyldig JWT eller claims |
| 403 | Inaktiv bruger eller ugyldig autorisation |
| 404 | { "message": "Group not found" } |
Se også Group-modellen, Python-eksempel og C#-eksempel.
GET /v1/user/group/parents¶
Returnerer et nested træ fra rodgruppe ned til den effektive gruppe.
Request¶
| Method | GET |
| Path | /v1/user/group/parents |
| Authorization | Påkrævet |
| X-VDX-AuthorizationId | Valgfri — autorisationskontekst |
Eksempel (curl)¶
curl -s -X GET "https://mgmtauthapi.vconf-stage.dk/v1/user/group/parents" \
-H "Authorization: Bearer DIT_ACCESS_TOKEN"
Response (200 OK)¶
GroupTreeNode-struktur (rekursiv):
{
"organisationId": "00000000-0000-0000-0000-000000000001",
"name": "VDX Root",
"groupId": 1,
"children": [
{
"organisationId": "550e8400-e29b-41d4-a716-446655440000",
"name": "Eksempel Kommune",
"groupId": 12345,
"children": []
}
]
}
Fejl¶
| HTTP | Årsag |
|---|---|
| 401 | Manglende/ugyldig JWT eller claims |
| 403 | Inaktiv bruger eller ugyldig autorisation |
| 404 | { "message": "Group not found" } |
Se også GroupTreeNode-modellen, Python-eksempel og C#-eksempel.
Se også¶
- Modeller — response DTO'er
- Kodeeksempler — Python og C#
- Fejlkoder