API キーの要求による API の保護にリファクタリングされ、リダイレクトされます。
デベロッパーは、バックエンド サービスへのアクセスを API にリクエストするアプリを構築します。API へのアクセスを制御するために、デベロッパーにすべてのリクエストに対し API キーを渡すことを要求できます。キーがないか無効である場合、そのリクエストは失敗します。
公開とは、アプリ デベロッパーが API を使用できるようにするプロセスです。API の公開は、次のタスクによって幅広く定義できます。
- Apigee Edge で API をバンドルする API プロダクトを作成します。
- アプリ デベロッパーを Edge に登録します。アプリを登録できるのは登録されているアプリ デベロッパーのみです。
- デベロッパーは、API プロダクトにアクセスするためにアプリを Edge に登録します。アプリを登録すると、デベロッパーは 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 プロダクトを作成する
- 管理 UI で、[Publish] タブ、[Products] の順にクリックします。
- [(+) Product] をクリックします。
- 「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 空白のままにする 入力が完了したダイアログは次のようになります。
- [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 プロダクトにより、それらのリソースパスへのアクセスが制御されます。
- [Import Resource] をクリックします。リソースパスが追加され、weatherapikey API プロキシが [API Proxies for Product] セクションに自動的に追加されます。
- [Save] をクリックします。新しいプロダクトが [Products] ページにリストされます。
詳細:
ステップ 2: デベロッパーを登録する
API キーを生成するには、アプリを登録して API プロダクトにそのアプリを関連付けます。しかし、最初にアプリのデベロッパーを登録しないと、アプリを登録できません。
- 管理 UI で [Publish] タブ、[Developers] の順にクリックします。
- [(+) Developer] をクリックします。
- [New Developer] ダイアログで次の値を入力します。
- First Name: Jane
- Last Name: Tutorial
- Email address: janetutorial@example.com
- Username: jtutorial
- [Save] をクリックします。新しいデベロッパーが [Developers] ページのデベロッパーのリストに表示されます。
詳細:
ステップ 3: アプリを登録する
API プロダクトとデベロッパーを用意できたので、アプリを API プロダクトに登録できます。アプリを登録すると、アプリに関連付けられている API プロダクトの API キーが生成されます。その後、アプリから API プロダクトの機能にアクセスできるように、アプリ デベロッパーにそのキーを配布できます。
- API Platform UI で、[Publish] タブ、[Developer Apps] の順にクリックします。
- [(+) Developer App] をクリックします。
- [Add an App] ダイアログで次の値を入力します。
- Display Name: Weather API Key App
- Developer: Jane Tutorial (janetutorial@example.com)
- Callback URL: 空白のままにします。
- アプリをプロダクトに関連付けます。
- [Products] セッションで、[+ Product] をクリックします。
- [Free API Product] を選択します。
- チェックマーク アイコンをクリックして変更を受け入れます。
- [Save] をクリックします。新しいアプリが [Developer Apps] ページのアプリのリストに表示されます。
- アプリのリストで [Weather API Key App] を選択します。この操作により、アプリの詳細ページが開きます。
- API プロダクトを作成する際に [Key Approval Type] で [Automatic] を選択したため、API キーは自動的に承認されてすぐに表示されます([Key Approval Type] で [Manual] を選択した場合は、[Free API Product] の [Actions] 列で [Approve] をクリックして API キーを承認する必要があります)。
- [Products] セクションの Free API Product のエントリの横にある [Consumer Key] と [Consumer Secret] の列の [Show] をクリックして、生成されたキーを表示します。
[Consumer Key] は API キーの別名です。アプリが API プロキシを介して forecast リソースにアクセスするために必要な唯一のキーです。[Consumer Secret] は、OAuth 2.0 を使用して API のセキュリティを確保するうえで([Consumer Key] とともに)必要です。詳しくは、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 の保護に進んでください。