ラストマイル セキュリティ

ラストマイル セキュリティは、API サービスによってプロキシされるバックエンド サービスを保護します。ラストマイル セキュリティの主な目的は、アプリのデベロッパーがバックエンド サービスの URL を検出し、そのバックエンド URL に直接アクセスする API プロキシをバイパスする、いわゆる「エンドラン」攻撃を防ぐことです。

ラストマイル セキュリティを設定するための主要なオプションは次のとおりです。

  • クライアント TLS / SSL
  • 送信の認証
  • Node.js tls モジュール

クライアント TLS / SSL

ラストマイルを保護するための主なメカニズムはクライアント TLS / SSL で、「相互認証」とも呼ばれます。

Edge からバックエンドへの TLS の構成(Cloud および Private Cloud)をご覧ください。

送信の認証

ラストマイル セキュリティは、API プロキシがバックエンド サービスに認証情報を提示するよう要求することでも適用できます。

たとえば、API プロキシにバックエンド サービスへの API キーを提示させる場合です。また、API プロキシに OAuth クライアントの認証情報アクセス トークンを取得させ、それを提示させることもできます。

API キー

API キーは、API プロキシからバックエンド サービスへの送信リクエストに適用できます。これは、バックエンド サービスが API キーの発行と検証が可能な API であることを前提としています。

送信リクエストに API キーを提示する API プロキシを設定する場合は、ランタイムに API プロキシによって取得できる場所に API キーを格納します。API キーを格納する場所としては Key-Value マップがあります。Key Value Map Operations ポリシーをご覧ください。

AssignMessage ポリシータイプを使用して、HTTP ヘッダーやクエリ パラメータ、ペイロード要素として API キーを送信リクエストに追加できます。Assign Message ポリシーをご覧ください。

OAuth クライアントの資格情報

OAuth クライアントの資格情報を使用して、API キーに取消可能レイヤーを追加できます。バックエンド サービスが OAuth クライアントの資格情報をサポートしている場合は、リクエストごとにクライアントの資格情報アクセス トークンを提示するように API プロキシを構成できます。

API プロキシは、トークン エンドポイントからアクセス トークンを取得するためにコールアウトを実施するように構成する必要があります。API プロキシは、呼び出しごとに新しいアクセス トークンを取得しないように、アクセス トークンをキャッシュする必要もあります。

送信クライアントの資格情報を実装する方法はいくつかあります。

このサンプルを変更して、トークン エンドポイントを呼び出してアクセス トークンを取得できます。このサンプルでは、JavaScript を使用してトークンを HTTP Authorization ヘッダーとして送信リクエストに添付しています。この目的のために Assign Message ポリシーも使用できます。

SAML

GenerateSAMLAssertion ポリシータイプを使用して、API プロキシからバックエンド サービスへの送信 XML リクエスト メッセージに SAML アサーションを添付できます。これにより、バックエンド サービスは API プロキシから受信したリクエストに対して認証と認可を行えます。

SAML Assertion ポリシーをご覧ください。

Node.js

API プロキシターゲットが Node.js アプリケーションの場合、Node.js tls モジュールを使用して、バックエンド サービスへの安全な接続を作成できます。Node.js で通常行う場合と同様に tls モジュールを使用して送信リクエストを行えます。基本的には、クライアント側の鍵と証明書(.pem ファイル)を resources/node ディレクトリに追加してスクリプト内に読み込む必要があります。tls モジュールとそのメソッドの使用方法については、Node.js tls モジュールのマニュアルをご覧ください。詳細については、Node.js モジュールの Edge サポートについてをご覧ください。