この質問に対する学術的な回答は数多くありますが、この分野の実務家からの回答を希望します。
バックグラウンド
サービスを通じて保護されたリソースにアクセスするために、さまざまなモバイル クライアント (iOS および Android) 用の Grails フレームワークを使用して、Java ベースの RESTful API を作成したいと考えています。特定のリクエストで認証が必要で、ネットワーク上ですでに SSL をセットアップしています (したがって、すべてのリクエストは https 経由で行われます)。私の Web API は、最終的に他の Web アプリケーションへのサービスとして公開されます。
問題
モバイル デバイス、そして最終的には他の Web アプリケーションによって消費される Web サービスに対して、人々はどのような認証方法を推奨していますか?
これらは私が私の選択として見ているものです。それぞれの適切な使用例を教えてください。
- HTTP Basic認証ができる
- HTTPダイジェスト認証ができる
- OAuth 認証 (1.0 または 2.0) を実装できますか?
- リクエストで資格情報をパラメーターとして渡すことができます
- 上記の認証方法を使用して、認証のためにデリゲート/トークンを渡すことができます
- 独自のカスタム HTTP 認証ヘッダーを実装できます
- Cookie を使用して、リクエストごとにそれらをサーバーに渡すことができます
- 他の...?
必要
いずれかの方法に傾いている場合は、その方法を選択する理由を知りたい. さらに良いことに、これを Grails で行っているのであれば、私は非常に興味があります。
もう知っている...
ここでの優れた回答と、Richardson と Ruby の著書Restful Web Servicesを既に読んでいます。