5

同じ Azure ホスト内の他の Web アプリや他のサード パーティ サービス/アプリから呼び出される Web API を開発しています。現在、API アプリと API 管理について調べていますが、セキュリティの実装に関して不明な点がいくつかあります。

  1. API 管理で実装する場合、API アプリには認証が必要ですか? はいの場合、オプションは何ですか? このリンクhttp://www.kefalidis.me/2015/06/taking-advantage-of-api-management-for-api-apps/には、「API アプリで認証を行う必要はないことに注意してください。 API Management で認証を有効にして、すべての詳細を処理させることができます。」ということは、API アプリ認証を public anonymous にするということですか? ただし、API アプリの直接 URL を知っている人は、直接アクセスできます。
  2. API Management セキュリティを実装する最良の方法は何ですか? チュートリアルで言及されているもの (生のサブスクリプション キーをヘッダーに渡す) は、中間者攻撃を受けやすいようです。
  3. 通常の Web API プロジェクトで実装する代わりに、API アプリが追加する利点は何ですか?

前もって感謝します。

4

1 に答える 1

4

API 管理の観点からお答えできます。API Mgmt とバックエンドの間の接続を保護する (ラストマイル セキュリティとも呼ばれる) には、いくつかのオプションがあります。

  1. 基本認証: これは最も簡単なソリューションです
  2. 相互証明書認証: https://azure.microsoft.com/en-us/documentation/articles/api-management-howto-mutual-certificates/ - これは最も一般的なアプローチです。
  3. IP ホワイトリスト: 標準またはプレミアム層の APIM インスタンスがある場合、プロキシの IP アドレスは一定のままです。したがって、不明な IP アドレスをブロックするようにファイアウォール ルールを構成できます。
  4. JWT トークン: バックエンドに JWT トークンを検証する機能がある場合、有効な JWT を持たない呼び出し元をブロックできます。

このビデオも役立つ場合があります: https://channel9.msdn.com/Blogs/AzureApiMgmt/Last-mile-Security

このドキュメントは、APIM で JWT トークンの検証を実行できることを意味していると思います。ただし、誰かがバックエンドを直接呼び出すのを防ぐには、上記のオプションのいずれかを API アプリに実装する必要があります。

于 2015-09-08T18:57:40.103 に答える