メインコンテンツまでスキップ

OAuth Authorization Server

OAuth Authorization Serverでは、Kuroco自身をOAuth 2.0 / OpenID Connectの認可サーバー(Authorization Server)として動作させるための設定を管理できます。外部のOAuthクライアント(MCPクライアントを含む)に対して、認可コードやアクセストークンを発行できます。1つのOAuth Authorization Server設定に対して、複数のOAuth Authorization Serverクライアントを登録して利用します。

OAuth Authorization Server一覧

確認方法

[外部システム連携] -> [OAuth Authorization Server]をクリックします。

Image from Gyazo

項目説明

Image from Gyazo

項目説明
有効OAuth Authorization Serverの有効状態を確認できます。
Image (fetched from Gyazo):有効
Image (fetched from Gyazo):無効
名前OAuth Authorization Serverの名前を表示します。クリックすると編集画面に移動します。
用途この認可サーバーの用途(ターゲットドメイン)を表示します。API / Management / AdminMCP のいずれかです。
OAuth Authorization Server クライアント[クライアントを管理]をクリックすると、その認可サーバーに紐づくクライアントの一覧画面に移動します。
更新日時最終更新日時を表示します。

一覧画面では、チェックボックスで選択した認可サーバーをまとめて有効化・無効化・削除できます。

OAuth Authorization Serverの編集

編集方法

[外部システム連携] -> [OAuth Authorization Server]をクリックします。新規に作成する場合は、一覧画面右上の[追加]をクリックします。既存の設定を編集する場合は、一覧画面から編集したい認可サーバーの[名前]をクリックします。

Image from Gyazo

項目説明

OAuth Authorization Server編集

項目説明
名前OAuth Authorization Serverの名前を入力します。(必須)
用途この認可サーバーの用途を選択します。
API:メンバー向けの認可サーバーです。
Management:管理者向けの認可サーバーです。
AdminMCP:Admin MCPリソース専用の管理者向け認可サーバーです。
(必須)
※用途は作成後には変更できません。編集画面では[変更不可]と表示されます。用途を変更すると、保存済みの許可スコープ・グラントタイプ・リソースの紐づけと不整合になるためです。
Client ID Metadata Documents(CIMD)有効にすると、HTTPSのURLをclient_idとして受け付け、そのURLからクライアントメタデータを取得します。メタデータ(アプリ名等)はクライアント側の自己申告であり検証されません。同意画面ではURLが信頼の基準として表示されます。詳細はClient ID Metadata Documents(CIMD)を参照してください。
対応するグラントタイプこの認可サーバーが対応するOAuthグラントタイプをチェックで選択します(1つ以上必須)。
authorization_code:認可コードフロー。
refresh_token:リフレッシュトークンによる再発行。
client_credentials:クライアント認証情報によるトークン発行。
初期状態ではauthorization_coderefresh_tokenが選択されています。
許可するスコープこの認可サーバーが発行を許可するスコープ(上限)をチェックで選択します。選択したスコープだけをクライアントに割り当て・トークンに付与できます。利用するスコープを必ず選択してください(未選択のままだとクライアントにスコープを割り当てられません)。選択できるスコープは用途によって異なります(スコープ一覧を参照)。
OAuth Authorization Server クライアント[クライアントを管理]をクリックすると、この認可サーバーに紐づくクライアントの一覧画面に移動します。(保存済みの認可サーバーでのみ表示されます)
APIエンドポイントこの認可サーバーにMCPサーバーが紐づいているAPIエンドポイントの一覧を表示します。各APIをクリックするとAPIの編集画面に移動します。(用途がAPIかつ保存済みの認可サーバーでのみ表示されます)
アクセストークン有効期間アクセストークンの有効期間を秒単位で入力します(最小60秒)。初期値は3600秒です。
リフレッシュトークン有効期間リフレッシュトークンの有効期間を秒単位で入力します(最小60秒)。初期値は2592000秒です。
認可コード有効期間認可コードの有効期間を秒単位で入力します(最小10秒)。初期値は60秒です。
並び順一覧での表示順を数値で入力します。
有効チェックを入れると、この設定が有効になります。
ログインページURL用途がAPIの場合に、ログインに用いるページのパスを入力します(例: /login/)。(用途がAPIの場合は必須)
用途がManagement / AdminMCPの場合は、この項目は表示されず、管理画面のログインURLが固定で使用されます。
発行元 (Issuer) URLこの認可サーバーのIssuer URLを表示します(読み取り専用)。保存済みの認可サーバーでのみ表示されます。
メタデータURLこの認可サーバーのメタデータ(Authorization Server Metadata)のURLを表示します(読み取り専用)。保存済みの認可サーバーでのみ表示されます。

