マネージド ID にアプリケーションの権限を付与することは出来ますか?

この記事は更新から24ヶ月以上経過しているため、最新の情報を別途確認することを推奨いたします。

PowerShell を使用することで、Graph API 等に対する権限を追加可能です。

マネージド ID は Azure リソース自身で認証を行い、認証情報を排除した形で割り当てた権限を行使できる ID です。

参考:Azure リソースのマネージド ID とは?


ただし、マネージド ID に対してポータルで設定可能な権限は RBAC のロールに規定されているとおりで、リソースの取得や操作といった Azure リソースへのアクセス制御に限られています。
参考:Azure 組み込みロール

Azure AD グループやユーザー自体の情報が欲しい場合、リソースの権限では取得できないため Graph API 等の権限が必要であり、通常ではサービスプリンシパルを作成し設定していました。

例として、サービスプリンシパルで Graph API 等を使用するときは、アプリの登録でサービスプリンシパルを作成し、シークレットを作成し、アプリのアクセス許可に Graph API を追加し、アプリケーションコードでそれらの認証情報を保持し、使用するという流れでした。

しかし、マネージド ID に Graph API 等の権限を追加する場合、マネージド ID を有効にし、Graph API の権限を追加し、アプリでは認証情報を保持せずに使用可能と、やはり認証情報を排除した形で利用可能です。

参考:
マネージド ID を利用して Azure AD サインイン アクティビティ レポートを CSV ファイルで取得する PowerShell スクリプト
New-AzureADServiceAppRoleAssignment

.NET の場合、マネージド ID の認証は以下ライブラリで行います。
参考:Azure Identity client library for .NET


これらマネージド ID を使用すると、仮想マシンの起動停止を行うだけだった Azure Functions を、呼び出しユーザーの Azure AD グループを取得しグループによって起動停止の可否を判別するといった処理にでき、且つ Functions 内で認証情報を保持せずとも実施可能になります。

Azure ポータルでマネージド ID に対してアプリケーションの権限設定が出来るようになると、より主流となる認証方法になりそうです。

いいね (←参考になった場合はハートマークを押して評価お願いします)
読み込み中...

注意事項・免責事項

※技術情報につきましては投稿日時点の情報となります。投稿日以降に仕様等が変更されていることがありますのでご了承ください。

※公式な技術情報の紹介の他、当社による検証結果および経験に基づく独自の見解が含まれている場合がございます。

※これらの技術情報によって被ったいかなる損害についても、当社は一切責任を負わないものといたします。十分な確認・検証の上、ご活用お願いたします。

※当サイトはマイクロソフト社によるサポートページではございません。パーソルクロステクノロジー株式会社が運営しているサイトのため、マイクロソフト社によるサポートを希望される方は適切な問い合わせ先にご確認ください。
 【重要】マイクロソフト社のサポートをお求めの方は、問い合わせ窓口をご確認ください