パート 2: API キーの生成とテスト

API キーの要求による API の保護にリファクタリングされ、リダイレクトされます。

デベロッパーは、API へのリクエストを行うアプリを構築して、バックグラウンド サービスにアクセスします。API へのアクセスを制御するため、デベロッパーにすべてのリクエストに対し API キーを渡すことを要求することができます。キーがないか無効である場合、そのリクエストは失敗します。

公開とは、アプリ デベロッパーが API を使用できるようにするプロセスです。API の公開は、次のタスクによって幅広く定義できます。

  1. Apigee Edge で API をバンドルする API プロダクトを作成します。
  2. アプリ デベロッパーを Edge に登録します。アプリを登録できるのは登録されているアプリ デベロッパーのみです。
  3. デベロッパーは、Edge にアプリを登録すると API プロダクトにアクセスできます。デベロッパーはレスポンスで API キーを受け取ります。デベロッパーが API キーを持つことにより、API に対してリクエストを行うことができるようになります。

詳細については、公開の概要をご覧ください。

次の表に、アプリの登録とキーの生成で使用される用語の一部を定義します。

用語 定義
API プロダクト API へのアクセスに制限を設定するサービスプランと組み合わせられている API プロキシのバンドル。API プロダクトは、Apigee Edge が API の認可とアクセス制御に使用する中心的なメカニズムです。
デベロッパー API のコンシューマ。デベロッパーは API へのリクエストを行うアプリを記述します。
アプリ デベロッパーが API プロダクトにアクセスするために登録するクライアント側アプリ。API プロダクトにアプリを登録すると、そのプロダクトにより API にアクセスするための API キーが生成されます。
API キー API プロダクトによって公開されたリソースにアクセスするためにクライアント側アプリが使用する認可情報を含む文字列。登録されたアプリが、API プロダクトに関連付けられている場合は、API キーが生成されます。

このチュートリアルの前提条件

このチュートリアルでは、Yahoo Weather API にアクセスするための API プロキシを作成する最初のチュートリアルが完了していることを前提としています。このチュートリアルを完了していない場合は、API キーの要求による API の保護をご覧ください。

