Zum Hauptinhalt springen

Benutzerdefiniertes OAuth

Notiz

Casdoor unterstützt benutzerdefinierte Anbieter. Die benutzerdefinierten Anbieter müssen jedoch dem standardmäßigen 3-legged OAuth-Prozess folgen, und die Rückgabewerte von Token URL und UserInfo URL müssen dem von Casdoor festgelegten Format entsprechen.

Um einen neuen benutzerdefinierten Anbieter zu erstellen, navigieren Sie zur Anbieterseite von Casdoor und wählen Sie „Custom“ im Feld Typ aus. Sie müssen dann Client ID, Client Secret, Auth URL, Scope,Token URL, UserInfo URL und Favicon ausfüllen.

image-20220418100744005

  • Auth URL ist die Adresse der OAuth-Anmeldeseite des benutzerdefinierten Anbieters.

    Wenn Sie https://door.casdoor.com/login/oauth/authorize als Auth URL eintragen, wird der Browser zuerst zu dieser Adresse umleiten, wenn sich ein Benutzer mit diesem benutzerdefinierten Anbieter anmeldet.

    https://door.casdoor.com/login/oauth/authorize?client_id={ClientID}&redirect_uri=https://{your-casdoor-hostname}/callback&state={State_generated_by_Casdoor}&response_type=code&scope={Scope}` 

    Nachdem die Autorisierung abgeschlossen ist, sollte der benutzerdefinierte Anbieter umleiten zu

    https://{your-casdoor-hostname}/callback?code={code}

    Nach diesem Schritt wird Casdoor den Code-Parameter in der URL erkennen.

  • Scope ist der Scope-Parameter, der beim Zugriff auf die Auth URL übertragen wird, und Sie sollten ihn gemäß den Anforderungen des benutzerdefinierten Anbieters ausfüllen.

  • Token URL ist der API-Endpunkt zum Erhalten des accessToken.

    Sobald Sie den Code im vorherigen Schritt erhalten haben, sollte Casdoor ihn verwenden, um den accessToken zu bekommen.

    Wenn Sie https://door.casdoor.com/api/login/oauth/access_token als Token URL eintragen, wird Casdoor darauf mit dem folgenden Befehl zugreifen

    curl -X POST -u "{ClientID}:{ClientSecret}" --data-binary "code={code}&grant_type=authorization_code&redirect_uri=https://{your-casdoor-hostname}/callback" https://door.casdoor.com/api/login/oauth/access_token

    Der benutzerdefinierte Anbieter sollte mindestens die folgenden Informationen zurückgeben:

    {
    "access_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6Ixxxxxxxxxxxxxx",
    "refresh_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6xxxxxxxxxxxxxx",
    "token_type": "Bearer",
    "expires_in": 10080,
    "scope": "openid profile email"
    }
  • UserInfo URL ist der API-Endpunkt zum Erhalten von Benutzerinformationen über den accessToken.

    Wenn Sie https://door.casdoor.com/api/userinfo als UserInfo URL eintragen, wird Casdoor darauf mit dem folgenden Befehl zugreifen

    curl -X GET -H "Authorization: Bearer {accessToken}" https://door.casdoor.com/api/userinfo

    Der benutzerdefinierte Anbieter sollte mindestens die folgenden Informationen zurückgeben:

    {
    "name": "admin",
    "preferred_username": "Admin",
    "email": "admin@example.com",
    "picture": "https://casbin.org/img/casbin.svg"
    }
  • Favicon ist die Logo-URL eines benutzerdefinierten Anbieters.

    Dieses Logo wird auf der Anmeldeseite von Casdoor zusammen mit anderen Drittanbieter-Login-Anbietern angezeigt.