APIGatewayのオーソライザーを使ってみる

APIGateway, AWS

はじめに

岡崎です。今回はAPIGatewayのオーソライザについて書きたいと思います。

オーソライザーとは??

一言で言うと、認可サーバです。

  • 各Function毎で、想定しているIPと違うから弾きたい
  • ヘッダが想定しているものがついてきてるよね
  • JsonWebTokenが正しく検証できるんだっけ?? …etc

上記みたいなことをやりたい時に使います。オーソライザーを使用することで、上記の部分を各Functionで書かずに済みます。(共通処理として持たせることが可能)
オーソライザーは、任意のFunctionと紐づけることが可能です。
つまり、認証用LambdaFunctionを作成しておけば、後は設定することでオーソライザーとして使用することが可能になります。

流れ

クライアント(APIGatewayで作成したエンドポイントを指定)
=> オーソライザー(認証処理)
=> 各LambdaFunctionでの処理

ソース部分

(ここでは、例外処理とかその他もろもろの部分を省略して書きます。)

こんな感じで、書くことができます。
ただし、普通のFunctionとは違い、レスポンスは固定の物を返さないといけません。(AWSの仕様となります。)

ここが固定の物ではない場合は、補足部分にあるような謎なレスポンスをクライアントに返すこととなります。
この固定のレスポンス部分は、generate_policy() で定義している内容になります。
Allowの時は、後続のLambdaの処理に行き、Denyの時は、クライアント側に403(認証エラー)のステータスコードを返すことになります。

補足

  • 固定レスポンス以外をレスポンスしてしまった時

  • 403の場合のレスポンス

この記事を書いた人

岡崎拓哉
岡崎拓哉

2016年に入社した新卒。ドラムとインコが好きな人。
最近は、デザイン駆動設計や関数型プログラミングに興味あり。
マネジメントも覚えていきたい系エンジニア。

APIGateway, AWS