メインコンテンツにスキップ

カスタムOAuth

Casdoorはカスタムプロバイダーをサポートしています。 ただし、カスタムプロバイダーは3-legged OAuthの標準プロセスに従う必要があり、Token URLUserInfo URLの戻り値はCasdoorによって指定されたフォーマットに準拠している必要があります。

新しいカスタムプロバイダーを作成するには、Casdoorのプロバイダーページに移動し、「タイプ」フィールドで「カスタム」を選択します。 次に、Client IDClient SecretAuth URLScopeToken URLUserInfo URLFaviconを入力する必要があります。

image-20220418100744005

  • Auth URLはカスタムプロバイダーのOAuthログインページのアドレスです。

    https://door.casdoor.com/login/oauth/authorizeAuth 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パラメータを認識します。

  • ScopeAuth URLにアクセスするときに持ち運ばれるスコープパラメータであり、カスタムプロバイダーの要件に従って入力する必要があります。

  • Token URLはaccessTokenを取得するためのAPIエンドポイントです。

    前のステップでcodeを取得したら、Casdoorはそれを使ってaccessTokenを取得する必要があります。

    https://door.casdoor.com/api/login/oauth/access_tokenToken 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/userinfoUserInfo 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のログインページに他のサードパーティのログインプロバイダーと一緒に表示されます。