カスタム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内のcodeパラメータを認識します。
Scope
はAuth URL
にアクセスするときに持ち運ばれるスコープパラメータであり、カスタムプロバイダーの要件に従って入力する必要があります。Token URL
はaccessTokenを取得するためのAPIエンドポイントです。前のステップでcodeを取得したら、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です。このロゴはCasdoorのログインページに他のサードパーティのログインプロバイダーと一緒に表示されます。