問題タブ [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.
google-cloud-platform - Firebase 認証を使用した ESPv2 で JWT 検証が失敗する
私はESPV2とFirebase authentication および API Managementを備えた Cloud functions を使用して、認証された Cloud functions を構築していました。認証後にfirebaseからJWTトークンを取得したら、 ascurl
のトークンとのリンクを試みました。郵便配達員で試したところ、「JWT の検証に失敗しました」というメッセージが表示されました。クライアント アプリケーションから試してみると、「Bad Request」が表示されました。リンクに記載されている設定以外に、リクエストを行う前に何か特別なことをする必要がありますか?Authorization
Bearer
リクエストに応じて詳細を更新
このサービスをデプロイした後、 Dart SDKのメソッドFirebase
を使用して id トークンを取得します。JWT トークンは Header.payload.tail 形式です。次に、 + id トークンを
使用してヘッダーにトークンを追加すると、次の応答が返されます。getIdToken()
Firebase
Authorization
Bearer
更新: 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 を取得する権限がありません
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 が正しく動作しないのでしょうか?
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
代わりにヘッダーが推奨される他の理由があるかどうかはわかりません。