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

代理ログイン機能の使い方

Kurocoの代理ログイン機能を使うと、特定のメンバーが別のメンバーのアカウントに代わりにログインできます。 本チュートリアルでは、代理ログインの設定方法と、管理画面・API・Admin MCPそれぞれでの利用手順について説明します。

代理ログインとは

代理ログインは、特定の権限を持つメンバーが、別のメンバーのアカウントに代理でログインできる機能です。 主に以下のような場面で活用できます。

  • メンバーがログインできない場合のサポート対応
  • メンバーの画面表示やデータの確認
  • メンバーに代わってコンテンツの操作や設定変更を行う
  • 複数グループに所属するユーザーが、グループごとにアカウントを切り替えて利用する
注意

代理ログインの設定(メンバー編集画面での代理ログイン許可の付与)には、編集ユーザーまたはスーパーユーザー権限が必要です。

前提条件

  • 代理ログインの設定を行うには、編集ユーザーまたはスーパーユーザー権限を持つメンバーであること
  • 代理ログインの利用は、管理画面へのアクセス権限がないメンバーでも可能(Login/alias_login エンドポイント経由)

設定手順

ステップ1: メンバー編集画面を開く

  1. Kuroco管理画面にログインします。
  2. [メンバー管理] -> [メンバー]をクリックします。
  3. メンバー一覧から、代理ログインをされる側(ログイン先)のメンバーの名前をクリックして編集画面を開きます。

ステップ2: 代理ログイン許可を設定する

メンバー編集画面のID情報セクションにある「代理ログイン許可」フィールドを見つけます。

項目説明
代理ログイン許可代理ログインを許可するメンバーIDを入力し、自分の代わりにログインできる人を設定できます。
  1. 「代理ログイン許可」フィールドに、代理ログインをする側(管理者側)のメンバーIDを入力します。
  2. 複数のメンバーに代理ログインを許可する場合は、それぞれのメンバーIDを入力します。
  3. [更新する]をクリックして設定を保存します。
ヒント

メンバーIDは、メンバー一覧画面の「ID」列で確認できます。

ステップ3: 代理ログインを実行する

代理ログインの利用方法は、管理画面からの実行、APIからの実行、Admin MCP(OAuth認証)での利用の3通りがあります。

管理画面から実行する場合

管理画面へのログイン権限を持つメンバーは、管理画面から代理ログインを実行できます。

  1. 代理ログインを許可されたメンバーで管理画面にログインします。
  2. 画面上部に表示されるメンバーのアイコンをクリックします。
  3. 「代理ログイン」を開き、ログインしたいメンバー名をクリックします。
  4. 対象メンバーとしてログインした状態になります。

Image from Gyazo

備考

管理画面の「Login as」ドロップダウンには、管理画面へのログイン権限を持つメンバーのみが表示されます。

APIから実行する場合

管理画面へのアクセス権限がないメンバーでも、Login/alias_login エンドポイントを使用して代理ログインを実行できます。 フロントエンドから代理ログインを実装する場合は、この方法を使用します。

代理ログインする側のメンバーとしてログインした状態で、代理ログイン先のメンバーIDを指定してリクエストします。

リクエストパラメータ

パラメータ必須説明
aliaslogin_idinteger代理ログイン先のメンバーID

レスポンス

フィールド説明
grant_tokenstringトークン交換に使用するgrant token
statusinteger0: OK
member_idintegerログインしたメンバーID
infoobject追加のログイン情報(Cookie認証の場合はvalidUntilを含みます)
messagesarrayメッセージ
errorsarrayエラー

代理ログインに失敗した場合は、ステータスコード401が返ります。

代理ログイン中に、元のメンバーのIDをaliaslogin_idに指定して再度リクエストすると、元のメンバーのログイン状態に戻ります。

備考

代理ログイン中は、対象メンバーの権限でフロントエンドやAPIにアクセスすることになります。メンバーのプロフィール情報やコンテンツの閲覧権限などが、対象メンバーのものとして適用されます。

ヒント

ログイン中のメンバーがどのメンバーIDで代理ログインできるかは、basic_infoのパラメータにaliaslogin_targetを設定したLogin::profileのエンドポイントで確認可能です。

