AWS AppSyncでAuth0を認証プロバイダーとしたOIDCを設定する

2020.01.28

どうも!大阪オフィスの西村祐二です。

最近Auth0をよく使っています。また、AWS AppSyncはエンドポイントにOIDC認証を設定できます。そこで、今回はAuth0を認証プロバイダーとした、AWS AppSyncエンドポイントにOIDC認証を設定する方法を紹介したいと思います。

やってみる

Auth0の設定

▼Auth0のコンソール画面からAPIを作成します。

▼APIの名前とIdentifierの設定とアルゴリズムがRS256になっていることを確認してAPIを作成します。

名前とIdentifierは各々自由な名前を設定してください。

▼APIと一緒にアプリケーションも作成されているので、そこでもアルゴリズムがRS256になっていることを確認します。

これでAuth0側の設定は完了です。

AppSyncの設定

▼AWSのコンソール画面からAppSyncのサービス画面へ移動しAPIを作成します。

▼今回は動作確認が目的なので、サンプルプロジェクトのEvent Appを選択してAPIを作成します。

▼APIが作成されるとQueriesの画面に移動しサンプルのリクエストが設定されています。

動作確認のためにmutation CreateEventを実行してイベントがきちんと作成されるか確認しておきます。

▼「Settings」から「Default authorization mode」の「OpenID Connect」を選択します。

▼domainを入力します。ここではhttps://<UserName>.auth0.comになるかと思います。そしてSaveボタンをクリックし保存します。

これで、AWS AppSync側の設定は完了です。

動作確認

動作確認をするためにはAuth0にログインしトークンを取得する必要があります。

Auth0ではコンソール画面からサンプルのコードや実行した際のレスポンス、アクセストークンなど確認することができます。とても便利で最高ですね。

この画面からaccess_tokenをコピーしておきましょう。

AppSyncのコンソールから動作確認してみたいと思います。

Queriesに行き、再生ボタンの右にある入力フォームに上記で取得したaccess_tokenをペーストしておき、ListEventsを実行してみましょう。

実行すると問題なくAPIが実行されてレスポンスにはじめに登録したイベントがレスポンスとして返ってきていることがわかります。

比較のためにaccess_tokenを入力しないで実行してみます。

やりましたね。想定通りエラーとなりました。

さいごに

Auth0を認証プロバイダーとした、AWS AppSyncエンドポイントにOIDC認証を設定する方法を紹介しました。

設定も簡単なので是非試してみてください。

次はクライアント(SPA)からこのAPIを利用する方法をまとめてみたいと思います。

誰かの参考になれば幸いです。

参考サイト

https://medium.com/open-graphql/authenticating-an-aws-appsync-graphql-api-with-auth0-48835691810a