사용자 정의 OAuth
Casdoor는 사용자 정의 제공자를 지원합니다. 그러나, 사용자 정의 제공자는 3-legged OAuth의 표준 프로세스를 따라야 하며, Token URL
과 UserInfo URL
의 반환 값은 Casdoor에서 지정한 형식을 준수해야 합니다.
새로운 사용자 정의 제공자를 만들려면, Casdoor의 제공자 페이지로 이동하고, 유형 필드에서 '사용자 정의'를 선택하십시오. 그런 다음 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는 URL의 코드 매개변수를 인식합니다.
Scope
는Auth URL
에 접근할 때 전달되는 범위 매개변수이며, 사용자 정의 제공자의 요구 사항에 따라 채워야 합니다.Token URL
은 accessToken을 얻기 위한 API 엔드포인트입니다.이전 단계에서 코드를 얻으면, 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
은 accessToken을 통해 사용자 정보를 얻기 위한 API 엔드포인트입니다.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입니다.이 로고는 다른 제3자 로그인 제공자와 함께 Casdoor의 로그인 페이지에 표시됩니다.