2016-04-15 16 views
2

AWS LambdaおよびおそらくAWS API Gatewayに一連のRESTエンドポイントとしてサービスを実装することを検討しています。フロントエンドは、これらのエンドポイントを直接呼び出すJSブラウザクライアントであり、中間層の必要はありません。AWS Lambda、AWS API GatewayおよびセキュアなRESTエンドポイント

私の研究では、私が見つけることができないのは、「ログイン」している人への呼び出しにアクセスする方法をどのようにして保護するかです。私はラムダ呼び出しがステートレスなので、セッションデータがないことがわかります。セッションデータは、認証されていることと、特定のエンドポイントにアクセスする権限が与えられていることを知る以外には必要ありません。データベース(DynamoDBまたはRDS)があるので、セッションデータが必要な場合は作成できます。

これを行う方法はありますか?私は各APIコールでユーザー名とパスワードを渡すことができたことを認識していますが、より良い方法が必要です。

また、これはおそらくJavaで実装されます。私はSpring Securityを使用できますか?

答えて

2

ラムダ関数でSpring Securityを使用するとは思わないでしょう。そのことがうまくいくとは思えません。たとえそれがLambda上で動作することができたとしても、あなたが処理したいと思うよりも、あなたの関数のコールドスタートアップ時間を増やすことは間違いありません。

ステートレスサービスにユーザー認証チェックを提供するには、JWT(JSON Webトークン)を使用することをお勧めします。 Auth0は、JWT hereに関する一般的な記事と、API GatewayとLambda hereでのAuth0の使用に関するチュートリアルを提供しています。 Auth0を使用しなくても、第2のチュートリアルは、API GatewayとLambdaでユーザー認証を実行する方法を理解するのに便利だと思います。

API Gateway Custom Authorization機能を使用すると、すべての認証コードをAPIエンドポイントの「ゲートキーパー」のように機能する1つのラムダ機能にカプセル化することができます。カスタムAuthorization Lambda関数を使用して、APIに送信されたJSON Webトークンを検証することをお勧めします。

+0

非常にありがとうございます。これは参考になります。 AWS Cognitoを認証に使用できますか?私は認可にあまり心配していません。 –

+0

はいCognitoは、API Gateway IAM認証と組み合わせて使用​​できます。 –

関連する問題