ユーザーがサインインできるWebサービスがあります。ユーザーがAPI経由でサービスとやりとりできるようにAWS API Gatewayをセットアップしたいと思います。ユーザー管理/パスワード管理は既にシステムに組み込まれているため、ユーザーは別のシステムに移動する必要はありません。APIゲートウェイがユーザー資格情報を既に格納しているサービスを提供する
私が最初Cognitoユーザプールに見えたが、私は完全にユーザー作成/検証プロセスを自動化することができませんでした、サポートチケットでAWSは、ユーザーが個別に電子メールを確認しなければならないと述べました。彼らはラムダ関数を使って認可を設定することを提案しました。
私はラムダ関数を作成したゲートウェイが許可されるAPIは、しかし、それは、1つの変数のみが認可のために送られるようにIdentity token
に見えます。私がこれを行った場合、私のラムダ関数は私のサービスから、そのキーが有効であることを見つけることができますが、それは本当にユーザーにとっては関連していません。
私が後にしているのは、システムのクライアントIDとパスキーをユーザーに提供する方法です(そのすべてを生成することができます)。ユーザーはクライアントIDを使用してAPIゲートウェイのエンドポイントにリクエストを行いますpasskey、gatewayはクライアントIDとパスキーを検証のために私のシステムを呼び出すラムダ関数に送ります。ラムダは有効なポリシーを返します。そして、API GatewayはクライアントIDまたは他の識別子を返します。私のシステムは要求しているクライアントを知っています。
は何の別々のシステム(Cognito)にユーザーを取ることなく、これを達成するための最良の方法だろうか?
私は後になった機能をリリースしたばかりですので、どうやら – Rudiger
、あなたの質問の後の日のように(https://aws.amazon.com/about-aws/whats-new/2017/09/amazon-api-gateway-now-supports-enhanced-request-authorizers/) –
ちょうどそれをテストし、治療をして、まさに私が後にしたものでした。 – Rudiger