teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

ALBの設定をするとエラーになり、外すとエラーにはならないがブラウザーアクセスで認証が掛からない状況を追記しました。

2021/11/05 04:15

投稿

query1000
query1000

スコア5

title CHANGED
@@ -1,1 +1,1 @@
1
- AWS:Cognito+Google認証でエラー
1
+ 【追記あり】AWS:Cognito+Google認証でエラー
body CHANGED
@@ -1,3 +1,5 @@
1
+ ※11/4に起票した質問ですが、11/5にさらに追記しました。追記部分は【11/5追記】と書いています。よろしくおねがいします。
2
+
1
3
  AWSを使ってWebアプリケーションを開発しています。
2
4
  Cognitoを使ってGoogleソーシャルログインを装備しようとしています。
3
5
  以下のドキュメントに従って作業しています。
@@ -18,8 +20,9 @@
18
20
  ユーザー名属性=email
19
21
 
20
22
  - **アプリクライアントの作成**を行い、アプリクライアントIDを得ました。以下のように設定しました。
21
- シークレットキーなし
23
+ シークレットキーあり
22
24
  SRP認証オフ
25
+ 【11/5追記】最初は上記のドキュメントにならって「シークレットキーなし」にしていましたが、そうすると後でHTTPSリスナールールの認証に追加できないのでありで再作成しました。
23
26
 
24
27
  - **アプリクライアントの設定**において、以下のように設定しました。
25
28
  有効なIDプロバイダー=Cognito Userをオン
@@ -58,27 +61,24 @@
58
61
  - **アプリクライアントの設定**で、以下のように設定しました。
59
62
  有効なIDプロバイダ=Googleを追加
60
63
 
64
+ ### 【11/4追記】ALBの設定
65
+ 本来下のUIのテストを行ってから行う作業かと思いますが、ALBのHTTPSのリスナーにルールを追加しました。
66
+ HTTPS 443:デフォルトアクションに、もともとEC2のターゲットグループへの転送が入っていましたが、そこに「認証」アクションの追加を行いました。
67
+ - 認証: Amazon Cognito
68
+ - Cognitoユーザープール:唯一のユーザープール
69
+ - アプリクライアント:唯一のアプリクライアント
70
+ - スコープ:openid email profile
71
+ - 他の項目:デフォルトのまま
72
+
73
+
61
74
  ### テスト
62
75
  - **ホストされたUIを起動**をクリックしました。
63
- GoogleアイコンとともにContinue with Googleボタンが表示されます。
76
+ GoogleアイコンとともにContinue with Googleボタンが表示されますが、ボタンをクリックすると、「An error was encountered with the requested page.」と表示されます
77
+ - URLは「https://example.auth.ap-northeast-1.amazoncognito.com/error?error=redirect_mismatch&client_id=CognitoのクライアントID」です。
78
+ - 上記の「ALBの設定」で加えたHTTPSのリスナールール「認証」を外すと、Googleアイコンをクリックすると正常にhttps://www.example.comが表示されました。
79
+ - しかし、この状態では、ブラウザーからhttps://www.example.comにアクセスすると、当然ながらWebが正常に表示されます。
64
- この時点のURLは以下通りです
80
+ - この時点で、上記「ALB設定」のようにリスナールール「認証」をつけてみました
81
+ - その状態で、https://www.example.comにアクセスすると、上記と同様のエラーになります。
65
82
 
66
- > https://example.auth.ap-northeast-1.amazoncognito.com/login?client_id=CognitoのクライアントID&response_type=code&scope=email+openid+profile&redirect_uri=https://www.example.biz
67
-
68
- ボタンをクリックすると、「An error was encountered with the requested page.」と表示されます。
69
-
70
- この時点のURLは以下の通りです。
71
-
72
- > https://example.auth.ap-northeast-1.amazoncognito.com/oauth2/authorize?client_id=CognitoのクライアントIDでも、GCPのクライアントIDでもない値&redirect_uri=https%3A%2F%2Fwww.example.com%2Foauth2%2Fidpresponse&response_type=code&scope=openid&state=278文字の英数字
73
-
74
- ドキュメントには、以下のようにテスト用URLを構築するように書かれていますので、そっちも試してみました。
75
-
76
- > https://example.auth.ap-northeast-1.amazoncognito.com/login?response_type=token&client_id=CognitoのクライアントID&redirect_uri=https://www.example.com
77
-
78
- 結果は同じエラーが表示されました。
79
- この時点のURLは以下の通りです。
80
-
81
- > https://example.auth.ap-northeast-1.amazoncognito.com/oauth2/authorize?client_id=CognitoのクライアントIDでも、GCPのクライアントIDでもない値(さきほどと同じ値)&redirect_uri=https%3A%2F%2Fwww.example.com%2Foauth2%2Fidpresponse&response_type=code&scope=openid&state=2542文字の英数字&expires_in=3600&token_type=Bearer
82
-
83
- 約1日いろいろなブログを見て試してみたのですが、どれもうまくいかずヘトヘトです。。
84
- どうぞお助けください。
83
+ ### 質問
84
+ 上記の状態をフィックスして、https://www.example.comにアクセスすると、Google認証が行われ、Webサイトにアクセスが正常に進むようにするには、どうしたらいいでしょうか。