7

この質問は以前に何千回も聞かれたことを知っていますが、まだ答えを正しく理解できていません。このトピックについて 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 を使用できるかということです。

4

1 に答える 1

0

これは間違いなく OAuth2 で可能です。OAuth1 では、「2-legged auth」を使用する必要があり、それほど自然に感じられなかったので、少し不器用でしたが、OAuth2 では、次の許可のいずれかを使用できます。

于 2017-03-21T04:37:48.120 に答える