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

Logto Management API でアプリサービスをセットアップする

Logto の Management API を利用して、アプリ内でカスタムの 組織フロー を構築できます。以下は Management API を統合するための基本的なセットアップ手順です。すでにご存知の場合は、チュートリアル へ進んでください。

セットアップに慣れたら、他の API も活用して、ビジネスニーズに合わせたフローを構築できます。

マシン間通信 (M2M) 接続の確立​

Logto では、マシン間通信 (M2M) 認証 (Authentication) を利用して、バックエンドサービスと Logto Management API エンドポイントを安全に接続します。 バックエンドサービスは Management API を使って、組織の作成、メンバーの追加や削除 など、組織関連のタスクを処理できます。

この手順は以下の通りです:

  1. Logto コンソールで マシン間通信 (M2M) アプリ を作成します。
M2M アプリの詳細
  1. Logto から M2M アクセス トークン (Access token) を取得します。詳細はこちら。
  2. バックエンドサービスから Logto Management API を呼び出します。例えば、すべての組織を一覧表示する場合:
curl \
-X GET https://[tenant_id].logto.app/api/organizations \
-H "Authorization: Bearer $M2M_ACCESS_TOKEN" \
-H "Content-Type: application/json"

アプリサーバーの保護​

エンドユーザーが一部の組織操作をセルフサービスで実行できるため、エンドユーザーとアプリサーバーの間に認可 (Authorization) レイヤーを追加してください。サーバーはすべてのリクエストを仲介し、ユーザーの組織トークン (Organization token) と必要なスコープ (Scope) を検証したうえで、サーバーが保持する M2M 資格情報を使って Management API を呼び出すべきです。

ユーザーが組織トークン (Organization token) を提示してアクション(例:組織の作成)をリクエストした場合、サーバーはまずトークン内のスコープ (Scope) を検証します。トークンに org:create など必要なスコープ (Scope) が含まれていれば、リクエストを認可 (Authorization) し、M2M フロー経由で Logto Management API を呼び出して組織を作成します。

必要なスコープ (Scope) が含まれていない場合は、403 Forbidden を返し、M2M ロジックをスキップします。これにより、適切な権限を持たないユーザーが組織を作成できないようにします。

以下は一般的な認可 (Authorization) パターンです。

組織権限の利用​

まず、前のセクション で組織権限とロールを組織テンプレートに定義していることを確認してください。

次に、Logto 設定に UserScope.Organizations(値:urn:logto:organization)が含まれていることを確認します。React SDK の例:

// src/App.js
import { UserScope } from '@logto/react';

const config = {
endpoint: 'https://<tenant-id>.logto.app/', // Logto エンドポイント
appId: '40fmibayagoo00lj26coc', // アプリ ID
resources: [
'https://my.company.com/api', // グローバル API リソース識別子
],
scopes: [
UserScope.Email,
UserScope.Phone,
UserScope.CustomData,
UserScope.Identities,
UserScope.Organizations, // 組織トークン (Organization token) をリクエスト
],
};

これにより、getOrganizationToken(organizationId) を呼び出す際、クライアント SDK はユーザーに割り当てられた組織権限を含む組織トークン (Organization token) をリクエストします。バックエンドサービスはこのトークンを検証し、権限に基づいて後続のリクエストを認可 (Authorization) できます。

組織レベル(非 API)権限の保護については、完全ガイド を参照してください。

組織レベル権限と API レベル権限の混在​

API リソースと権限がグローバルに登録されているが、ロールは組織レベルで定義されている場合(API レベルの権限を組織テンプレート内の組織ロールに割り当て可能)、このパターンが該当します。

実装方法は前述のセクションと同じです。常に組織 ID を指定し、getOrganizationToken(organizationId) を呼び出して組織トークン (Organization token) を取得してください。そうしないと、組織権限が含まれません。

組織レベル API 権限の保護については、完全ガイド を参照してください。