各ボタン

Image from Gyazo

項目説明
更新する入力した内容を保存します。
削除する表示しているOAuth Authorization Serverの設定を削除します。

スコープ一覧

「許可するスコープ」で選択できるスコープは、用途(ターゲットドメイン)によって異なります。

用途選択できるスコープ
APIサインイン用スコープ(openid / profile / email)と、API 読み取り(api:read)、API 書き込み(api:write
Managementサインイン用スコープ(openid / profile / email)のみ
AdminMCPサインイン用スコープに加えて、Admin MCPの権限レベルとリソース(モジュール・コンテンツ)のスコープ

Admin MCPの権限レベル

用途がAdminMCPの場合、Admin MCPの権限レベルを次から1つ選択します。

権限レベルスコープ説明
読み取り専用mcp:tools.read読み取りツールを利用できます。
読み書きmcp:tools.write読み書きツールを利用できます。
全権限mcp:adminトークン発行などすべての操作を含み、コンテンツ・モジュールの制限も無視されます。

「読み取り専用」または「読み書き」を選択した場合は、対象とするコンテンツまたはモジュールを1つ以上選択してください。すべてを対象にする場合は「すべてのモジュール(今後追加されるものを含む)」または「すべてのコンテンツ(今後追加されるものを含む)」を選択します。「全権限」を選択した場合は、コンテンツ・モジュールの制限が無視されるため、これらの選択項目は表示されません。

注意

用途がManagementおよびAdminMCPの認可サーバーは、サイト内で有効にできるのは1つだけです。それぞれのリソースサーバーは、有効な設定を1つだけ解決するためです。(APIは、MCPを有効にした各APIが個別に1つの認可サーバーに紐づくため、複数の有効な認可サーバーを持てます。)

OpenID Connect(サインイン情報の連携)

サインイン用スコープ(openid / profile / email)を付与すると、この認可サーバーはOpenID Connectの認可サーバーとして、メンバーのサインイン情報(claim)をクライアントに連携します。付与されたスコープにopenidが含まれる場合にのみ、id_tokenの発行とuserinfoエンドポイントでのclaim取得が有効になります。id_token・userinfoエンドポイント・JWKSエンドポイントなどの詳細はOAuth Authorization ServerのOpenID Connect対応を参照してください。

OAuth Authorization Server クライアント

1つのOAuth Authorization Serverに対して、複数のクライアントを登録できます。クライアントは、OAuth Authorization ServerのクライアントID・シークレット・リダイレクトURI・スコープなどを保持します。

OAuth Authorization Server クライアント一覧

確認方法

OAuth Authorization Server一覧画面、またはOAuth Authorization Server編集画面から[クライアントを管理]をクリックします。

Image from Gyazo

項目説明

項目説明
有効クライアントの有効状態を確認できます。
Image (fetched from Gyazo):有効
Image (fetched from Gyazo):無効
クライアント名クライアントの名前を表示します。クリックすると編集画面に移動します。
クライアントIDクライアントIDを表示します。
トークンエンドポイント認証方式クライアントのトークンエンドポイント認証方式を表示します。
更新日時最終更新日時を表示します。

OAuth Authorization Server クライアントの編集

編集方法

クライアント一覧画面右上の[追加]をクリックすると、新しいクライアントを作成できます。既存のクライアントを編集する場合は、一覧画面から[クライアント名]をクリックします。

Image from Gyazo

項目説明

項目説明
クライアント名クライアントの名前を入力します。(必須)
クライアントID保存後に発行されるクライアントIDを表示します(読み取り専用)。
有効チェックを入れると、このクライアントが有効になります。
信頼済みクライアント 提供版: β同一組織で管理するクライアントに対して、管理者による事前同意を設定します。有効にすると、ログイン済みユーザーには同意画面を表示せず、認可コードを発行します。クライアントの[対応するグラントタイプ]でauthorization_codeを選択した場合のみ設定できます。
パブリッククライアント(トークンエンドポイント認証方式がnone)の場合は、すべてのリダイレクトURIがhttpsかつループバックアドレス以外のホストである必要があります。
トークンエンドポイント認証方式クライアントの認証方式を選択します。(必須)
none:パブリッククライアント(PKCEのみ)。
client_secret_basic:Basic認証ヘッダーでクライアントシークレットを送信します。
client_secret_post:リクエストボディでクライアントシークレットを送信します。
クライアントシークレット[保存時にクライアントシークレットを再生成する]にチェックを入れると、保存時に新しいシークレットを生成し、画面に1度だけ表示します。以前のシークレットは無効化されます。(既存クライアントの編集時のみ表示されます)
リダイレクトURI認可後にリダイレクトを許可するURIを、1行に1つ入力します。(必須)
MCPクライアントの代表的なコールバックURLは次のとおりです。
https://claude.ai/api/mcp/auth_callback
https://chatgpt.com/connector_platform_oauth_redirect
サービスメンバーIDclient_credentialsでアクセストークンを発行するときに、トークンの主体として使用するメンバーIDです。保存時にトークン生成と同じ権限チェックを行います。(親の認可サーバーがclient_credentialsを許可している場合のみ表示されます)
許可するスコープ左のタブで[対応するグラントタイプ]と各スコープグループを切り替えて設定します。
[対応するグラントタイプ]では、このクライアントが利用するグラントタイプをチェックで選択します(1つ以上必須)。親の認可サーバーで無効化されているグラントタイプは、[認可サーバーレベルで無効化されています]と表示され選択できません。
各スコープグループでは、このクライアントに割り当てるスコープを選択します。選択できるスコープは、親の認可サーバーの[許可するスコープ]で許可された範囲に限られます。

信頼済みクライアントを設定する 提供版: β

自社サービスなど、同一組織で管理するクライアントでSSOを利用する場合は、次のように設定します。

  1. OAuth Authorization Server クライアントの編集画面を開きます。
  2. [許可するスコープ]の[対応するグラントタイプ]でauthorization_codeを選択します。
  3. [信頼済みクライアント]を有効にします。
  4. [更新する]をクリックします。

この設定は、ユーザーごとの同意内容を保存するものではありません。管理者がクライアント単位で事前同意する設定です。認可リクエストとpromptによる挙動はSSOで利用する認可リクエストを参照してください。

注意

[信頼済みクライアント]は、自社・同一組織で管理するクライアントにのみ使用してください。第三者が管理するクライアントでは有効にしないでください。

この設定で省略されるのは同意画面です。リダイレクトURI、スコープ、リソース、PKCEなどの検証は通常どおり行われます。

同意画面を省略するため、認可サーバーは検証できる資格情報でクライアントを識別します。コンフィデンシャルクライアントはトークンエンドポイントでのクライアントシークレットにより識別されます。パブリッククライアントは登録済みのリダイレクトURIだけが識別材料になるため、ループバックURI(http://localhost:3000/callbackなど)や独自スキームのURIは利用できません。ユーザーの端末上の任意のアプリが認可コードを受け取れてしまうためです。管理下のホストのhttpsリダイレクトURIを登録してください。

保存後に新しいクライアントシークレットが生成された場合は、画面上部に次のメッセージとともにシークレットが表示されます。

このクライアントシークレットは一度だけ表示されます。今すぐコピーして安全に保管してください — 後から取得することはできません。

Image from Gyazo

注意

クライアントシークレットは、保存時に1度だけ表示されます。後から取得することはできないため、表示された時点でコピーして安全に保管してください。

注意

API/MCP用のクライアントには、アクセス権を持つスコープを1つ以上指定してください。サインイン用スコープ(openid など)のみではAPI/MCPを利用できません。

Client ID Metadata Documents(CIMD)

OAuth Authorization Serverの編集画面で[Client ID Metadata Documents(CIMD)]を有効にすると、クライアントを事前に登録していないアプリケーションでも、HTTPSのURLをclient_idとして提示して認可を要求できるようになります。KurocoはそのURLからクライアントメタデータ(アプリケーション名・リダイレクトURI・スコープなど)を取得し、その内容を一時的なクライアントとして扱います。取得した内容はクライアントとして保存されません。

接続先ごとにクライアント登録を行わないMCPクライアント(Claude Codeなど)は、この方式で接続します。

CIMDで接続できる条件

項目条件
client_idパスを含むHTTPSのURLです(例: https://example.com/oauth/client-metadata)。オリジンのみのURL、...を含むパス、Kuroco自身のホストは受け付けません。
トークンエンドポイント認証方式none(パブリッククライアント)のみです。クライアントシークレットを用いる方式を宣言したメタデータは受け付けません。
グラントタイプauthorization_coderefresh_tokenのみです。client_credentialsは利用できません。
リダイレクトURIメタデータに1件以上必要です(最大10件、1件あたり最大512文字)。認可リクエストのリダイレクトURIは、登録済みクライアントと同様に完全一致で照合されます。
スコープメタデータが宣言したスコープのうち、認可サーバーの[許可するスコープ]で許可されている範囲だけが有効です。

取得したメタデータは、メタデータ側のCache-Controlに従って5分〜24時間キャッシュされます(指定がない場合は1時間)。メタデータの内容を変更しても、キャッシュが切れるまでは反映されません。取得に失敗した場合や上記の条件を満たさない場合は、認可リクエストはエラーになります。

同意画面に表示される「このサイトに未登録のアプリケーション」

CIMDで接続したアプリケーションの同意画面には、[このサイトに未登録のアプリケーション]という警告が表示されます。これはアプリケーションが危険であることを示すものではなく、次の状態を示しています。

  • このサイトの管理者が、このアプリケーションをOAuth Authorization Server クライアントとして登録していない
  • 同意画面に表示されているアプリケーション名は、client_idのURLから取得したメタデータに書かれている自己申告の名前であり、サイト側での確認は行われていない

許可してよいかどうかは、アプリケーション名ではなく[提供元ドメイン]で判断してください。

同意画面の表示説明
提供元ドメインclient_idのURLのホストです。このアプリケーションについて確認できる唯一の情報であり、信頼の基準になります。
クライアント情報の取得元URL(client_id)アプリケーションが提示したclient_id(メタデータの取得元URL)です。

心当たりのないドメインが表示されている場合は、[拒否する]をクリックしてください。

警告を表示させないようにするには

アプリケーションを事前に登録したクライアントとして接続させると、この警告は表示されません。

  1. OAuth Authorization Server クライアントの一覧画面から[追加]をクリックし、アプリケーション用のクライアントを作成します。パブリッククライアント(Claude Codeなど)の場合は、[トークンエンドポイント認証方式]にnoneを選択し、[リダイレクトURI]にアプリケーションのコールバックURLを入力します。
  2. 保存すると[クライアントID]が発行されます。
  3. 発行されたクライアントIDをアプリケーション側に設定して接続します(設定方法はアプリケーションによって異なります)。

登録済みのクライアントIDで接続した場合は、登録した内容が使用されるため、client_idのURLからのメタデータ取得は行われません。

未登録のアプリケーションからの接続自体を禁止する場合は、OAuth Authorization Serverの編集画面で[Client ID Metadata Documents(CIMD)]を無効にします。無効にすると、URLをclient_idとして提示したリクエストは受け付けられません。

注意

CIMDを有効にしている間は、事前登録なしにどのアプリケーションでも認可を要求できます。トークンが発行されるのは同意画面で[許可する]をクリックした場合のみですが、そのトークンに付与されうるスコープの上限は認可サーバーの[許可するスコープ]で決まります。必要なスコープだけを許可してください。

注意点

  • 用途(ターゲットドメイン)は認可サーバーの作成後には変更できません。用途を変更したい場合は、新しい認可サーバーを作成してください。
  • ManagementおよびAdminMCPの認可サーバーは、サイト内で同時に有効にできるのは1つだけです。
  • クライアントに割り当てられるスコープ・グラントタイプは、親の認可サーバーで許可された範囲が上限になります。認可サーバー側で許可していないスコープ・グラントタイプは、クライアント側で選択できません。
  • クライアントシークレットは保存時に1度だけ表示され、後から取得することはできません。

関連ドキュメント


サポート

お探しのページは見つかりましたか?解決しない場合は、問い合わせフォームからお問い合わせいただくか、Slackコミュニティにご参加ください。