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

権限 (Permission) とリソース管理

組織 (Organization) をリソースとして使用し、組織テンプレートを適用して保護します。例えば、各組織 (Organization) はテナント内に独自のドキュメントを持ちます。適切なロール (Role) を持つユーザーのみが、それらのドキュメントを編集または削除できます。

詳細は 組織の権限 (Organization permissions) を参照してください。

組織ロールベースのアクセス制御 (RBAC) でユーザー権限を管理する

上記の設定により、メールで招待を送信でき、招待されたユーザーは割り当てられたロール (Role) で組織 (Organization) に参加できます。

異なる組織ロール (Role) を持つユーザーは、組織トークン (Organization token) 内で異なるスコープ (Scope)(権限 (Permission))を持ちます。クライアントアプリとバックエンドサービスの両方で、これらのスコープ (Scope) を確認し、表示する機能や許可された操作を判断してください。

組織トークン (Organization token) のスコープ (Scope) 更新を処理する

このセクションでは、組織テンプレートや認可 (Authorization) シナリオの管理に関する高度なトピックを扱います。これらの概念に慣れていない場合は、まず 認可 (Authorization) および 組織テンプレート (Organization template) をお読みください。

組織トークン (Organization token) のスコープ (Scope) 更新の管理には、次の内容が含まれます:

既存のスコープ (Scope) を取り消す

例えば、管理者 (admin) を非管理者メンバーに降格する場合、ユーザーからスコープ (Scope) を削除する必要があります。このような場合は、キャッシュされた組織トークン (Organization token) をクリアし、リフレッシュトークン (Refresh token) で新しいトークンを取得してください。減少したスコープ (Scope) は新しく発行された組織トークン (Organization token) に即座に反映されます。

新しいスコープ (Scope) を付与する

これは 2 つのシナリオに分けられます:

認証システムですでに定義されている新しいスコープ (Scope) を付与する

スコープ (Scope) の取り消しと同様に、新たに付与されたスコープ (Scope) がすでに認証サーバーに登録されている場合、新しい組織トークン (Organization token) を発行すれば、新しいスコープ (Scope) が即座に反映されます。

認証システムに新たに導入されたスコープ (Scope) を付与する

この場合、ユーザーの組織トークン (Organization token) を更新するために再ログインまたは再同意プロセスをトリガーしてください。例えば、Logto SDK の signIn メソッドを呼び出します。

権限 (Permission) をリアルタイムで確認し、組織トークン (Organization token) を更新する

Logto は、組織 (Organization) 内のユーザー権限 (Permission) をリアルタイムで取得するための Management API を提供しています。

ユーザーの組織トークン (Organization token) 内のスコープ (Scope) とリアルタイムの権限 (Permission) を比較し、ユーザーが昇格または降格されたかどうかを判断します。

  • 降格された場合、キャッシュされた組織トークン (Organization token) をクリアすると、SDK が自動的に更新されたスコープ (Scope) で新しいトークンを発行します。

    const { clearAccessToken } = useLogto();

    ...
    // 取得したリアルタイムスコープ (Scope) が組織トークン (Organization token) のスコープ (Scope) より少ない場合
    await clearAccessToken();

    この操作には再ログインや再同意プロセスは不要です。新しい組織トークン (Organization token) は Logto SDK により自動的に発行されます。

  • 認証システムに新しいスコープ (Scope) が導入された場合、再ログインまたは再同意プロセスをトリガーしてユーザーの組織トークン (Organization token) を更新してください。例えば、React SDK では:

    const { clearAllTokens, signIn } = useLogto();

    ...
    // 取得したリアルタイムスコープ (Scope) に新たに割り当てられたスコープ (Scope) がある場合
    await clearAllTokens();
    signIn({
    redirectUri: '<your-sign-in-redirect-uri>',
    prompt: 'consent',
    });

    上記のコードは同意画面 (Consent screen) への遷移をトリガーし、ユーザーの組織トークン (Organization token) に更新されたスコープ (Scope) を付与してアプリに自動リダイレクトします。