1

私はこのGoogleエンドポイントについて多くのことを読んできましたが、推測するのは簡単ではありません。Google クラウド エンドポイント サーバーを作成してデプロイすると、すべての HTTP リクエスト (認証なし) に対して開かれます。クラウド エンドポイントのドキュメント (認証の使用を参照) では、Google アカウントでユーザーを認証するように OAuth2.0 を設定することについて読むことができますが、エンドポイント サービスを特定のモバイル アプリ (android または ios) に制限し、他のすべての HTTP を破棄することに関するドキュメントはありません。リクエスト。問題は、モバイル アプリを認証し (ユーザーなし)、HTTP 要求を防止する (未認証) 方法です。Python に基づいてサーバー API (enpoints) を構築しています。ありがとうございました。

4

2 に答える 2

1

エンドポイントを特定のアプリケーションに制限するには、OAuth2 を使用できます。これは、OAuth2 フローがユーザー認証を行い、OAuth2 フローが本質的に OAuth2 アクセスを要求するアプリケーションを認証するためです。

これら 2 つのクライアント サンプルは、クライアント側で認証済み呼び出しを有効にする方法を詳しく説明しています。http://cloud.google.com/console/のデベロッパー コンソールにアプリを登録する必要があります。

https://github.com/GoogleCloudPlatform/appengine-endpoints-helloendpoints-android (Readme の Note の後に開始) https://github.com/GoogleCloudPlatform/appengine-endpoints-helloendpoints-ios/ (README のステップ 8)

authedGreeting は認証された呼び出しであり、メソッドのバックエンド プロジェクトの User オブジェクトで null をチェックします。空の場合は、すぐに未承認の例外をスローできます。

https://github.com/GoogleCloudPlatform/appengine-endpoints-helloendpoints-java-maven 具体的には、README のオプションのステップ 2 で、リクエストで OAuth2 トークンの検索を開始するよう Cloud Endpoints に指示します。Endpoints 公開メソッドに User パラメーターがある場合。OAuth2 トークンが見つかり、一般的に有効であり、サービス クラスの API アノテーションで定義されたクライアント ID に対してトークンが発行された場合にのみ、ユーザー インスタンスが入力されます。

于 2013-10-17T00:27:06.187 に答える
0

エンドポイント API のセットアップ中に、clientIdsリストにWEB_CLIENT_IDANDROID_CLIENT_ID、および などIOS_CLIENT_IDを指定します。これらの値は、アプリケーションが Web ブラウザおよび Android/iOS にインストールされたアプリケーションからの HTTPS リクエストに応答することを Google App Engine に伝えます。

WEB_CLIENT_IDクライアントが最初にサーバーに接続するとき、通信を安全にするために OAuth 2.0 トークンを取得する必要があります。これが、インストールしたクライアント アプリケーションでを使用する理由です。これWEB_CLIENT_IDは Google Cloud アプリに固有のものであり、それを通じて、クライアントはaccess_tokenおよびを取得して、バックエンド サーバーおよびサーバーのみrenew_tokenと通信できるようになります。これはクロスクライアント認証です。

では、とWEB_CLIENT_IDを取得するためにだけが必要な場合、なぜ と が必要なのですか? セキュリティ上の理由から。access_tokenrenew_tokenANDROID_CLIENT_IDIOS_CLIENT_ID

ANDROID_CLIENT_ID、バックエンドのセットアップ時に通知された SHA1 を介して RSA 署名キーにリンクされます。したがって、GAE アプリは(access_token, renew_token)、アプリケーション コンソールにリストされている (そしてもちろんclientIdsリストにある)同じキーで署名されたインストール済みアプリのみを許可します。

最後に、別の方法で署名された、または署名されていない Android アプリは を受信せずaccess_token、安全な通信チャネルを確立したり、サーバーと通信したりすることさえできません。

于 2015-01-17T18:00:53.013 に答える