# 認可とRBAC (Node.js / NestJS) > ロールベースアクセス制御、カスタムガード、デコレーター、権限、リソースの所有権 - 20 面接問題 - Mid-Level - [面接問題: Node.js / NestJS](https://sharpskill.dev/ja/technologies/node-nestjs/interview-questions.md) ## 1. RBAC(Role-Based Access Control)とは何ですか? **回答** RBACは、ユーザーのロールに基づいて権限を付与するアクセス制御システムです。各ユーザーごとに権限を個別に管理する代わりに、RBACは権限をロール(例:ADMIN、USER、MANAGER)にまとめ、これらのロールをユーザーに割り当てます。これによりアプリケーションのアクセス管理が簡素化され、特にNestJSではカスタムガードやメタデータデコレーターと組み合わせて役立ちます。 ## 2. 認証と認可の違いは何ですか? **回答** 認証はユーザーの身元(あなたは誰か?)を確認し、通常はログイン/パスワードやJWTトークンを介して行われます。認可はユーザーの権限(あなたは何ができるか?)を確認し、ロールや権限に基づいてリソースへのアクセスを制御します。NestJSでは、認証にはJwtAuthGuardがよく使われ、認可にはアクセス権を確認するためにRolesGuardのようなカスタムガードが使われます。 ## 3. カスタムガードを作成できるNestJSのデコレーターはどれですか? **回答** NestJSでカスタムガードを作成するには、CanActivateインターフェースを実装し@Injectable()で装飾されたクラスを作成します。このインターフェースは、booleanまたはPromiseを返すcanActivate(context: ExecutionContext)メソッドを必須とします。その後、ガードは@UseGuards()でルートに適用できます。このアーキテクチャにより、複雑な検証を行うために依存関係(サービス、リポジトリ)をガードに注入できます。 ## さらに17問利用可能 - RBACにおいて「permission(権限)」は何を表しますか? - NestJSでガードをcontrollerに適用するにはどうすればよいですか? 無料で登録: https://sharpskill.dev/ja/login ## その他のNode.js / NestJS面接トピック - [Node.js の基礎](https://sharpskill.dev/ja/technologies/node-nestjs/interview-questions/nodejs-fundamentals.md): 20問, Junior - [Node.js コア API](https://sharpskill.dev/ja/technologies/node-nestjs/interview-questions/nodejs-core-apis.md): 25問, Junior - [非同期プログラミング](https://sharpskill.dev/ja/technologies/node-nestjs/interview-questions/asynchronous-programming.md): 25問, Junior - [Express.js の基礎](https://sharpskill.dev/ja/technologies/node-nestjs/interview-questions/express-basics.md): 20問, Junior - [NestJSの基礎](https://sharpskill.dev/ja/technologies/node-nestjs/interview-questions/nestjs-fundamentals.md): 23問, Junior - [REST API 設計](https://sharpskill.dev/ja/technologies/node-nestjs/interview-questions/rest-api-design.md): 20問, Junior - [バリデーションとDTO](https://sharpskill.dev/ja/technologies/node-nestjs/interview-questions/validation-dto.md): 20問, Junior - [APIドキュメントと契約](https://sharpskill.dev/ja/technologies/node-nestjs/interview-questions/api-documentation.md): 20問, Junior - [エラーハンドリング](https://sharpskill.dev/ja/technologies/node-nestjs/interview-questions/error-handling.md): 20問, Junior - [ユニットテスト](https://sharpskill.dev/ja/technologies/node-nestjs/interview-questions/testing-unit.md): 20問, Junior - [タスクスケジューリング](https://sharpskill.dev/ja/technologies/node-nestjs/interview-questions/scheduling-cron.md): 15問, Junior - [NestJS のモジュールと DI](https://sharpskill.dev/ja/technologies/node-nestjs/interview-questions/nestjs-modules-di.md): 20問, Mid-Level - [設定と環境管理](https://sharpskill.dev/ja/technologies/node-nestjs/interview-questions/configuration-environment.md): 20問, Mid-Level - [JWT認証](https://sharpskill.dev/ja/technologies/node-nestjs/interview-questions/authentication-jwt.md): 25問, Mid-Level - [TypeORMによるデータベース](https://sharpskill.dev/ja/technologies/node-nestjs/interview-questions/database-typeorm.md): 30問, Mid-Level - [Prisma ORM](https://sharpskill.dev/ja/technologies/node-nestjs/interview-questions/prisma-orm.md): 25問, Mid-Level - [ミドルウェアとインターセプター](https://sharpskill.dev/ja/technologies/node-nestjs/interview-questions/middleware-interceptors.md): 20問, Mid-Level - [ファイルアップロード](https://sharpskill.dev/ja/technologies/node-nestjs/interview-questions/file-upload.md): 15問, Mid-Level - [WebSockets](https://sharpskill.dev/ja/technologies/node-nestjs/interview-questions/websockets.md): 20問, Mid-Level - [NestJSによるGraphQL](https://sharpskill.dev/ja/technologies/node-nestjs/interview-questions/graphql-basics.md): 25問, Mid-Level - [エンドツーエンドテスト](https://sharpskill.dev/ja/technologies/node-nestjs/interview-questions/testing-e2e.md): 20問, Mid-Level - [Redisによるキャッシング](https://sharpskill.dev/ja/technologies/node-nestjs/interview-questions/caching-redis.md): 20問, Mid-Level - [Bull によるキュー](https://sharpskill.dev/ja/technologies/node-nestjs/interview-questions/queues-bull.md): 20問, Mid-Level - [DevOps、Logging、CI/CD](https://sharpskill.dev/ja/technologies/node-nestjs/interview-questions/logging-monitoring.md): 25問, Mid-Level - [Docker とコンテナ化](https://sharpskill.dev/ja/technologies/node-nestjs/interview-questions/docker-containerization.md): 25問, Mid-Level - [マイクロサービス](https://sharpskill.dev/ja/technologies/node-nestjs/interview-questions/microservices.md): 30問, Senior - [セキュリティのベストプラクティス](https://sharpskill.dev/ja/technologies/node-nestjs/interview-questions/security-best-practices.md): 25問, Senior - [パフォーマンスとクラウドデプロイ](https://sharpskill.dev/ja/technologies/node-nestjs/interview-questions/performance-optimization.md): 30問, Senior --- Source: SharpSkill (https://sharpskill.dev), tech interview preparation for your real stack. HTML version of this page: https://sharpskill.dev/ja/technologies/node-nestjs/interview-questions/authorization-rbac