type
status
date
slug
summary
tags
category
icon
password
理論
AWSでのAPI認証に関する基本知識
- AWS API Gateway:
- API Gatewayは、AWS Lambda関数や他のAWSリソースと連携して、Web APIを提供するためのマネージドサービスです。APIリクエストを受け取り、それを適切なバックエンドサービスに転送します。
- 認証方法:
- Lambdaオーソライザー(以前はカスタムオーソライザー)は、API Gatewayがリクエストの認証を行うために使うLambda関数です。OAuthトークンやJWTトークンの検証に使用でき、APIリクエストのヘッダーに含まれる認証情報をチェックします。
- IAMオーソライザー: AWS IAMを使用して、APIへのアクセス権限を設定します。IAMユーザーまたはロールに基づいてアクセスを制御しますが、OAuthトークンを扱う場合は適切ではありません。
- OAuth認証:
- OAuthトークンは、ユーザーがアプリケーションにアクセスするための許可を証明するものです。サードパーティのアイデンティティプロバイダー(例えば、GoogleやAuth0)から発行され、APIの認証に使用されます。
- API Gatewayとサードパーティのアイデンティティプロバイダーの統合:
- API GatewayでOAuthトークンを使って認証を実装する場合、Lambdaオーソライザーを用いてトークンを検証することが一般的です。これにより、API Gatewayが受け取るリクエストの認証をカスタマイズできます。
- SAMLとSSO:
- SAML 2.0は、企業のSSO(シングルサインオン)に使われる標準プロトコルで、主にオンプレミスや企業ネットワーク内の認証で使用されます。OAuthトークンに対しては、SAMLは適していません。
要点:
- OAuthトークンを使用する場合、Lambdaオーソライザーが最も適切な選択肢であり、API Gatewayに対する認証を効果的に行うことができます。
- IAMオーソライザーやSAML 2.0は、OAuthトークンの認証には適していないため、特定の用途に限られます。
実践
略
一問道場
問題 #517
ある企業が、AWSを使用して本番のWebアプリケーションを開発および管理しています。アプリケーションには、Amazon API Gateway HTTP APIが含まれており、これがAWS Lambda関数を呼び出します。Lambda関数はデータを処理し、その後データベースに保存します。企業は、Webアプリケーションのユーザー認証を統合された方法で実装したいと考えています。企業はすでに、他のアプリケーションのためにOAuthトークンを発行するサードパーティのアイデンティティプロバイダーを使用しています。
どのソリューションがこの要件を満たしますか?
A. 企業のサードパーティのアイデンティティプロバイダーをAPI Gatewayと統合します。API Gateway Lambdaオーソライザーを設定して、アイデンティティプロバイダーからのトークンを検証します。LambdaオーソライザーをすべてのAPIルートで要求します。Webアプリケーションを更新して、アイデンティティプロバイダーからトークンを取得し、API Gateway HTTP APIを呼び出す際にAuthorizationヘッダーにトークンを含めます。
B. 企業のサードパーティのアイデンティティプロバイダーをAWS Directory Serviceと統合します。Directory ServiceをAPI Gatewayオーソライザーとして設定し、アイデンティティプロバイダーからのトークンを検証します。Directory ServiceオーソライザーをすべてのAPIルートで要求します。AWS IAM Identity CenterをSAML 2.0アイデンティティプロバイダーとして設定します。WebアプリケーションをカスタムSAML 2.0アプリケーションとして設定します。
C. 企業のサードパーティのアイデンティティプロバイダーをAWS IAM Identity Centerと統合します。API Gatewayを設定して、IAM Identity Centerを使用したゼロ設定の認証および認可を実行します。Webアプリケーションを更新して、IAM Identity CenterからAWS Security Token Service(AWS STS)のトークンを取得し、API Gateway HTTP APIを呼び出す際にAuthorizationヘッダーにトークンを含めます。
D. 企業のサードパーティのアイデンティティプロバイダーをAWS IAM Identity Centerと統合します。API Gateway HTTP APIを呼び出す権限を持つIAMユーザーを設定します。Webアプリケーションを更新して、IAMユーザーからリクエストパラメータを抽出し、API Gateway HTTP APIを呼び出す際にAuthorizationヘッダーにパラメータを含めます。
解説
この問題では、企業が既存のサードパーティのアイデンティティプロバイダー(OAuthトークンを発行)を使用して、AWS上でWebアプリケーションの認証を実装する方法を求めています。最適なソリューションを選択するために、各選択肢を評価します。
選択肢の評価:
A: API GatewayでLambdaオーソライザーを使用
- 説明: 企業のサードパーティアイデンティティプロバイダーをAPI Gatewayと統合し、Lambdaオーソライザーを使ってOAuthトークンを検証します。これにより、API Gatewayがリクエストごとに認証を行い、Lambda関数に渡すトークンの有効性を確認します。
- 適切な選択肢: この方法は、OAuthトークンを使った認証をAPI Gatewayで簡単に統合できるため、最も適しており、シンプルで効果的です。Lambdaオーソライザーを使用してAPIのセキュリティを強化し、OAuthトークンをAuthorizationヘッダーで検証するため、企業の要件を満たします。
B: AWS Directory Serviceを使用
- 説明: AWS Directory ServiceをAPI Gatewayのオーソライザーとして使用し、SAML 2.0アイデンティティプロバイダーとして設定されたIAM Identity Centerと統合します。
- 問題点: AWS Directory ServiceとSAML 2.0を使用する方法は、OAuthトークンを使用する要件に対して過剰な構成が必要です。SAML 2.0は一般的にオンプレミスのディレクトリサービスと統合するため、OAuthベースの認証には適していません。
C: IAM Identity Centerを使ったゼロ設定認証
- 説明: IAM Identity Centerを使用して、API Gatewayにゼロ設定の認証を提供し、IAM Identity CenterからSTFトークンを取得してAPI Gatewayで認証します。
- 問題点: この方法は、企業がすでにOAuthトークンを使っているという要件には適していません。AWS IAM Identity Centerは主にSSO(シングルサインオン)に関連した認証システムであり、OAuthトークンの処理には最適ではありません。
D: IAMユーザーによる認証
- 説明: IAM Identity Centerと統合した後、IAMユーザーをAPI Gatewayに呼び出すために設定します。その後、WebアプリケーションでIAMユーザーのリクエストパラメータをAuthorizationヘッダーに含めます。
- 問題点: IAMユーザーによる認証は、OAuthトークンの使用という要件には適していません。また、このアプローチではOAuthトークンによる認証の一貫性やセキュリティが確保されません。
結論:
最適なソリューションは A です。
Lambdaオーソライザーを使ってAPI GatewayでOAuthトークンを検証し、WebアプリケーションでトークンをAuthorizationヘッダーに含める方法が、最も簡潔で効果的に要件を満たします。この方法は、サードパーティのアイデンティティプロバイダーとOAuthトークンを統合し、APIの認証を実現する最適なアプローチです。
- 作者:みなみ
- 链接:https://tangly1024.com/資格勉強/180d7ae8-88e2-80a4-8577-c0aab5a6c4c3
- 声明:本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
相关文章