60

web.api の API キーを作成し、web.api が提供する認証ではなく、API キーを使用してクライアントが API と通信できるようにすることに興味があります。

複数のクライアントが web.api と通信できるようにします。ユーザー名とパスワードを作成する代わりに、API キーを使用して、クライアントがクライアントと通信できるようにすることはできますか?

そのような組み込み機能はありますか?

それを実装したい場合、どのように回避しますか?

4

1 に答える 1

72

HMAC Authenticationを使用することで実現できます。基本的に、ApiKey (apiKey, secretKey)というデータベース テーブルが存在する場合があります。各クライアントには、それぞれの Apikey とシークレット キーがあります。

  1. ApiKey は公開鍵のようなもので、HTTP 経由で送信されます (ユーザー名と同様)。

  2. 秘密鍵は HTTP 経由では送信されません。この秘密鍵を使用して hmac 情報を処理し、ハッシュ化された出力をサーバーに送信します。サーバー側から、公開鍵に基づいて、関連する秘密鍵とハッシュ情報を取得して、ハッシュ出力と比較できます。

詳細な回答を投稿しました:ASP.NET Web APIを保護する方法

ApiKey でユーザー名を変更し、秘密鍵でハッシュされたパスワードを変更して、アイデアにマップすることができます。

于 2012-08-06T15:34:58.813 に答える