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

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一覧​

確認方法​

[外部システム連携] -> [ID連携] -> [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の名前を入力します。(必須)
用途この認可サーバーの用途を選択します。
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_codeとrefresh_tokenが選択されています。
利用を許可するグループ 提供版: β / RC版この認可サーバーでログイン(同意画面での認可)できるメンバーを、所属グループで絞り込みます。グループは複数選択でき、選択したグループのいずれかに所属するメンバーだけがログインできます。発行済みトークンの更新(refresh_token)と利用にも同じ制限がかかり、対象グループから外れた時点でトークンは使えなくなります。
未選択の場合は制限なしです。ログイン可否や、Admin MCP用サーバーでの管理画面の利用資格などの既存の条件は、選択の有無にかかわらずそのまま適用されます。
選択肢は用途によって異なります。APIでは有効な全グループ(会員グループを含む)、Management / AdminMCPでは管理画面を利用できるグループのみが表示されます(ログインユーザーグループは表示されません)。
新規に作成するManagement / AdminMCPの認可サーバーでは、「スーパーユーザー」グループが初期選択されています。既存の認可サーバーとAPIの認可サーバーは未選択(制限なし)です。
client_credentialsや、管理画面・エージェント設定から発行するサービストークン(デプロイトークン、エージェント用トークン、MCPチェッカー)には適用されません。サービストークンの主体となるメンバーは、管理者が個別に指定します。
対象外のメンバーが認可を要求した場合はaccess_denied、発行済みトークンの更新・利用時はinvalid_grantのエラーになります(error_description: The member is not in a group permitted to sign in through this authorization server.)。
保存済みの許可グループに、利用できないグループ(無効化・削除されたグループなど)や不正な値が含まれている場合は、編集画面に警告が表示されます。選択内容を確認し、[利用できないグループや不正な値を除き、現在の選択内容で置き換える(未選択の場合は制限なし)]にチェックを入れてから保存してください。
許可するスコープこの認可サーバーが発行を許可するスコープ(上限)をチェックで選択します。選択したスコープだけをクライアントに割り当て・トークンに付与できます。利用するスコープを必ず選択してください(未選択のままだとクライアントにスコープを割り当てられません)。選択できるスコープは用途によって異なります(スコープ一覧を参照)。
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.read + mcp:tools.write読み書きツールを利用できます。利用できる権限の上限はKuroco側で定義されており、[Admin MCP]画面の[mcp:tools.write が委譲する権限]で確認できます。
全操作(委譲先メンバーの権限の範囲)mcp:tools.allすべての操作を委譲しますが、トークンの委譲先として選択したメンバーの権限が上限になります。ただしグループ(権限)と汎用Smartyバッチの作成・変更・削除、OAuth認可サーバーの設定変更と発行済み認可の失効、メンバーへのスーパーユーザーグループの付与、特権付き静的トークンの発行、アクセス制限(IPアドレス)の変更、カスタム処理のトリガー設定の変更はできません。どのメンバーでも承認できます。
全権限mcp:adminトークン発行などすべての操作を含み、コンテンツ・モジュールの制限も無視されます。このレベルを承認できるのはスーパーユーザーのみです。それ以外のメンバーには同意画面で承認可能な範囲の最も広いレベルが提示され、そのレベルでトークンが発行されます。

いずれの権限レベルでも、トークンの実際の権限は「認証したメンバー自身の権限 ∩ そのレベルの上限」となり、メンバーが持っていない権限が付与されることはありません。

ツール一覧を取得するためのmcp:tools.listは、いずれの権限レベルでも保存時に自動的に付与されます。

どのモジュール・コンテンツを操作できるかは、スコープではなくクライアントの[対象リソース](Admin MCPのエンドポイントURL)で決まります。エンドポイントURLの形式はMCP サーバ リファレンスを参照してください。

APIの同意画面でのアクセスレベル選択 提供版: β版​

用途がAPIの認可サーバーでは、接続するアプリケーションがapi:read(APIデータの読み取り)とapi:write(APIデータの書き込み)の両方を要求した場合に、同意画面に[許可するアクセスレベル]の選択が表示されます。メンバーは、要求されたとおりに許可するか、読み取りのみに絞って許可するかを選択できます。

アクセスレベル発行されるトークンのスコープ説明
読み書きapi:read + api:write初期選択です。アプリケーションが要求したとおりのスコープでトークンを発行します。
読み取り専用api:read要求されたスコープからapi:writeを除いてトークンを発行します。このトークンでは参照系のリクエストのみ利用でき、更新系のリクエストは拒否されます。

要求されたスコープが読み取りのみ、または書き込みのみの場合は選択肢が表示されず、従来どおりの同意画面になります。

管理画面の設定項目は変更されません。認可サーバーの[許可するスコープ]、およびクライアントのスコープ設定は従来どおり機能し、それらで許可されていないスコープが同意画面で選択できるようになることはありません。

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

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

注意

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

OAuth Authorization Server クライアント管理​

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

確認方法​

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を表示します(読み取り専用)。
有効チェックを入れると、このクライアントが有効になります。
トークンエンドポイント認証方式クライアントの認証方式を選択します。(必須)
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
信頼済みクライアント 提供版: β / RC版同一組織で管理するクライアントに対して、管理者による事前同意を設定します。有効にすると、ログイン済みユーザーには同意画面を表示せず、認可コードを発行します。クライアントの[対応するグラントタイプ]でauthorization_codeを選択した場合のみ設定できます。
パブリッククライアント(トークンエンドポイント認証方式がnone)の場合は、すべてのリダイレクトURIがhttpsかつループバックアドレス以外のホストである必要があります。
対象リソースこのクライアントが接続するAdmin MCPのエンドポイントURLを指定します。(親の認可サーバーの用途がAdminMCPの場合は必須)
MCPクライアントに設定するURLと完全に一致させてください。一致しない場合、発行したトークンは接続時に拒否されます。指定のないクライアントは名前空間内のどのエンドポイント(すべてのモジュールを含む)にも到達できるトークンを要求できてしまうため、グラント種別を問わずトークン発行を拒否します。
サービスメンバーIDclient_credentialsでアクセストークンを発行するときに、トークンの主体として使用するメンバーIDです。保存時にトークン生成と同じ権限チェックを行います。(親の認可サーバーがclient_credentialsを許可している場合のみ表示されます)
許可するスコープ左のタブで[対応するグラントタイプ]と各スコープグループを切り替えて設定します。
[対応するグラントタイプ]では、このクライアントが利用するグラントタイプをチェックで選択します(1つ以上必須)。親の認可サーバーで無効化されているグラントタイプは、[認可サーバーレベルで無効化されています]と表示され選択できません。
各スコープグループでは、このクライアントに割り当てるスコープを選択します。選択できるスコープは、親の認可サーバーの[許可するスコープ]で許可された範囲に限られます。

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

自社サービスなど、同一組織で管理するクライアントで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を利用できません。

発行済み認可​

OAuth Authorization Serverが発行したアクセストークン/リフレッシュトークンを一覧で確認し、失効できます。退職したメンバーや利用を終了した連携アプリの認可を、有効期限を待たずに無効化する場合に利用します。

確認方法​

OAuth Authorization Server編集画面の[発行済み認可]で[発行済み認可の一覧・失効]をクリックします。

Image from Gyazo

項目説明​

Image from Gyazo

絞り込み​

項目説明
主体メンバートークンの主体となるメンバーのmember_idで絞り込みます。
クライアントIDこの認可サーバーに登録されているクライアントで絞り込みます。
Audienceトークンのaudienceで絞り込みます。
スコープトークンに付与されたスコープで絞り込みます。
状態有効 / 期限切れ / 失効済み / すべてから選択します。初期状態では有効が選択されています。

表示項目​

項目説明
状態有効:利用できるトークンです。
無効(トークンなし):有効期限内ですが、利用できるトークンが存在しません。
期限切れ:有効期限を過ぎています。
失効済み:失効操作によって無効化されています。
主体メンバートークンの主体となるメンバーのログインIDを表示します。クリックするとメンバーの編集画面に移動します。代理ログインで認可された場合は、[承認者(代理ログイン)]として承認したメンバーもあわせて表示します。
クライアントIDトークンを発行したクライアントのクライアントIDを表示します。
グラントタイプトークンを発行したグラントタイプを表示します。
Audienceトークンのaudienceを表示します。
スコープトークンに付与されたスコープを表示します。
発行日時トークンの発行日時を表示します。
有効期限トークンの有効期限を表示します。
備考

一覧にはトークンの索引だけが表示され、トークン本体は保存・表示されません。

失効方法​

以下のいずれかの方法で認可を失効できます。失効した認可のアクセストークン/リフレッシュトークンは直ちに利用できなくなります。

  • 一覧で認可にチェックを入れ、[失効する]をクリックします。
  • [クライアントID]で絞り込み、[このクライアントの認可をすべて失効]をクリックします。
  • [主体メンバー]で絞り込み、[このメンバーの認可をすべて失効]をクリックします。
注記

失効操作には、OAuth Authorization Serverの削除権限が必要です。

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_codeとrefresh_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コミュニティにご参加ください。