
# Auswählbare Organisationen auflisten

`GET /fapi/v1/authorization-requests/{authorization_request_id}/organizations` · wird vom Anmeldehost der Umgebung aufgerufen

Wird vom gehosteten Organisationsauswahlfenster unter `/u/organization` aufgerufen. Hat eine Anwendung `organization_usage` mit dem Wert `require` und nennt die Autorisierungsanfrage keine `organization`, sucht der Autorisierungsendpunkt die Organisationen des Benutzers, sobald sich der Benutzer angemeldet hat. Gibt es keine, endet die Anfrage mit `access_denied` und `error_description=no_organization_membership`. Gibt es genau eine, wird diese Organisation ohne Bildschirm gebunden. Gibt es zwei oder mehr, wechselt der Browser zur Auswahl, die diese Liste liest.

Die Liste enthält die Organisationen, in denen der Benutzer eine aktive Mitgliedschaft hat, die Organisation aktiv ist und die Anwendung aktiviert ist. Sie ist nach Slug sortiert und enthält höchstens 100 Einträge; `truncated: true` bedeutet, dass weitere vorhanden sind. Die in dieser Sitzung zuletzt gewählte Organisation steht vorne und hat `last_used: true`. `name` sind Kundendaten, aus denen Steuer- und Richtungszeichen entfernt wurden. Hat eine Organisation keinen Namen, ist `name` ihr Slug. Das Lesen der Liste bindet nichts.

Die Autorisierungsanfrage muss ausstehend sein, auf diesem Anmeldehost geöffnet worden sein und das Bindungs-Cookie tragen, das der Autorisierungsendpunkt in diesem Browser gesetzt hat. Die folgenden Fälle erhalten alle dieselbe Antwort `404 not_found`:

- eine fehlerhafte oder unbekannte Anfrage
- eine abgelaufene oder abgeschlossene Anfrage
- eine Anfrage, die auf einem anderen Host geöffnet wurde
- eine Anfrage, die in einem anderen Browser geöffnet wurde

Erfordert das Cookie `__Host-idp_session` des authentifizierten Benutzers; fehlt das Cookie, ist es abgelaufen oder widerrufen, wird `401 unauthenticated` zurückgegeben.

## Anfrage

Pfadparameter:

| Parameter | Beschreibung |
| --- | --- |
| `authorization_request_id` | Der Wert `authorization_request` der URL des Auswahlfensters (`azr_…`). |

Header:

| Header | Erforderlich | Beschreibung |
| --- | --- | --- |
| `Idp-Client` | ja | SDK-Kennung. |

Kein Body.

## Antwort

`200 OK`:

| Feld | Typ | Beschreibung |
| --- | --- | --- |
| `data[].id` | string | Organisationskennung (`org_…`). |
| `data[].slug` | string | Slug der Organisation. |
| `data[].name` | string | Anzeigename, Klartext. |
| `data[].last_used` | boolean | Ob dies die in dieser Sitzung zuletzt gewählte Organisation ist. |
| `truncated` | boolean | Ob der Benutzer mehr berechtigte Organisationen hat, als aufgelistet werden. |

```json
{
  "data": [
    {"id": "org_01jbz6x8kq3m2n4p5r6s7t8v9w", "slug": "acme", "name": "Acme", "last_used": false},
    {"id": "org_01jbz6x8kq3m2n4p5r6s7t8v9x", "slug": "globex", "name": "Globex", "last_used": false}
  ],
  "truncated": false
}
```

## Fehler

| Status | Code | Wann |
| --- | --- | --- |
| 401 | `unauthenticated` | Kein gültiges Sitzungs-Cookie. |
| 404 | `not_found` | Die Anfrage ist fehlerhaft, unbekannt, abgelaufen, abgeschlossen, gehört zu einem anderen Host oder zu einem anderen Browser. |
| 409 | `conflict` | Die Anfrage hat bereits eine Organisation. |
| 503 | `temporarily_unavailable` | Die Organisationsliste konnte nicht gelesen werden. |

## Beispiel

```bash
curl https://example.keenauth.app/fapi/v1/authorization-requests/azr_01jbz6x8kq3m2n4p5r6s7t8v9w/organizations \
  -H "Idp-Client: my-app/1.0.0 (node/22.0.0)" \
  -b cookies.txt
```
