Android アプリケーションからアクセスする REST API を開発したいのですが、クライアント側アプリケーションのユーザーを承認する必要があります。これに対する簡単な解決策は、ユーザーにサービスへの登録を依頼し、そのユーザー名/パスワードを使用して REST API の呼び出しを成功させることです。ただし、登録の利便性とより優れたセキュリティを兼ね備えているように見える最先端のテクノロジに固執したいと思います。そこで、ユーザー認証と認可のために Google OpenID または OAuth 2.0 と統合することにしました。この 2 つの用語と対応する用語の違いは知っていますが、OAuth 2.0 を使用した認証には承認ステップが含まれていることもわかりました。
ここに投稿する前に多くの調査を行った結果、ここで紹介する非標準のソリューションにたどり着きました。私のケースの背景: Rest API は、モバイル アプリのユーザーが利用できるアプリケーション固有のデータを提供しますが、アプリのユーザーは一意に識別され、特定の呼び出し回数に制限される必要があります。
Android アプリのユーザーにリンクされた Google アカウントを使用することは、認証メカニズムと簡単に統合するための最良のオプションであると思われました。ただし、クライアントは Google API ではなく独自の REST API にアクセスしますが、REST API は Google API を呼び出す必要はありません。しかし、Android SDK の AccountManager を使用すると、リンクされた google アカウントの oauth access_token を使用して REST API に送信し、最後に TokenInfo 検証 API を使用してトークンの有効性を確認できることに気付きました。このようにして、Google アカウントの認証を再利用して、REST API へのアクセスを承認および認証することができました。
これが非標準に聞こえる場合、または OAuth 2.0 プロトコルのルール/目的に何らかの形で反していると思われる場合は、Google 認証を使用して REST API でユーザーを認証するための要件を満たすために、そのプロトコルを適切に使用するように指示してもらえますか?