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.
Para crear un nuevo proveedor personalizado, navega a la página del proveedor de Casdoor y selecciona “Custom” en el campo Tipo. Entonces necesitarás completar Client ID
, Client Secret
, Auth URL
, Scope
,Token URL
, UserInfo URL
, y Favicon
.
Auth URL
es la dirección de la página de inicio de sesión OAuth del proveedor personalizado.Si completas
https://door.casdoor.com/login/oauth/authorize
como 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.
Scope
es el parámetro de alcance que se lleva al acceder alAuth URL
, y debes completarlo según los requisitos del proveedor personalizado.Token URL
es 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_token
como 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_token
El 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 URL
es el punto final de la API para obtener información del usuario a través del accessToken.Si completas
https://door.casdoor.com/api/userinfo
como elUserInfo URL
, entonces Casdoor lo accederá usando el siguiente comandocurl -X GET -H "Authorization: Bearer {accessToken}" https://door.casdoor.com/api/userinfo
El 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"
}Favicon
es 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.