Admin MCPで利用する場合

Admin MCPサーバにOAuth認証で接続する場合、同意画面の「トークンの委譲先」で代理ログイン先のメンバーを選択できます。 代理ログイン先のメンバーを選択して承認すると、発行されたアクセストークンはそのメンバーとしてMCPツールを実行します。

  1. MCPクライアントからAdmin MCPサーバへ接続し、OAuth認証を開始します。
  2. 代理ログインを許可されたメンバーでログインします。
  3. 同意画面に「トークンの委譲先」セクションが表示されるので、「自分として委譲する」か、代理ログイン先のメンバーを選択します。
  4. 内容を確認して承認すると、選択したメンバーを対象とするアクセストークンが発行されます。

「トークンの委譲先」には、以下の条件をすべて満たすメンバーが表示されます。

  • 対象メンバーの「代理ログイン許可」に、ログイン中のメンバーのIDが設定されている
  • 対象メンバー・ログイン中のメンバーの双方で「ログインの許可」が有効で、「ログイン許可の有効期限」内である
  • 代理ログイン許可に期間が設定されている場合は、期間内である
  • 対象メンバーが有効なグループに所属しており、そのグループで管理画面の利用が無効化されていない
備考

代理ログイン先のメンバーを委譲先に選択した場合、以下のように動作します。

  • トークンの実効権限は、選択したメンバーの現在のグループ権限をOAuthスコープの上限で絞ったものになります。mcp:tools.writeでは書き込み権限の上限が適用され、mcp:adminではグループ権限がそのまま使われます。
  • 操作は選択したメンバーとして実行され、承認したメンバーのIDが操作元として監査ログに記録されます。データの更新者にも承認したメンバーが記録されます。
  • subprofileemailのクレームは選択したメンバーの情報になり、承認したメンバーはactクレームで操作元として示されます。
注意
  • mcp:adminスコープを委譲するには、承認するメンバーと委譲先メンバーの双方がスーパーユーザーである必要があります。
  • 「代理ログイン許可」を解除すると、発行済みのアクセストークンも次のリクエストから利用できなくなります。
  • 代理ログイン中のセッションからは、OAuth認証の承認を行えません。自分のアカウントで直接ログインしてから承認します。

Admin MCPサーバの認証方式やOAuthスコープの詳細は、MCP サーバ リファレンスを参照してください。

設定例

例1: 管理者がカスタマーサポートとして利用する

カスタマーサポート担当者(メンバーID: 1)が、一般メンバー(メンバーID: 100)のアカウントに代理ログインする場合:

  1. メンバーID: 100の編集画面を開きます。
  2. 「代理ログイン許可」フィールドにメンバーID 1 を入力します。
  3. [更新する]をクリックして保存します。

これにより、メンバーID: 1でログインした管理者が、メンバーID: 100として代理ログインできるようになります。

例2: 複数の管理者に代理ログインを許可する

複数のサポート担当者(メンバーID: 1, 2, 3)に代理ログインを許可する場合:

  1. 対象メンバーの編集画面を開きます。
  2. 「代理ログイン許可」フィールドにメンバーID 1, 2, 3 をそれぞれ入力します。
  3. [更新する]をクリックして保存します。

注意事項

  • 設定には編集ユーザー以上の権限が必要: 代理ログインの設定(代理ログイン許可の付与)には、編集ユーザーまたはスーパーユーザー権限が必要です。
  • 利用は管理画面権限不要: 代理ログインの利用(実行)は、管理画面へのアクセス権限がないメンバーでもAPIエンドポイント(Login/alias_login)経由で可能です。
  • 操作の責任: 代理ログイン中に行った操作は、操作ログ等に記録されます。代理ログインの利用は必要最小限にとどめてください。
  • セキュリティの考慮: 代理ログインの許可は、信頼できるメンバーのみに付与してください。不要になった代理ログイン許可は速やかに削除してください。
  • ログイン許可が必要: 代理ログインの対象メンバーの「ログインの許可」が有効になっている必要があります。
  • Admin MCPトークンへの反映: Admin MCPのアクセストークンに適用した代理ログインの委譲は、「代理ログイン許可」を解除すると次のリクエストから無効になります。

関連ドキュメント


サポート

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