Benutzerdefiniertes OAuth
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.
Auth URL
ist die Adresse der OAuth-Anmeldeseite des benutzerdefinierten Anbieters.Wenn Sie
https://door.casdoor.com/login/oauth/authorize
alsAuth 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 dieAuth 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
alsToken URL
eintragen, wird Casdoor darauf mit dem folgenden Befehl zugreifencurl -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
alsUserInfo URL
eintragen, wird Casdoor darauf mit dem folgenden Befehl zugreifencurl -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.