REST APIの認証を実装する最良の方法


21

モバイル向けのソーシャルベースのアプリケーションを開発しています。すべてのアプリケーションはRESTful API Webサービスを使用します。ログインを実装するとき、通常はユーザー名とパスワードをデバイスのどこかに保存します。次に、それらを送信し、応答として自分のプロファイルにアクセスします。しかし、これを行う別の方法があることも知っています。

何らかの方法で特定のアルゴリズムでトークンを生成し、ユーザー名とパスワードの代わりにトークンを送信してアクセスを取得します。

どうすれば実装できますか?このトークンをログイン以外のすべてのリクエストとともに送信する必要がありますか?


11
それがあります認証ではなく、承認。認証=自分が本人であることを証明します。許可=要求したことを実行できることを証明します。
tdammers

答えに同じコメントを追加するだけでした!あなたの+1はグーグルで認証がここであなたをもたらすものではありませんので、私はすべてのコンテンツを編集した@tdammers
Shiplu Mokaddim

回答:


14

RESTfulコンテキストで認証を実装する方法はいくつかあり、ログイン/パスワードの代わりにトークンのみを送信する方が安全です。タイムアウトまたは他の基準によってトークンを簡単に無効にし、ユーザーに再認証を求めることができます。

たとえば、HMACを使用した認証REST要求。このアプローチでは、クライアントは公開秘密鍵を持ちます認証を必要とするすべてのリクエストに、publiсkeyを追加し、秘密キーを使用してリクエストのハッシュを計算する必要があります

var myRequest = "https://myserver/resource?publicId=12345&param=value";
var requestHash = hmac_implementation(myRequest);
myRequest = myRequest + '&hmac=' + requestHash;

これで、サーバーは公開キーでリクエストを識別し、requestHash自体を計算できます。両方のハッシュが等しい場合、ユーザーは許可されます。

また、httpsを使用してコンピューターネットワーク上の通信を保護する必要があります。これにより、考えられる問題の数が劇的に減少します。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.