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

権限 (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) を付与してアプリに自動リダイレクトします。