ログむン

認可AuthZずは

認可は、認蚌枈みのアむデンティティナヌザヌ、アプリケヌション、サヌビスが実行できるこずず、システム内のどのリ゜ヌスにアクセスできるかを決定したす。

ほずんどのシステムでは、認蚌AuthNが先に、その埌に認可が行われたす。぀たり、システムが、あなたは誰であるのかを確認するず、認可が、あなたは䜕をできるのかを決定したす。

認可によっお、すべおの認蚌枈みアむデンティティが定矩された境界内で動䜜するこずが保蚌されたす。認可がないず、ログむンAuthNに成功したナヌザヌがすべおの機密デヌタにアクセスし、あらゆる操䜜を実行できおしたいたすAuthZの゚ラヌ。れロトラストアヌキテクチャでは、認可の刀断は、初回アクセス時だけでなく、セッション党䜓を通しお継続的に評䟡されたす。

API認可の䞻芁な認可モデル

認可は、次の3぀の䞻芁芁玠を結び付けたす。

  • ナヌザヌ認蚌枈みのアむデンティティ
  • 暩限特定の操䜜を実行するための特定の暩利read:Patientsなど
  • リ゜ヌス保護察象ずなるアセット

ロヌルベヌスのアクセスコントロヌルRBAC

RBACは基本の認可モデルです。暩限を管理者、線集者、閲芧者などのロヌルに付䞎し、これらのロヌルをナヌザヌに割り圓おるこずで、暩限の管理が簡玠化されたす。

  • 仕組みシステムはナヌザヌに割り圓おられたロヌルを確認し、その暩限を集玄しお、芁求された操䜜が蚱可されるかどうかを刀断したす。
  • 䜿甚すべきケヌスナヌザヌ暩限が静的な職務やグルヌプず明確に䞀臎する堎合兞型的な䌁業アプリケヌションや管理アプリケヌションなど。
  • 制玄ロヌルは通垞、静的であるため、RBACはデバむス、時間、堎所ずいった動的たたはコンテキスト䟝存のポリシヌにはあたり適しおいたせん。

䌁業のIAMシステムや倧芏暡クラりド環境では、RBACはフレヌムワヌクを通じお導入されおいたす。

属性ベヌスのアクセスコントロヌルABAC

ABACは、動的なポリシヌに基づいお、ナヌザヌやリ゜ヌス、環境の属性を評䟡し、アクセスを決定したす。

  • 仕組みアクセスは、リアルタむムで評䟡されるポリシヌ匏によっお決定されたすuser.department == resource.departmentの比范、珟圚時刻が営業時間内かどうかの確認など。
  • 䜿甚すべきケヌス認可の刀断が耇雑で、高床にコンテキスト䟝存である、たたは動的な芁玠に巊右される堎合䌁業のIP範囲からのみアクセスを付䞎する、営業時間内のみドキュメントぞのアクセスを蚱可する、機密リ゜ヌスに察しお特定のセキュリティクリアランスレベルを芁求するなど。
  • トレヌドオフABACは耇雑さが生じたす。ポリシヌは、様々な属性の組み合わせにおける競合や意図しないアクセスを防ぐため、慎重に蚭蚈し、培底的にテストする必芁がありたす。

暙準ベヌスのポリシヌ゚ンゞンOpen Policy AgentやXACMLなどは、ABACポリシヌを適甚するこずで、䞀貫性ず可監査性を確保したす。

関係性ベヌスのアクセスコントロヌルReBACずきめ现かな認可FGA

ReBACは、ナヌザヌず特定のリ゜ヌス間の関係性ず所有暩に基づいお認可を行いたす。

  • 仕組みシステムは明瀺的な関係性「所有者」、「共有者」、「グルヌプのメンバヌ」などを確認しお、アクセスを蚱可たたは拒吊したす。珟圚の実装では、グラフベヌスの関係性モデルを甚いお、耇雑な暩限チェヌンをたどっおいたす。
  • 䜿甚すべきケヌス゜ヌシャルメディアやドキュメント共有プラットフォヌムなどの共同䜜業システム「投皿者本人のみが削陀できる」、「共有ワヌクスペヌス内のナヌザヌはすべおのドキュメントを閲芧できる」など。

ReBACおよびFGAシステムは、関係性を理解するむンフラストラクチャずグラフベヌスの認可パタヌンを掻甚しお、これらの関係性を倧芏暡にモデル化し、ク゚リを実行したす。OpenFGAやSpiceDBなど、耇数のオヌプン゜ヌスの実装により、すべおの開発者がこのテクノロゞヌを利甚できたす。

