「Azure API Management」はWeb API管理のサービスである。APIの構築から、ライセンスキーの発行、性能やログの運用・管理といったAPIのライフサイクル全般をカバー。APIを外部に公開したり、自社のシステム同士をAPI連携させたりするのに利用できる。
GA(一般提供)になったのは2014年で、実績のあるサービスだ。Microsoft自身が、AI(人工知能)サービス「Microsoft Cognitive Services」のAPI提供に利用している。感情認識や顔の識別といったAI機能をAPIとして提供しており、ユーザー(人あるいはシステム)はHTTP(S)のプロトコルで呼び出す。このとき、ユーザーとAI機能を実現するバックエンドシステムを仲介するのがAPI Managementだ。
その機能は大きく三つある。中核機能となる「APIゲートウエイ」、API提供者向けの「パブリッシャーポータル」、ユーザー向けの「開発者ポータル」だ。これらの機能を順に解説していこう。
(1)APIゲートウエイ
APIゲートウエイは、ユーザーからリクエストを受け付け、バックエンドでの処理結果をカスタマイズして応答を返す、といったAPIの中核機能だ。API定義、ロギング、ユーザー認証、スロットリング(流量制御)、ユーザーの契約レベルなどによってアクセスできるAPIや回数を制限する機能などを備える。
API Managementはユーザーからのリクエストを中継するバックエンドとして、Azureのリソースだけでなく、他のクラウドやオンプレミス(自社所有)環境のリソースもサポートする。散在するバックエンドリソースをAPI Managementによって一元化できる。
(2)パブリッシャーポータル
APIの提供者がAPIの仕様を定義するために使うのが、パブリッシャーポータルだ。例えば、Azure Active DirectoryやMicrosoft Account、Twitter、Facebookなど許可するユーザー認証方式、ユーザーの契約レベルによるAPI利用回数の制限といったさまざまな設定を行う。
(3)開発者ポータル
開発者ポータルは、APIを利用するITエンジニア向けのものだ。APIの仕様を「APIリファレンス」というドキュメントとして自動出力し閲覧できるのに加え、APIの利用に必要なユーザー登録とAPIキーの取得も開発者ポータルで行う。
ユーザー認証については、メールアドレスとパスワードがデフォルトだが、API提供者が許可したものを利用できる。
開発者ポータルは、APIの提供者が自社のロゴを入れるなど柔軟にカスタマイズできる(画面1)。
API Managementのこれらの機能によって、APIの管理とバックエンドの開発を分離できる。このメリットは、厳格なAPI管理が求められるサービスで特に大きい。
なおAzureには、「Azure API Apps」というサービスが存在し、API Managementと混同しやすい。API Appsは、APIそのもの(実態は.NETやNode.jsなどのコード)を作成してホストするサービス。API AppsでホストしたAPIは、API Managementにとってリクエストを中継するバックエンドリソースの一つという位置付けになる。