API Gatewayのオーソライザーの機能を確認してみる

API Gatewayのオーソライザーの機能を確認してみる

API Gatewayのオーソライザー機能を利用すると、認可をすることができるようになります。

「トークン」タイプと「リクエスト」タイプがあるようです。

トークンタイプ

トークンタイプの設定をしてみたいと思います。

Lambda Auth functionというLambda関数を作成する必要があります。この関数が認可機能の役割をしてくれます。

ここではauthという名前のLambda関数を作成します。コードは以下です。

TOKENタイプの場合は、event.authorizationTokenにトークンが入っています。

トークンの種類と意味です。

種類 意味
allow 許可
deny 拒否
unauthorized 不正
fail 失敗

トークンのソースには「method.request.header.Authorization」を指定します。

※トークンのソースはヘッダーのkeyと一致していればOKです

API Gatewayのオーソライザーの機能を確認してみる

「作成」をクリックすると、API GatewayにLambda関数を呼び出す権限を追加するよう促されます。「Grant & Create」を押します。

API Gatewayのオーソライザーの機能を確認してみる

認可設定する

作成したLambda Auth functionをメソッドに対して設定します。

API Gatewayのオーソライザーの機能を確認してみる

「メソッドリクエスト」をクリックします。

「認証」で先ほど作成したカスタムオーソライザーが表示されますので、それを設定します。

API Gatewayのオーソライザーの機能を確認してみる

テストする

保存すると、「テスト」というリンクが表示されるのでテストすることができます。

ヘッダーに「allow」を指定して、「テスト」を押します。

API Gatewayのオーソライザーの機能を確認してみる

これで、生成したポリシーを確認することができます。

参考サイト

aws-api-gateway-clientの使い方

aws-api-gateway-clientモジュールを使えばローカルからapigatewayが叩けます。

クライアント側のindex.jsは以下です。

const apigClientFactory = require('aws-api-gateway-client').default;
const apigClient = apigClientFactory.newClient({
invokeUrl:'https://xxxxxxxxxx.execute-api.ap-southeast-2.amazonaws.com',
accessKey: 'YYEFE2UEI3N1IUYHZGN',
secretKey: 'EEhrWCrUeCCxKggYUpUFTEn7Oa4d+oxQWE7WC8UT',
sessionToken: 'SESSION_TOKEN',
region: 'ap-northeast-1',
apiKey: '12345678901234567890' // APIキー使用している場合はここに記載する
});
const pathParams = {
};
const pathTemplate = '/dev/edge'
const method = 'GET';
const additionalParams = {
headers: {
Authentication:'xx'
},
queryParams: {
}
};
const body = {
};
apigClient.invokeApi(pathParams, pathTemplate, method, additionalParams, body)
.then(function(result){
console.log(JSON.stringify(result.headers));
}).catch( function(result){
console.log(result);
});

view raw
gistfile1.txt
hosted with ❤ by GitHub

aws-api-gateway-client

スポンサーリンク
  • このエントリーをはてなブックマークに追加
  • Evernoteに保存Evernoteに保存
スポンサーリンク

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA