2017-01-13 6 views
1

複数の異なるクライアントを使用する場合にWEB APIを保護する最も良い方法は何ですか?各クライアントには、接続する独自のAPIキーが必要です。 今私は異なることを読んだが、まだいくつか質問がある。複数のクライアントが使用するASP.NET WEB API2を保護する最良の方法

私はこれを見つけました:http://bitoftech.net/2014/06/01/token-based-authentication-asp-net-web-api-2-owin-asp-net-identity/#commentsでも十分ですか?

のでbasicly:タイムスタンプはまた、私は

終わるまで 1.クライアントは、指定されたユーザー名/パスワードで接続し 2.クライアントがトークンバックベアラを取得 3.クライアントは、APIへの各ポストにこのトークンを使用しています彼が使うことができる各クライアントにAPI秘密鍵を与えることについて読んでいる: http://bitoftech.net/2014/12/15/secure-asp-net-web-api-using-api-key-authentication-hmac-authentication/

どのような最善のアプローチですか?

答えて

0

はい、OAuth2はリソースを保護するためのかなり標準的なプロトコルです。カスタム実装をローリングする代わりにOAuth2をお勧めします。その考え方は、各クライアントがclient_id/client_secretのペア(ユーザー名、パスワードではない)を受け取り、OAuth発行者からベアラトークンを取得するためにそれらを使用するというものです。その後、これらのトークンを使用してWeb APIの保護されたリソースにアクセスできます。

+0

だからbasicly私はのclient_idとclient_secretあたりを提供する必要が使用してチャネルを確保することができると思いますクライアント。 両方にGUIDを使用する必要がありますか? – Kaizer

+0

GUIDは構造を持っています.... –

+0

[OK]をクリックするとトークン方式が使用されます。 ありがとう – Kaizer

0

OAuth2とOpenIdentityで使用されているトークンベースのアプローチは非常に幅広く普及しており、幅広いシナリオ(Web Apps、Mobile、Deskop Apps、マイクロサービス)を可能にしています。

トークンを提供し消費するためのライブラリがあります。独自のプロトコルを実装するよりも優先されるべきです。後の方法は、エラーが発生しやすく、他のクライアントによって消費されにくい(将来的に必要がある場合)。私はIdentityServer(これはOpenSourceです)を見ることをお勧めします。紹介はhereです。

一般的に私は、トークンベースの認証についてのブログを深く掘り下げることをお勧めします。これは大きな話題ですが、それは価値があります。

+0

いいえ、トークンのアプローチは、行くものです。 ありがとう – Kaizer

関連する問題