画像内にある「マネージドID(Managed Identity)」についてですね。
一言で言うと、「AzureがID管理(パスワードの発行や管理、更新など)をすべて自動でやってくれる、プログラム・サービス専用の身分証明書」のことです。
通常、システム同士を連携させる(例:Azure FunctionsからSharePointやデータベースにアクセスする)には、パスワードや接続文字列、APIキーなどの「資格情報」をコードや設定ファイルに書き込む必要がありました。しかしこれには、「パスワードの漏洩リスク」や「定期的なパスワード変更の手間」という問題がついて回ります。
マネージドIDを使うと、これらの課題をスマートに解決できます。
🔑 マネージドIDの主なメリット
パスワード管理が不要(ノンコード資格情報)
開発者がパスワードを生成したり、ソースコードや設定ファイル(local.settings.jsonなど)に隠したりする必要が一切なくなります。
自動ローテーション
資格情報の有効期限や定期的な更新(ローテーション)は、バックグラウンドでAzureが自動で行います。
安全なリソース間連携
「このAzure Functionアプリだけに、このリソースへのアクセスを許可する」といった高度な権限設定(RBAC)が、パスワードなしで安全に実現できます。
🏗️ 2つのタイプ
マネージドIDには、用途に合わせて2つの種類があります。
タイプ 特徴
システム割り当て(System-assigned) リソース(Azure Functionsなど)と1対1で完全に紐づくID。リソースを作成すると自動で生成され、リソースを削除するとIDも一緒に自動消滅します。手軽に使いたい場合に最適です。
ユーザー割り当て(User-assigned) スタンドアロンのAzureリソースとして独立して作成するID。**複数のリソースで使い回す(共有する)**ことができます。リソースを削除してもIDは残ります。
💡 具体的な活用例
例えば、M365(SharePointやGraph API)や他のAzureリソースと連携する定期実行バッチをAzure Functionsで作る場合:
Azure Functionsの「マネージドID」を有効にする。
相手側(SharePointのアクセス権やAzureリソースのIAM)で、「このマネージドIDに対して閲覧権限を与える」と設定する。
これだけで、コード内に認証情報を1文字も書くことなく、安全にアクセスできるようになります。近年の一世代進んだクラウドセキュリティ(ゼロトラスト)においては、必須とも言える標準的な機能です。