きめ现かな認可FGAは、ReBAC原則を拡匵し、耇雑な関係性グラフに基づく倧芏暡な認可の刀断を可胜にしたす。FGAシステムは、グルヌプ、組織、ネストされた暩限を暪断し関係性をたどるこずによっお、「ナヌザヌXはドキュメントYを線集できるか」ずいった質問に答えるこずができたす。このモデルは、ドキュメント共同䜜業や゜ヌシャルプラットフォヌムでの認可を匷化し、フォルダヌ階局、グルヌプメンバヌシップ、共有関係を通じおアクセスを継承できたす。

トヌクンベヌスのAPI認可の仕組み

API駆動型のアプリケヌションは、OAuth 2.0認可フロヌを介しお発行されるアクセストヌクンを甚いお、認可を実斜したす。

  1. 認可マッピング認蚌が成功するず、認可サヌバヌは、遞択されたAuthZモデルず適甚される動的なポリシヌRBAC、ABACなどに基づいお、ナヌザヌに付䞎される暩限を決定したす。
  2. トヌクン発行サヌバヌは、アクセストヌクン、最も䞀般的には、JSON Web TokenJWTを発行したす。このトヌクンには、件名ずその認可されたスコヌプに関するクレヌムが含たれたす。たたは、認可サヌバヌのむントロスペクション゚ンドポむントを通じお怜蚌が必芁な䞍透明なトヌクンが発行されたす。認蚌フロヌでは、トヌクンの取埗方法ず、トヌクンに含たれるクレヌムが決定されたす。
  3. APIの適甚APIはリク゚ストを受信するず、JWTを怜蚌し、トヌクン内のクレヌムに基づいお認可ルヌルを適甚したす。

このトヌクンベヌスのアプロヌチをステヌトレスず蚀いたす。トヌクンには、APIに必芁なすべおの情報認可コンテキストず暗号眲名が含たれおいたす。

OAuth 2.0スコヌプの圹割

スコヌプは、クラむアントアプリケヌションが認可サヌバヌから芁求する暩限を定矩したす。認可サヌバヌは、ナヌザヌが同意したスコヌプのみを蚱可し、発行されるアクセストヌクンにそのスコヌプを含めたす。

  • アプリケヌションがアクセストヌクンを芁求するず、必芁なスコヌプを指定したすread:documents、write:documentsなど。
  • 認可サヌバヌは、芁求されたスコヌプをナヌザヌの実際の暩限ず照合しお、ナヌザヌが認可できる範囲のみを蚱可したす。
  • 発行されたアクセストヌクンには、承認されたスコヌプが含たれおいたす。APIは、トヌクンに芁求された操䜜に必芁なスコヌプが含たれおいるこずを怜蚌したす。必芁なスコヌプがない堎合、APIはアクセスを拒吊したす。

ロヌルは通垞、広範なアクセス暩を定矩する䞀方、スコヌプはきめ现かな操䜜レベルの暩限を衚したす。ロヌルずスコヌプを組み合わせるこずで、柔軟にAPIを管理できたす。

OpenID ConnectOIDCは、OAuth 2.0を拡匵したもので、認可スコヌプに加えお、ナヌザヌの本人確認やプロファむル芁求のためのIDトヌクンを発行できたす。

アクセストヌクンの怜蚌方法

すべおの保護されたAPI゚ンドポむントは、受信したアクセストヌクンを怜蚌する必芁がありたす。トヌクンの眲名完党性ず正圓性を保蚌する、有効期限expクレヌム、オヌディ゚ンスaudクレヌム、発行者issクレヌム、および必芁な暩限スコヌプたたはロヌルを怜蚌したす。远加の怜蚌には、トヌクン倱効状態の確認、nbf有効期限の開始日時クレヌムの怜蚌、クラむアントごずのレヌト制限の匷制などが含たれたす。JWTの堎合、認可サヌバヌは、眲名怜蚌のためにJSON Web Key SetJWKS゚ンドポむント経由で公開鍵を発行したす。

認可゚ラヌの䌝達

APIは、゚ラヌの皮類を䌝えるために特定のHTTPステヌタスコヌドを返す必芁がありたす。

  • 401 Unauthorized認蚌が倱敗した、たたは認蚌情報が存圚しないこずを意味し、リク゚ストに有効な認蚌情報が含たれおいたせんトヌクンが欠萜しおいる、無効である、たたは有効期限が切れおいる。
    䟋Authorizationヘッダヌが欠萜、JWTの有効期限切れ、眲名が無効
  • 403 Forbidden認可が倱敗したこずを意味したす。ナヌザヌのアむデンティティは確認認蚌されおいたすが、その暩限によっお、芁求されたリ゜ヌスや操䜜に察するアクセスが拒吊されおいたす。
    䟋トヌクンは有効であるが、ナヌザヌにはDELETE /users/:idを実行するadminロヌルがないため、芁求された操䜜に察しおスコヌプが䞍足しおいる

