組織メンバーの招待
マルチ組織アプリケーションでは、よくある要件として組織へのメンバー招待があります。このガイドでは、その機能を実装するための手順と技術的な詳細を説明します。
フロー概要
全体のプロセスは、以下の図で示されています:
組織ロールの作成
メンバーを招待する前に、組織ロールを作成します。ロールと権限について詳しくは 組織テンプレート を参照してください。
このガイドでは、典型的な組織ロールとして admin と member の 2 つを作成します。
admin ロールは組織内のすべてのリソースへのフルアクセス権を持ち、member ロールは限定的なアクセス権を持ちます。例:
adminロール:read:data- 組織のすべてのデータリソースの読み取り権限write:data- 組織のすべてのデータリソースの書き込み権限delete:data- 組織のすべてのデータリソースの削除権限invite:member- 組織へのメンバー招待権限manage:member- 組織内メンバーの管理権限delete:member- 組織からメンバーを削除する権限
memberロール:read:data- 組織のすべてのデータリソースの読み取り権限write:data- 組織のすべてのデータリソースの書き込み権限invite:member- 組織へのメンバー招待権限
これらは Logto コンソール で簡単に作成できます。また、Logto Management API を使ってプログラムから組織ロールを作成することも可能です。
メールコネクターの設定
招待はメールで送信されるため、メールコネクター が正しく設定されていることを確認してください。招待を送信するには、使用タイプが OrganizationInvitation の メールテンプレート を設定します。組織(例:名前、ロゴ)や招待者(例:メールアドレス、名前)の 変数 を本文に含めることができ、必要に応じて ローカライズされたテンプレート もカスタマイズできます。
OrganizationInvitation 用のサンプルメールテンプレートは以下の通りです:
{
"subject": "Welcome to my organization",
"content": "<p>この <a href=\"{{link}}\" target=\"_blank\">リンク</a> から {{organization.name}} に参加してください。</p>",
"usageType": "OrganizationInvitation",
"type": "text/html"
}
メール本文の {{link}} プレースホルダーは、メール送信時に実際の招待リンクに置き換えられます。
Logto Cloud の組み込み「Logto メールサービス」は現在 OrganizationInvitation 使用タイプをサポートしていません。独自のメールコネクター(例:SendGrid)を設定し、OrganizationInvitation テンプレートを用意してください。
Logto Management API で招待を処理する
Logto Management API のセットアップがまだの場合は、Management API との連携 を参照してください。
Logto Management API で組織招待を作成する
組織機能には招待関連の Management API が用意されています。これらの API で次のことが可能です:
-
POST /api/organization-invitations: 割り当てた組織ロールで組織招待を作成 -
POST /api/one-time-tokens: 招待を承諾する際に招待者が認証するためのワンタイムトークンを作成 詳細はこちら -
POST /api/organization-invitations/{id}/message: 組織招待をメールで招待者に送信 注意:ペイロードはlinkプロパティをサポートしているため、招待 ID をもとに独自の招待リンクを作成できます。例:{
"link": "https://your-app.com/invitation/join?id=your-invitation-id&token=your-one-time-token&email=invitee-email"
}