この記事は更新から24ヶ月以上経過しているため、最新の情報を別途確認することを推奨いたします。
PowerShell を使用することで、Graph API 等に対する権限を追加可能です。
マネージド 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 に対してアプリケーションの権限設定が出来るようになると、より主流となる認証方法になりそうです。