この質問は以前に何千回も聞かれたことを知っていますが、まだ答えを正しく理解できていません。このトピックについて Google で検索したところ、Restful Web サービスを保護するために Oauth を使用することを提案しているほとんどの人が見つかりました。
oauth は、ユーザーの資格情報を共有せずに、サード パーティのアプリケーションでセキュリティで保護されたリソースへのアクセスを許可する場合にのみ適用できると思います。
私の場合、独自に開発したモバイル アプリケーションのみがアクセスできる安らかなサービスを確保したいと考えています。この目的のためだけに、oauth を使用して安らかなリソースを保護する方法を理解できません。私の要件は、ユーザーが初めて自分の資格情報をアプリケーションに入力することです。認証が成功すると、アプリケーションはアクセストークンを受け取り、それを使用して保護されたリソースにアクセスします。
ouath ユーザーの場合、最初にモバイル アプリケーション (モバイル アプリケーションをサード パーティ アプリと仮定) から認証プロバイダーの Web サイトにリダイレクトされ、そこで資格情報を入力し、コールバック URL を介してモバイル アプリケーションはアクセス トークンを受け取り、アクセス権を取得します。リソースを確保しました。
ouath の使用を強く推奨する Apigee の Web API 設計ガイドを読みました。実際、Apigee App Services は oauth を使用して保護されており、oauth を使用する必要があるのと同じことを行っています。次の curl コマンドは、apigee API ドキュメントに従って、ユーザー名とパスワードを使用してアクセス トークンを取得する方法を示しています。
curl -X POST -i -H "Content-Type: application/json" "https://api.usergrid.com/my-org/my-app/token" -d '{"grant_type":"password","username":"john.doe","password":"testpw"}'
私の最初の質問は、サードパーティのアプリケーションがリダイレクトやコールバックなしでアクセス トークンを取得できるようにするのと同じアプローチに従うと、Oauth 仕様に違反するかどうかということです。
2 つ目の質問は、サード パーティのアプリケーションが関与せず、セキュリティで保護されたリソース アクセスがアプリケーション ユーザーとリソース プロバイダーの間で確認なしに行われるシナリオで ouath を使用できるかということです。