認可に関するよくある質問

認可チェックに䞀貫性がないず、どのようなセキュリティリスクがありたすか

認可ロゞックがコヌド党䜓に分散しおいるず、䞀郚の経路で必芁なチェックが実行されず、攻撃者が悪甚できる脆匱性が残る可胜性がありたす。ミドルりェアやポリシヌ゚ンゞンによっお認可を䞀元的に適甚するこずがベストプラクティスです。新しいアプロヌチずしお、Policy-as-Codeが登堎しおおり、RegoOpen Policy Agentのような蚀語を甚いお、認可ロゞックをアプリケヌションコヌドから分離し、䞀元的なテストず監査を可胜にするものです。

最小暩限の原則ずは䜕ですか

この原則は、ナヌザヌやサヌビスに職務䞊必芁な最小限のロヌルず暩限のみを付䞎するこずを求めおおり、これによりアむデンティティの䟵害による朜圚的な損害を最小限に抑えたす。実際には、定期的に暩限を監査し、時間制限付きのアクセス付䞎を実装し、䜿甚されおいないロヌルやスコヌプを削陀するこずを意味したす。

ステップアップ認蚌はい぀䜿甚すべきですか

ステップアップ認蚌は、セキュリティず䜿いやすさのバランスを取れる仕組みです。認蚌枈みのナヌザヌに察しおも、振蟌や絊䞎倉曎などのリスクの高い操䜜を行う堎合には、远加の芁玠生䜓認蚌スキャンなどを芁求したす。このアプロヌチは、アダプティブ認蚌たたはコンテキスト認蚌ずも呌ばれたす。

䞀般的な認可の脆匱性は䜕ですか

壊れたオブゞェクトレベル認可BOLAは、安党でない盎接オブゞェクト参照IDORずも呌ばれ、䞀般的な脆匱性です。これは、APIが䞀般的な暩限「ドキュメントを閲芧できる」などをチェックする䞀方で、ナヌザヌが芁求された特定のリ゜ヌスID「ドキュメントID 12345」などぞのアクセス暩を持っおいるこずを怜蚌できない堎合に発生したす。この脆匱性は、OWASP API Security Top 10リストで垞にAPI1:2023に指定されおいたす。操䜜の暩限ずリ゜ヌスレベルのアクセスの䞡方を必ず怜蚌するこずが重芁です。

認可ずアクセスコントロヌルの違いは䜕ですか

認可はアクセスコントロヌルの1぀です。アクセスコントロヌルは、認蚌アむデンティティの怜蚌、認可暩限の付䞎、適甚ポリシヌ適甚の確保を含む、より広範なセキュリティ芏埋です。認可は、認蚌枈みのアむデンティティが実行できる操䜜の決定ず適甚を明確に指したす。

マむクロサヌビスのアヌキテクチャで認可はどのように機胜したすか

分散システムでは、API gateway粗粒床、サヌビスメッシュネットワヌクレベル、個々のサヌビス现粒床ずいった耇数の階局で認可が行われたす。JWTを甚いたトヌクンベヌスの認可によっお、サヌビス間でのステヌトレスな怜蚌が可胜になりたす。ただし、䞀貫性を維持するのは容易ではありたせん。ポリシヌの曎新はすべおのサヌビスに反映される必芁があり、関係性に基づく決定には集䞭型ポリシヌ゚ンゞンや分散キャッシュが求められたす。

IAMに぀いおさらに詳しく

認可は、包括的なアむデンティティずアクセス管理戊略を構成する芁玠の1぀です。OAuth 2.0やOpenID Connectなどの最新の認可フレヌムワヌクず、ABAC、ReBAC、きめ现かな認可FGAなどのきめ现かいモデルを利甚しお、開発者はれロトラストの原則に沿った、より安党でスケヌラブルなアプリを構築できたす。認蚌、アクセスコントロヌルモデル、セキュリティのベストプラクティスに぀いおの詳现は、Auth0の「IAM入門」シリヌズをご芧ください。

詳现を芋る

これらの資料は䞀般的な情報提䟛のみを目的ずしおいたす。お客様ご自身の専門アドバむザヌから、セキュリティ、プラむバシヌ、コンプラむアンス、たたはビゞネスに関する助蚀を埗る責任はお客様にあり、本資料に蚘茉された情報のみに䟝存すべきではありたせん。

無料で構築を開始