私はモバイルアプリケーションを持っていますREST API呼び出しがトークンやセキュリティ機構なしでサーバーにヒットします。
API呼び出しを保護したい。 OAuthとは何か、およびモバイルアプリをセキュリティで保護する方法を理解しようとしていますRESTサーバーにアクセスしているAPIコール?
また、OAuthで使用される以下のフィールドについて詳しく知りたいと思います。ここから、フィールドの下に移動します。
Consumer Key
Consumer Secret
Token
Token Secret
Timestamp
Nonce
ほとんどのプロバイダーがOAuth 2.0およびOAuth 1.0を使用しているため、主要プロバイダーによって非推奨になっているため、OAuth2.0について説明します
OAuthは認証のオープンスタンダードであり、インターネットユーザーがMicrosoft、Google、Facebook、Twitter、One Networkなどのアカウントを使用してパスワードを公開せずにサードパーティのウェブサイトにログインする方法として一般的に使用されています。
独自のOAuth=サーバーを実装できます。ここでは、ソーシャル認証について説明します。したがって、OAuthは、この後、OAuthを使用したソーシャル認証を指します。
簡単に言えば、OAuthを使用すると、ユーザーはアカウント(Facebook、Googleなど)でWebサービスにログインできます。
以下の用語はOAuthとは関係ありませんが、OAuthと組み合わせて使用すると、より安全になります。
ソース: http://smerity.com/
Facebookログインを例に図を説明します。
バックグラウンド。図を説明する前に、以下を実行したことを考慮してください。
secret_key
と2)app_id
Login with Facebook
と書かれたボタンをデザインしました。今図。
To access the data: please login with facebook to access the page
login with Facbook
ボタンをクリックすると、新しいポップアップOAuth dialog
が開きます。 Facebookのユーザー名とパスワードを尋ねます。client_secret
を使用してauth serverを呼び出しますaccess token
に戻ります。access token
のユーザー情報をauth serverに要求します。さて、これはどのようにAPIを保護しますか?
アクセスに必要なログインなど、セキュリティが必要な部分を作成します。リクエストを行うクライアントがAPIにログインしていない場合は、図のステップ2にクライアントを送信します。
それで、ナンスとは何ですか?タイムスタンプ?
誰かがアクセストークンを盗んだ場合、アクセストークンの有効期限が切れる限り、APIサーバーにアクセスできます。したがって、ユーザーがページを要求すると、サーバーはサーバーに格納されているナンスをユーザーに送り返します。クライアントは受信したナンスでリクエストに署名し、リクエストを完了します。 nonceは1回しか使用されないため、サーバーはnonceを削除します。攻撃者がナンスを取得し、サーバーに偽の要求を行うと、サーバーはその要求を拒否します。これは、1回限りの番号がすでに使用されているため無効です。
TimeStampは、トークンまたはnonceが作成される時間を特定するために使用されます。これは、要求が完了するのに必要な時間である限られた時間フレーム(1〜2秒)でトークンまたはnonceを期限切れにするために使用されます。