ステップ 1: API プロダクトの作成

  1. 管理 UI で [Publish] タブ、[Products] の順にクリックします。
  2. [(+) Product] をクリックします。
  3. [Add Product] ダイアログの各項目に次のように入力または選択します。
    項目
    Name Free API Product
    Display Name Free API Product
    Description Free API Product
    Environment test
    Access Internal only
    Key approval type Automatic
    (API キーは生成後自動的に承認される)
    Quota 10 requests per 1 hour
    (リクエスト数を 1 時間あたり 10 個に制限)
    Allowed OAuth Scopes 空白のままにする

    入力が完了したダイアログは次のようになります。

  4. [Resources] セクションで、次のように選択します。
    • API Proxy: weatherapikey
    • Revision: 1
    • Resource Path: /forecastrss**

      [Resource Path] では、プロダクトがアプリにアクセスを許可するリソース URI が指定されます。この例では、アプリはこの API プロダクトを使用して weatherapikey プロキシの /forecastrss リソースのみにアクセスできます。この API プロダクトを使用して、weatherapiproxy プロキシの他のリソースや他のプロキシにアクセスすることは禁止されています。

      [Resource Path] では、ワイルドカード文字を使用できます。ワイルドカード「/**」は、すべてのサブ URI が含まれることを示します。つまり、/forecastrss/foo/bar 形式のリソースを意味します。ワイルドカード「/」は、1 つ下の URI のみが含まれることを示します。詳細については、API プロダクトを作成するをご覧ください。

      なお、[Resource Path] プルダウン リストでは、指定された API プロキシで定義されているすべての条件フローが表示されます。API プロキシの条件フローでは、リソースパスに関連付けられているロジックまたは処理ステップが定義されます。API プロダクトにより、それらのリソースパスへのアクセスが制御されます。
  5. [Import Resource] をクリックします。リソースパスが追加され、weatherapikey API プロキシが [API Proxies for Product] セクションに自動的に追加されます。
  6. [Save] をクリックします。新しいプロダクトが [Products] ページにリストされます。

詳細:

ステップ 2: デベロッパーの登録

API キーを生成するには、アプリを登録し、API プロダクトにそのアプリを関連付けます。ただし、最初にアプリのデベロッパーを登録することなく、アプリを登録することはできません。

  1. 管理 UI で [Publish] タブ、[Developers] の順にクリックします。
  2. [(+) Developer] をクリックします。
  3. [New Developer] ダイアログで次の値を入力します。
    • First Name: Jane
    • Last Name: Tutorial
    • Email address: janetutorial@example.com
    • Username: jtutorial
  4. [Save] をクリックします。新しいデベロッパーが [Developers] ページのデベロッパーのリストに表示されます。

詳細:

ステップ 3: アプリの登録

API プロダクトとデベロッパーを用意できたので、アプリを API プロダクトに登録できます。アプリを登録すると、アプリに関連付けられている API プロダクトの API キーが生成されます。その後、アプリから API プロダクトの機能にアクセスできるように、アプリ デベロッパーにそのキーを配布できます。

  1. API プラットフォームの UI で、[Publish] タブ、[Developer Apps] の順にクリックします。
  2. [(+) Developer App] をクリックします。
  3. [Add an App] ダイアログで次の値を入力します。
    • Display Name: Weather API Key App
    • Developer: Jane Tutorial (janetutorial@example.com)
    • Callback URL: 空白のまま
  4. アプリをプロダクトに関連付けます。
    1. [Products] セクションで、[+ Product] をクリックします。
    2. [Free API Product] を選択します。
    3. チェックマーク アイコンをクリックして、変更を受け入れます。
  5. [Save] をクリックします。 新しいアプリが [Developer Apps] ページのアプリのリストに表示されます。
  6. アプリのリストで、[Weather API Key App] を選択します。この操作により、アプリの詳細ページが開きます。
  7. API プロダクトを作成したときに [Key Approval Type] で [Automatic] を選択したため、API キーが自動的に承認され、すぐに API キーを表示できます([Key Approval Type] で [Manual] を選択した場合は、API キーを承認する Free API Product の [Actions] 列の [Approve] をクリックする必要があります)。
  8. [Products] セクションの Free API Product のエントリの横にある [Consumer Key] と [Consumer Secret] の列の [Show] をクリックして、生成されたキーを表示します。

    [Consumer Key] は API キーの別名で、アプリが API プロキシを介して forecast リソースにアクセスする必要がある唯一のキーです。[Consumer Secret] は([Consumer Key] とともに)、OAuth 2.0 を使用して API のセキュリティを確保するうえで必要です。たとえば、OAuth 2.0: 新しい API プロキシの構成をご覧ください。

詳細:

ステップ 4: リクエストでの API キーの使用

VerifyAPIKey ポリシーが正しく機能していることを確認するには、有効な API キーを使用して API プロキシへの呼び出しを行うことで、テストする必要があります。API プロキシのリクエストは、ブラウザで、API プロキシの [Trace] ページから、Apigee Console から、または cURL を使用して行うことができます。リクエストを行うための URL の形式は次のとおりです。

    http://{org-name}-test.apigee.net/v1/weatherapikey/forecastrss?w=12797282&apikey=IEYRtW2cb7A5Gs54A1wKElECBL65GVls
    

{org-name} は Apigee の組織名で置き換え、正しい apikey 値を使用します。

レスポンス内で次のコンテンツを検索します。

    <rss xmlns:yweather="http://xml.weather.yahoo.com/ns/rss/1.0" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" version="2.0">
    <channel> <title>Yahoo! Weather - Palo Alto, CA</title>
    <link>http://us.rd.yahoo.com/dailynews/rss/weather/Palo_Alto__CA/*http://weather.yahoo.com/forecast/USCA1093_f.html</link>
    <description>Yahoo! Weather for Palo Alto, CA</description> <language>en-us</language>
    

リクエストからの API キーを省略したり、無効な Key-Value を指定したりすると、次の形式のエラー レスポンスを受信します。

    {"fault":{"faultstring":"Failed to resolve API Key variable null","detail":{"errorcode":"steps.oauth.v2.FailedToResolveAPIKey"}}}
    

ステップ 5: 次のステップ

これで、API キーを渡すためにクエリ パラメータを使用して API に対するリクエストを行ったので、API を変更してヘッダーとしてキーを渡します。

API キーの要求による API の保護に進んでください。