Microsoft Azure には、API を管理する機能があります。API を製品やサービスに組み込む必要がある場合は、Azure API Management プラットフォームを利用することができます。
Azure で API を管理するときに取り組むべき重要なタスクの1つは、アクセス許可です。次のような事項に関してよく検討して適切に対処する必要があります。
Azure は、他の多くのサービスと同様に、役割ベースのアクセスコントロール(role-based access control、RBAC)を介してアクセスをコントロールします。役割を定義し、その役割に応じたアクセスを許可するという仕組みで、アクセスできるものとできないものを詳細なレベルでコントロールできます。
API ロールの割り当てを管理する方法はいくつかありますが、便利な方法として PowerShell の使用があります。すでに各種の PowerShell スクリプトを使っている場合は、このプロセスを自動化するのに PowerShell を使用するのが最適です。
Azure API Management で新しくロール割り当てを行うには、いくつかのステップを踏む必要があります。
具体的にはどうすればいいか、以下に説明します。
このブログの記述をフォローする場合は、次の点を確認してください。
PowerShell で Azure API を使用して何かを実行するためには、まず新しいコンテキストを作成する必要があります。新しいコンテキストを作成するには、New-AzApiManagementContext コマンドを使用します。このコマンドを実行して、リソースグループと API Management サービスの名前を指定します。
コンテキストオブジェクトを作成したら、次のタスクは、新しいロールを適用するべき API を検出することです。PowerShell でこれを行うには、Get-AzApiManagementApi を使用します。
下のコード例では、名前が $ApiMatchPattern にある文字列と一致するすべての API を検索しています。
ロール定義を作成するには、1つ以上のスコープを設定する必要があります。これらのスコープは、作成時にロール定義に割り当てられます。
上記のコードで返された API の ID を使用し、それぞれのスコープ文字列を作成するコード例は、次のようになります。各変数は、環境に応じて適切な値を入力する必要があります。
スコープを作成したら、ロールの定義を行います。例えば、’Read’ ロールの定義は、次のようにコーディングすることができます。
最後に、Nw-AzRoleAssignment コマンドレットを使ってロール割り当てを行います。ロール割り当てには、ロールを割り当てるグループの ID (プリンシパル ID) が必要ですが、プリンシパル ID は Get-AzAdGroup コマンドレットで見つけることができます。
プリンシパル IDを取得したら、作成したスコープ文字列ごとにロールを割り当てます。
ロール割り当てが終了すれば、すべて完了です。
このブログでは、PowerShell を使用して Azure ロールを作成し API に割り当てる方法を説明しました。ここで紹介したコードは、Install-Script -Name Grand-AzureApiAccess を実行するとダウンロードできます。
説明に使ったのは、単純な1つのユースケースだけですが、PowerShell を使用して、より複雑なロジックをスクリプトに組み込み、API アクセス許可の割り当てプロセス全体を自動化することもできます。どういった自動化が可能か、API PowerShell コマンドレットを調べてみてください。
Subscribe to get all the news, info and tutorials you need to build better business apps and sites