Пользовательский OAuth
Casdoor поддерживает пользовательские провайдеры. Однако пользовательские провайдеры должны следовать стандартному процессу трехстороннего OAuth, и возвращаемые значения Token URL и UserInfo URL должны соответствовать формату, указанному 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. Затем вам нужно будет заполнить Client ID, Client Secret, Auth URL, Scope,Token URL, UserInfo URL и Favicon.

- Auth URL- это адрес страницы входа OAuth пользовательского провайдера.- Если вы заполните - https://door.casdoor.com/login/oauth/authorizeкак- Auth URL, то когда пользователь войдет с помощью этого пользовательского провайдера, браузер сначала перенаправит на- 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}`- После завершения авторизации пользовательский провайдер должен перенаправить на - https://{your-casdoor-hostname}/callback?code={code}- После этого шага Casdoor распознает параметр code в URL. 
- Scope- это параметр области, передаваемый при доступе к- Auth URL, и вы должны заполнить его в соответствии с требованиями пользовательского провайдера.
- Token URL- это API-конечная точка для получения accessToken.- После получения кода на предыдущем шаге, Casdoor должен использовать его для получения accessToken. - Если вы заполните - https://door.casdoor.com/api/login/oauth/access_tokenкак- Token URL, то Casdoor будет обращаться к нему с помощью следующей команды- 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- Пользовательский провайдер должен возвращать как минимум следующую информацию: - {
 "access_token": "eyJhbGciOiJSUzI1NiIsImtpZCI6Ixxxxxxxxxxxxxx",
 "refresh_token": "eyJhbGciOiJSUzI1NiIsInR5cCI6xxxxxxxxxxxxxx",
 "token_type": "Bearer",
 "expires_in": 10080,
 "scope": "openid profile email"
 }
- UserInfo URL- это API-конечная точка для получения информации о пользователе через accessToken.- Если вы заполните - https://door.casdoor.com/api/userinfoкак- UserInfo URL, то Casdoor будет обращаться к нему с помощью следующей команды- curl -X GET -H "Authorization: Bearer {accessToken}" https://door.casdoor.com/api/userinfo- Пользовательский провайдер должен возвращать как минимум следующую информацию: - {
 "name": "admin",
 "preferred_username": "Admin",
 "email": "admin@example.com",
 "picture": "https://casbin.org/img/casbin.svg"
 }
- Favicon- это URL логотипа пользовательского провайдера.- Этот логотип будет отображаться на странице входа Casdoor вместе с другими сторонними провайдерами входа.