Authentik-Anleitung: die Redirect URI deutlicher erklaert
Der Beispielwert https://qr.example.com/... liess sich als etwas zum Abschreiben lesen. Er ist aber keiner: Die Adresse ergibt sich aus der eigenen BASE_URL, und wer den Beispielwert uebernimmt, landet bei Authentik auf „Redirect URI Error", ohne dass die Anwendung ueberhaupt etwas mitbekommt. Jetzt ein eigener Abschnitt mit der Formel, dem Befehl zum Nachsehen der BASE_URL, drei Beispielen und den vier Fallen: Schraegstrich am Ende, Schema und Port, die Auswahl Strict/Regex neben dem Feld, und ein leeres Feld. Dazu, wo die tatsaechlich angekommene Adresse steht — in der Adresszeile und in Authentik unter Events, Logs. Und der Hinweis, dass eine abweichende Adresse nicht fuer eine falsche Authentik-Einstellung spricht, sondern fuer eine falsche BASE_URL — die gehoert korrigiert, bevor der erste dynamische Code entsteht.
This commit is contained in:
+45
-5
@@ -42,7 +42,7 @@ Adressen.
|
|||||||
| Client type | **Confidential** |
|
| Client type | **Confidential** |
|
||||||
| Client ID | notieren — kommt gleich in die `.env` |
|
| Client ID | notieren — kommt gleich in die `.env` |
|
||||||
| Client Secret | notieren — ebenfalls |
|
| Client Secret | notieren — ebenfalls |
|
||||||
| Redirect URIs | `https://qr.example.com/api/auth/oidc/callback` |
|
| Redirect URIs | **deine** `BASE_URL` + `/api/auth/oidc/callback` — siehe unten |
|
||||||
| Signing Key | ein vorhandenes Zertifikat auswählen |
|
| Signing Key | ein vorhandenes Zertifikat auswählen |
|
||||||
| Subject mode | `Based on the User's hashed ID` (Voreinstellung) |
|
| Subject mode | `Based on the User's hashed ID` (Voreinstellung) |
|
||||||
|
|
||||||
@@ -50,9 +50,49 @@ Zu den **Scopes**: `openid`, `email` und `profile` müssen ausgewählt sein.
|
|||||||
Ohne `email` liefert Authentik keine Adresse, und die Anwendung lehnt die
|
Ohne `email` liefert Authentik keine Adresse, und die Anwendung lehnt die
|
||||||
Anmeldung mit einer entsprechenden Meldung ab.
|
Anmeldung mit einer entsprechenden Meldung ab.
|
||||||
|
|
||||||
> **Redirect URI genau so eintragen.** Ein fehlendes `https://`, ein Schrägstrich
|
### Die Redirect URI
|
||||||
> zu viel oder ein anderer Hostname führt zu `redirect_uri mismatch` —
|
|
||||||
> Authentik bricht dann ab, bevor die Anwendung überhaupt etwas mitbekommt.
|
Das ist der häufigste Stolperstein. Der Wert ist **kein Beispiel zum
|
||||||
|
Abschreiben**, sondern ergibt sich aus deiner `BASE_URL`:
|
||||||
|
|
||||||
|
```
|
||||||
|
{BASE_URL}/api/auth/oidc/callback
|
||||||
|
```
|
||||||
|
|
||||||
|
Was dein Container als `BASE_URL` kennt, zeigt:
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker compose exec app env | grep BASE_URL
|
||||||
|
```
|
||||||
|
|
||||||
|
Ein paar Beispiele:
|
||||||
|
|
||||||
|
| `BASE_URL` | Redirect URI |
|
||||||
|
| --- | --- |
|
||||||
|
| `https://qr.example.com` | `https://qr.example.com/api/auth/oidc/callback` |
|
||||||
|
| `http://10.10.10.150:3005` | `http://10.10.10.150:3005/api/auth/oidc/callback` |
|
||||||
|
| `http://192.168.1.50:3000` | `http://192.168.1.50:3000/api/auth/oidc/callback` |
|
||||||
|
|
||||||
|
Zu beachten:
|
||||||
|
|
||||||
|
- **Kein Schrägstrich am Ende.**
|
||||||
|
- **Schema und Port gehören dazu** — `http` ist nicht `https`, und `:3005`
|
||||||
|
darf nicht fehlen.
|
||||||
|
- Neben dem Feld steht in neueren Authentik-Fassungen eine Auswahl **Strict**
|
||||||
|
oder **Regex**. Für eine feste Adresse muss dort **Strict** stehen. Bei
|
||||||
|
`Regex` wäre jeder Punkt einer IP-Adresse ein Platzhalter und müsste
|
||||||
|
maskiert werden.
|
||||||
|
- Bleibt das Feld leer, lässt Authentik **gar nichts** durch.
|
||||||
|
|
||||||
|
> **Wenn es trotzdem klemmt:** Authentik zeigt den Fehler „Redirect URI Error“
|
||||||
|
> noch auf seiner eigenen Seite an — die Anwendung bekommt davon nichts mit.
|
||||||
|
> Welche Adresse tatsächlich ankam, steht zum Vergleich
|
||||||
|
> 1. in der Adresszeile des Browsers, im Parameter `redirect_uri`, und
|
||||||
|
> 2. in Authentik unter **Events → Logs** im Eintrag `redirect_uri_error`.
|
||||||
|
>
|
||||||
|
> Weicht die ankommende Adresse von deiner `BASE_URL` ab, ist nicht Authentik
|
||||||
|
> falsch eingestellt, sondern die `BASE_URL` — und die gehört korrigiert,
|
||||||
|
> bevor der erste dynamische Code entsteht: Sie steckt in jedem davon.
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -216,7 +256,7 @@ Danach verschwindet das Passwortfeld von der Anmeldeseite.
|
|||||||
| Der Knopf erscheint nicht | `AUTH_ENABLED` oder `OIDC_ENABLED` steht nicht auf `true`. Prüfen mit `docker compose exec app env \| grep OIDC`. Steht dort nichts, fehlt die Variable im `environment:`-Block der `docker-compose.yml` — die `.env` allein reicht nicht. |
|
| Der Knopf erscheint nicht | `AUTH_ENABLED` oder `OIDC_ENABLED` steht nicht auf `true`. Prüfen mit `docker compose exec app env \| grep OIDC`. Steht dort nichts, fehlt die Variable im `environment:`-Block der `docker-compose.yml` — die `.env` allein reicht nicht. |
|
||||||
| „Die Anmeldung über den externen Anbieter ist unvollständig eingerichtet“ | Es fehlt `OIDC_ISSUER`, `OIDC_CLIENT_ID` oder `OIDC_CLIENT_SECRET`. Die Meldung nennt, welche. |
|
| „Die Anmeldung über den externen Anbieter ist unvollständig eingerichtet“ | Es fehlt `OIDC_ISSUER`, `OIDC_CLIENT_ID` oder `OIDC_CLIENT_SECRET`. Die Meldung nennt, welche. |
|
||||||
| „Der Anmelde-Anbieter ist nicht erreichbar“ | Der Container kommt nicht an Authentik. Testen mit `docker compose exec app wget -qO- <issuer>/.well-known/openid-configuration`. Häufig: interner DNS-Name statt öffentlicher Adresse. |
|
| „Der Anmelde-Anbieter ist nicht erreichbar“ | Der Container kommt nicht an Authentik. Testen mit `docker compose exec app wget -qO- <issuer>/.well-known/openid-configuration`. Häufig: interner DNS-Name statt öffentlicher Adresse. |
|
||||||
| Authentik meldet `redirect_uri mismatch` | Die Redirect URI im Provider stimmt nicht exakt mit `{BASE_URL}/api/auth/oidc/callback` überein. Auf Schema, Hostname und Schrägstriche achten. |
|
| Authentik zeigt „Redirect URI Error“ | Die Redirect URI im Provider stimmt nicht exakt mit `{BASE_URL}/api/auth/oidc/callback` überein — siehe [Die Redirect URI](#die-redirect-uri). Auf Schema, Port, Schrägstrich am Ende und die Auswahl Strict/Regex achten. |
|
||||||
| „Der Anbieter hat keine E-Mail-Adresse geliefert“ | Der Scope `email` fehlt im Provider, oder der Benutzer hat in Authentik keine Adresse hinterlegt. |
|
| „Der Anbieter hat keine E-Mail-Adresse geliefert“ | Der Scope `email` fehlt im Provider, oder der Benutzer hat in Authentik keine Adresse hinterlegt. |
|
||||||
| „Der Anbieter hat die Anmeldung abgelehnt“ | Der Benutzer ist der Application in Authentik nicht zugeordnet — Policy/Group Binding prüfen. |
|
| „Der Anbieter hat die Anmeldung abgelehnt“ | Der Benutzer ist der Application in Authentik nicht zugeordnet — Policy/Group Binding prüfen. |
|
||||||
| „Der Anmeldevorgang ist abgelaufen“ | Zwischen Klick und Rückkehr sind mehr als 10 Minuten vergangen, oder der Cookie ging verloren. Häufigste echte Ursache: `BASE_URL` zeigt auf eine andere Adresse als die, über die der Browser kommt. |
|
| „Der Anmeldevorgang ist abgelaufen“ | Zwischen Klick und Rückkehr sind mehr als 10 Minuten vergangen, oder der Cookie ging verloren. Häufigste echte Ursache: `BASE_URL` zeigt auf eine andere Adresse als die, über die der Browser kommt. |
|
||||||
|
|||||||
Reference in New Issue
Block a user