問題タブ [google-api-gateway]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
463 参照

google-cloud-platform - Firebase 認証を使用した ESPv2 で JWT 検証が失敗する

私はESPV2Firebase authentication および API Managementを備えた Cloud functions を使用して、認証された Cloud functions を構築していました。認証後にfirebaseからJWTトークンを取得したら、 ascurlのトークンとのリンクを試みました。郵便配達員で試したところ、「JWT の検証に失敗しました」というメッセージが表示されました。クライアント アプリケーションから試してみると、「Bad Request」が表示されました。リンクに記載されている設定以外に、リクエストを行う前に何か特別なことをする必要がありますか?AuthorizationBearer

リクエストに応じて詳細を更新

このサービスをデプロイした後、 Dart SDKのメソッドFirebaseを使用して id トークンを取得します。JWT トークンは Header.payload.tail 形式です。次に、 + id トークンを 使用してヘッダーにトークンを追加すると、次の応答が返されます。getIdToken()FirebaseAuthorizationBearer ここに画像の説明を入力

更新: ESP の代わりにhttps://cloud.google.com/api-gateway/docs/authenticating-users-firebase を使用して、新しい API Gateway 製品を試しました。

私の構成:

クライアント側のコード: クライアント側は dart で開発され、 https:user //pub.dev/documentation/firebase_auth/latest/firebase_auth/User/getIdToken.html の firebase auth オブジェクトです。

私は応答を得た

403 Forbidden - クライアントには URL を取得する権限がありません

0 投票する
2 に答える
1569 参照

google-cloud-platform - Google API Gateway: ヘッダーで API キーを提供します

発信者がヘッダーで送信する API キーを使用するように Google API Gateway をセットアップしようとしています。
私のAPI構成yamlは次のようになります:

ヘッダーまたはクエリ パラメーターを介して有効な API キーが提供されない場合、両方の呼び出しが失敗し、401 ステータスで失敗すること/foo-headerが予想されます。/foo-query

しかし、実際に/foo-queryは期待どおりに動作するだけです。
リクエスト/foo-headerヘッダーに API キーが指定されていない場合でも、バックエンドに渡すリクエスト。

構成に問題がありますか、それともリクエスト ヘッダーに API キーが指定されている場合に Google API Gateway が正しく動作しないのでしょうか?

0 投票する
1 に答える
502 参照

node.js - Google API Gateway + Firebase: X-Apigateway-Api-Userinfo と X-Forwarded-Authorization ヘッダー

Firebase アプリで Google API Gateway を使用して、ユーザーがサインインしているかどうかを確認しています。ここの API Gateway のドキュメントでは、転送されたX-Apigateway-Api-Userinfoヘッダーを使用してユーザー情報を取得することをお勧めします。

API Gateway は X-Apigateway-Api-Userinfo の認証結果をバックエンド API に送信します。元の Authorization ヘッダーの代わりに、このヘッダーを使用することをお勧めします。このヘッダーは base64url でエンコードされており、JWT ペイロードが含まれています。

base64url でエンコードされているため、これをデコードしてログイン ユーザーの情報を取得するには、追加のサーバー側ロジックが必要です (デコードされたオブジェクトは、Firebase Auth Admin SDK のDecodedIdTokenに対応すると想定しています)。

一方、API Gateway は元のAuthorizationヘッダーを変更しますが、最初に という名前の別のヘッダーにコピーすることがわかりましたX-Forwarded-Authorization。これは、次のようなことができることを意味します。

私が見つけたのは、同じ情報を取得するためのより簡単な (そしてより適切に文書化された) 方法です。これは悪い考えですか?X-Apigateway-Api-Userinfo代わりにヘッダーが推奨される他の理由があるかどうかはわかりません。