実現したいこと
- CloudFrontにて「Lambda@Edge + Python3」でBasic認証を導入する
- Node.jsで書かれたこちらのコードをPython3で表現したい
不明点
- そもそも実現可能か(当方の知識ではPython3上でどう表現するべきか判断できず)
- 見様見真似でNode.jsのコードを模写してみた(↓に記載のコード)が、502 Errorとなってしまう
参考情報
Node.jsでの実現方法
Lambda@Edge:リクエストイベント
Lambda@Edge:関数の例
PythonでのBasic認証の実装例_1
PythonでのBasic認証の実装例_2
模写したコード
import base64 import json def lambda_handler(event, context): request = event['Records'][0]['cf']['request'] headers = request['headers'] user = 'user' password = 'pass' basic_user_and_pasword = base64.b64encode('{}:{}'.format(user, password).encode('utf-8')) if (headers.get('authorization') == None or headers['authorization'][0]['value'] != basic_user_and_pasword): body = 'Unauthorized' response = { 'status': '401', 'statusDescription': 'Unauthorized', 'body': body, 'headers': { 'www-authentication': [ { 'key': 'WWW-Authenticate', 'value':'Basic' } ] } } return response return request
ぜひ皆さまの知恵をお借りしたいです。
よろしくお願いいたしますo(_ _ )o
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/09 09:43