OAuth Personalizado
Casdoor soporta proveedores personalizados. Sin embargo, los proveedores personalizados deben seguir el proceso estándar de OAuth de 3 patas, y los valores devueltos de Token URL y UserInfo URL deben ajustarse al formato especificado por Casdoor.
Overview
Custom OAuth providers allow you to integrate any OAuth 2.0 compliant authentication service with Casdoor, even if it's not officially supported. This is useful when you want to integrate with:
- Internal enterprise OAuth servers
- Self-hosted authentication systems
- Third-party services not yet officially supported by Casdoor
Multiple Custom Providers Support
Casdoor supports up to 10 different custom OAuth providers simultaneously. When creating custom providers, you can choose from the following types:
- Custom - The first custom provider
- Custom2 through Custom10 - Additional custom providers
This allows you to integrate multiple custom OAuth services without conflicts. Each custom provider maintains its own separate configuration and user data fields.
Creating a Custom Provider
To create a new custom provider, navigate to the provider page of Casdoor, and select one of the custom types ("Custom", "Custom2", "Custom3", etc.) in the Type field. Entonces necesitarás completar Client ID, Client Secret, Auth URL, Scope,Token URL, UserInfo URL, y Favicon.

Auth URLes la dirección de la página de inicio de sesión OAuth del proveedor personalizado.Si completas
https://door.casdoor.com/login/oauth/authorizecomo elAuth URL, entonces, cuando un usuario inicie sesión con este proveedor personalizado, el navegador primero redirigirá ahttps://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}`Después de que se complete la autorización, el proveedor personalizado debería redirigir a
https://{your-casdoor-hostname}/callback?code={code}Después de este paso, Casdoor reconocerá el parámetro code en la URL.
Scopees el parámetro de alcance que se lleva al acceder alAuth URL, y debes completarlo según los requisitos del proveedor personalizado.Token URLes el punto final de la API para obtener el accessToken.Una vez que obtengas el código en el paso anterior, Casdoor debería usarlo para obtener el accessToken.
Si completas
https://door.casdoor.com/api/login/oauth/access_tokencomo elToken URL, entonces Casdoor lo accederá usando el siguiente comandocurl -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_tokenEl proveedor personalizado debería devolver al menos la siguiente información:
{
"access_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6Ixxxxxxxxxxxxxx",
"refresh_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6xxxxxxxxxxxxxx",
"token_type": "Bearer",
"expires_in": 10080,
"scope": "openid profile email"
}UserInfo URLes el punto final de la API para obtener información del usuario a través del accessToken.Si completas
https://door.casdoor.com/api/userinfocomo elUserInfo URL, entonces Casdoor lo accederá usando el siguiente comandocurl -X GET -H "Authorization: Bearer {accessToken}" https://door.casdoor.com/api/userinfoEl proveedor personalizado debería devolver al menos la siguiente información:
{
"name": "admin",
"preferred_username": "Admin",
"email": "admin@example.com",
"picture": "https://casbin.org/img/casbin.svg"
}Favicones la URL del logotipo de un proveedor personalizado.Este logotipo se mostrará en la página de inicio de sesión de Casdoor junto con otros proveedores de inicio de sesión de terceros.