Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • dashboard dashboard
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 47
    • Issues 47
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • AURAAURA
  • dashboarddashboard
  • Issues
  • #1
Closed
Open
Issue created May 17, 2018 by Andrea Ida Malkah Klaura@jackieOwner

oidc connect login redirect troubles

Problem

Wenn mensch im Dashboard auf Login klickt kommt eins zwar bis zum Login beim Steering, danach aber nicht mehr retour. Das steering liefert dann nur folgenden Fehler:

Redirect URI Error
The request fails due to a missing, invalid, or mismatching redirection URI (redirect_uri).

Die URI unter der das passiert: http://127.0.0.1:8000/openid/authorize?client_id=761764&redirect_uri=http%3A%2F%2F127.0.0.1%3A8080%2Fstatic%2Foidc_callback.html&response_type=id_token%20token&scope=openid%20profile%20email&state=f1e0b6e7ddaa4b50af0c455e142701fc&nonce=723fa6cc06af4fe4a95097aaa3ee589c

Ursache

Aus irgendeinem Grund kann das steering nicht auf die OIDC callback Funktionen zugreifen, die das Dashboard unter /static/ anbietet.

Problemlösung

Erstmal nachprüfen ob im steering admin beim OIDC Client die Settings stimmen:

  • Client Type: Public
  • Response Type: id_token token (Implicit Flow)
  • JWT Algorithm: RS256
  • Require Consent?: No
  • Reuse Consent?: Yes
  • Redirect URIs:
http://localhost:8080/static/oidc_callback.html
http://localhost:8080/static/oidc_callback_silentRenew.html
http://localhost:8080/static/oidc_callback_popupRenew.html

Dann überprüfen ob wir auf diese Redirec URIs manuell zugreifen können, indem wir sie direkt in einem neuen Browserfenster öffnen. Wenn das geht, dann haben wir womöglich ein CORS-Problem vorliegen. Wir sollten als näxtes im Dashboard in der config/dev.env.js prüfen ob folgende drei Zweilen mit jenen Redirect URIs zusammenpassen die wir im steering admin oben eingetragen haben:

API_STEERING_OIDC_REDIRECT_URI: '"http://localhost:8080/static/oidc_callback.html"',
API_STEERING_OIDC_REDIRECT_URI_SILENT: '"http://localhost:8080/static/oidc_callback_silentRenew.html"',
API_STEERING_OIDC_REDIRECT_URI_POPUP: '"http://localhost:8080/static/oidc_callback_popupRenew.html"',

Hier ist wichtig zu bedenken, dass OIDC die eingetragen und übermittelten Redirect URIs sehr genau nimmt. Was auch immder der anfragende Client in Login Request mitschickt muss genau mit dem übereinstimmen was steering eingetragen hat und dann entsprechend aufruft. Und dabei wird localhost nicht einfach durch 127.0.0.1 ersetzt. Wir müssen also darauf achten, dass an diesen beiden Stellen die exakt gleichen URIs verwendet werden.

TODO

Nachdem dieses Problem ohne das nötige Hintergrundwissen zum OIDC provider von django und ohne das bereits einmal wo erlebt zu haben extrem mühsam ist muss das entsprechend in der Setup/Config-Doku von steering und dashboard gut und unübersehbar dokumentiert werden.

Assignee
Assign to
Time tracking