[Integration, Cloud] API-Key Based Authentication: Quickly and Easily

原文はこちら。
https://blogs.oracle.com/integration/api-key-based-authentication%3a-quickly-and-easily

API Keyベースの認証はAPIへのセキュアなアクセスを提供するシンプルな方法です。この認証は以下の手順を踏みます。
  1. (前提条件)ユーザーはサービスポータルにログインし、API Keyを生成する
  2. API Keyはクライアントアプリケーションと共有されている
  3. クライアントアプリケーションはAPI Keyを使ってリソースへのリクエストを作成する
下図はAPIキー・ベース認証で必要な手順を図示したものです。API KeyはクライアントはAPI呼び出し時に使うシンプルなトークンです。


How to invoke a REST API protected with an API-Key using Oracle Integration Cloud?

Oracle REST Adapterは外部RESTful APIを利用するための包括的な方法を提供しており、保護されたAPIのアクセスのためのセキュリティポリシーを指定するために利用可能な、再利用可能な接続を提供します。

API Keyで保護されたAPIを利用する場合、統合の開発者はAPIキー・ベース認証セキュリティポリシーを選択して統合作成を進めていきます。

接続のダイアログで、[セキュリティの構成]をクリックし、[APIキー・ベース認証]セキュリティポリシーを選択します。


APIキーを指定します。APIキー発見の手順はIntegration Cloudの範囲外です。


Integration CloudにAPIキーをリクエストと共に渡す方法を指定します。

APIキーの用途では、Oracle REST AdapterがAPIキーを呼び出し対象のサービスにアクセスするためにAPIキーを渡す方法を記載します。

REST Adapterを使って、ヘッダーやクエリ文字列としてAPIキーを渡すことができます。
APIキーの用途説明記述例
-H Authorization: Bearer ${api-key}保護されたリソースへアクセスするため、実行時にAuthorization ヘッダーとしてAPIキーを渡す。-H
Authorization: Bearer AASDFADADX
-H X-ApiKey: ${api-key}保護されたリソースへアクセスするため、実行時にX-ApiKeyと呼ばれるカスタムヘッダーとしてAPIキーを渡す。-H
X-ApiKey: AASDFADADX
?key=${api-key}保護されたリソースへアクセスするため、実行時にクエリ文字列としてAPIキーを渡す。http://someapi.com/employee? key=ASDFADAX

APIキーの用途には様々ありますが、デフォルトでは、REST AdpaterはAuthorizationヘッダーとしてAPIキーを渡します。
-H Authorization: Bearer ${api-key}
${api-key} の値にAPIキーを代入し、Authorizatinoヘッダーとしてエンドポイント・リクエストと共に送信します。
構成が完了すると、ユーザーはテスト*した上で保存して接続は完成です。他の接続と同様、この接続を統合フロー内で利用できます。リクエストを上記のように送信しながら、APIキーを自動的にエンドポイントに渡します。

注意: APIキーを接続内で更新すると、変更は自動的に全てのデプロイ済みの統合に反映されるため、統合フローのアップデートや再デプロイは必要ありません。

APIキーは簡単に利用できますが、欠点もあります。よく知られている点として、APIキーは手作業で生成されます。キーの期限が切れたり取り消された場合、ユーザーは手作業でサービスポータルに戻って新しいAPIキーを生成し、その後Oracle Integration Cloud内で更新する必要があります。これは連続性に影響を与える可能性があるため、注意する必要があります。HTTPサービスのほとんどはOAuth認可フレームワークをリソース保護に利用しています。今後、Oracle Integration Cloudを使ったOAuthで保護されたサービスへのアクセス方法をご紹介する予定にしています。

* テスト接続が成功してもAPIキーを検証しませんので、セキュリティポリシー内でAPIキーを利用する前に、統合の開発者はキーの検証をしておくことが重要です。

0 件のコメント:

コメントを投稿