APIキーを使ってAPIを認証する

開始前に

  • APIの管理またはAPIの有効化/無効化の権限を持っていることを確認してください。 管理者の場合は、この権限を持っている必要があります。
  • Postmanがシステムにインストールされている場合、またはウェブ版のPostmanを使うこともできる

このタスクについて

APIを公開すると、アプリケーション・ロジックや機密データが表示され、組織にセキュリティ・リスクをもたらす可能性がある。 認証がなければ、API は不正アクセス、誤用、悪用に対して脆弱である。 認証されていないユーザーやアプリケーションは、潜在的に機密データやリソースにアクセスしたり、不正なアクションを実行したり、過剰なリクエストでAPIに負荷をかけたりする可能性がある。 APIのセキュリティが重要になるのはこのためだ。 APIをセキュアにする方法の1つは、ユーザー認証情報と暗号化されたアクセスコードを通して、APIの公開をコントロールする認証メカニズムを実装することです。 認証メカニズムは、認証されたユーザーだけにアクセスを許可するゲートキーパーとして機能する。

HTTP Basic認証、APIキー認証、OAuth 2.0 認証、JWT認証など、さまざまなAPI認証方法を使用できます。 特定のAPIに適切な認証方式を選択するかどうかは、実装の容易さよりも、クライアントを検証するために必要なセキュリティのレベルに依存する。

例えば、 HTTP Basic認証は、リスクの低いデータやリソースへの一般アクセスを制限するのに有効だが、それでも最低限のセキュリティ管理は必要である。 APIキー認証は、APIプロバイダーが個々のクライアントを識別し、その許可をnとして規制したいシナリオでうまく機能する。 一方、OAuth 2.0 や JWT 認証方式は、トークンの失効やトークンのリフレッシュという形で、より高度なセキュリティを提供する。

webMethods API Gateway は、Basic Auth、APIキー、OAuth 2.0、OAuth with OpenID,、JWTといった様々な認証方法を提供している。 以下の例は、APIキー・ベースの認証を使用して、APIに安全にアクセスするシナリオを示している。 APIキー認証方式は、システムが生成する文字列を使用する。この文字列は、長い文字列または数字の羅列で構成され、識別情報およびAPIアクセストークンの一意のペアを作成する。 キーは、コード、その開発者、ユーザー、そしてAPIコールが行われたアプリケーションを認識する。 クライアントがAPIキーを認証すると、サーバーはその身元を認識し、簡単にデータにアクセスできるようになる。

図はAPIキー・ベースの認証メカニズムを示している。

authenticate_api

以下の例は、REST APIである Petstoreを APIキーで保護する手順と、このAPIキーを使用してAPIにアクセスする方法を示している。

手順

  1. REST API Petstore を作成する。
    1. メニューオプションを開き、 APIを選択する。
    2. Create APIをクリックします。
    3. URL からAPIのインポートを選択する。
    4. 以下の情報を指定します。
      • URL- https://petstore.swagger.io/v2/swagger.json
      • 店名- ペットストア
      • バージョン 1.0
      • チーム・アドミニストレーター
    5. 作成」をクリックする。 ペットストア APIが作成され、 ペットストアAPIの詳細ページが表示されます。
    6. ActivateをクリックしてAPIを有効化する。
  2. 識別とアクセス」ポリシーで API を強制し、識別タイプを API キーとして設定する。
    1. 編集をクリックする。
    2. Policies タブをクリックします。
    3. ポリシーカタログセクションの[ 識別とアクセス ]をクリックします。
    4. ポリシーの[ Identify & Authorize]の [+]をクリックして、ポリシーを追加します。
    5. ポリシー・プロパティ・セクションに以下の情報を入力してください。
      • コンディションタイプ- OR
      • 識別タイプ- APIキー
      • アプリケーション検索条件- 登録アプリケーション
    6. 「保存」をクリックします。 APIに必要なポリシーが適用された。
  3. アプリケーション petstore appを作成し、 Petstore APIをアプリケーションに関連付けます。
    アプリケーションにAPIを追加すると、アプリケーションがAPIにアクセスできるようになる。 API開発者として、実行時にAPIを呼び出す際には、アプリケーションを識別するために、APIキーを webMethods API Gateway を提供しなければならない。
    1. タイトルナビゲーションバーの 「アプリケーション 」をクリックします。
    2. Create applicationをクリックします。
    3. 名前 aspetstore app、バージョンは 1.0 として以下の情報を提供する。
    4. Continue to Identifiers を クリックする。
    5. Continue to APIsをクリックします。
    6. 検索ボックスにキーワード pet を入力して API petstore を検索し、 + をクリックして API を追加します。
    7. 「保存」をクリックします。 アプリケーションが保存され、アプリケーションの詳細ページが表示されます。
  4. APIにアクセスするために使用するAPIキーをメモしておく。
  5. APIキーを使用して認証し、 ペットストアAPIにアクセスします。 Postmanアプリケーションを使ってAPIを呼び出し、アクセスする。
    1. Postman を開きます。
    2. Postman UIで、 HTTP メソッドを GETとして選択し、ステータス別にペットの詳細を取得する。
    3. エンドポイントを呼び出す、 http://<host>:<port>/gateway/Petstore/1.0/pet/findByStatus
    4. Authorization タブで、タイプを API Keyに選択し、以下の情報を入力する。
      • キー - x-Gateway-APIKey
      • 値- APIキー
      • ヘッダーに追加
    5. 送信をクリックする。 REST APIは正常に呼び出され、ステータスコードとして200を返す。 レスポンスには要求された検索データが含まれる。
      APIキーが無効な場合、APIアクセス時に以下のようにステータスコード401のエラーが表示されます。

次のタスク

APIに安全にアクセスできたので、APIを使い始めることができる。