アプリケーションが認証されると、クライアント シークレットや証明書などの独自のプロパティを更新できる場合があります。 そのためには、アプリケーション自体の所有者である必要があります。 これは、 Microsoft Graph API - 所有者の追加を使用して実装できます。
この記事では、Microsoft Graph を使用してアプリケーションの所有者としてアプリケーションに関連付けられているサービス プリンシパルを追加するために必要なアクセス許可と手順について説明します。
必要な権限
アプリケーションに所有者を追加するための最小特権のアクセス許可については、「 所有者の追加 - アクセス許可 」の表を参照してください。 これらのアクセス許可 ( Application.ReadWrite.OwnedBy
など) を使用すると、アプリケーションは所有者であるアプリケーションを管理できます。
所有者を追加する
アプリケーション所有者には、個々のユーザー、関連付けられているサービス プリンシパル、または別のサービス プリンシパルを指定できます。 次のセクションでは、関連するサービス プリンシパルを所有者としてアプリケーションに追加する方法について説明します。
手順 1: アプリケーションのオブジェクト ID を取得する
所有者を追加するアプリケーションの オブジェクト ID を 取得するには、次の手順に従います。
Azure portal にサインインします。
Microsoft Entra 管理センターに移動します。
Identity>アプリケーション>アプリ登録 に移動します。
アプリケーションを見つけて、 そのオブジェクト ID をコピーします。
手順 2: 所有者 (サービス プリンシパルのオブジェクト ID) を取得する
アプリケーションに関連付けられているサービス プリンシパルの オブジェクト ID を 取得するには、次の手順に従います。
Azure portal にサインインします。
Microsoft Entra 管理センターに移動します。
Identity>Applications>Enterprise 登録に移動します。
アプリケーションを見つけて、 そのオブジェクト ID をコピーします。
手順 3: アプリケーションに所有者を追加する
これを行う 2 つの方法を次に示します。
方法 1: Microsoft Graph エクスプローラーを使用する
Microsoft Graph エクスプローラーに移動します。
グローバル管理者やアプリケーション管理者など、アプリケーション所有者を更新するために必要なアクセス許可を持つユーザー アカウントでサインインします。
次の要求を使用します。
POST https://graph.microsoft.com/v1.0/applications/{application-object-id}/owners/$ref Content-Type: application/json { "@odata.id": "https://graph.microsoft.com/v1.0/directoryObjects/{service-principal-id}" }
注
{application-object-id}
をアプリケーションのオブジェクト ID に置き換え、{service-principal-id}
をサービス プリンシパルのオブジェクト ID に置き換えます。Microsoft Graph エクスプローラーの例を次に示します。
禁止 (403) エラーのトラブルシューティング
このプロセス中に、次のエラーが発生する可能性があります。
"error": {
"code": "Authorization_RequestDenied",
"message": "Insufficient privileges to complete the operation.",
"innerError": {
"date": "2021-12-09T17:41:54",
"request-id": "b1909fc0-aa5c-4b43-8a1f-xxxxxxxxxxxx",
"client-request-id": "836e08bb-a12d-4ade-c761-xxxxxxxxxxxx"
}
}
この問題を解決するには、[アクセス許可の変更] タブの下にある Microsoft Graph Explorer の API アクセス許可 Application.ReadWrite.All に同意します。
方法 2: Microsoft Graph PowerShell を使用する
アプリケーションに所有者を追加する Microsoft Graph PowerShell スクリプトの例を次に示します。
Connect-MgGraph -Scopes Application.ReadWrite.All
# Owner
$OwnerServicePrincipalObjectId = "96858eb3-xxxx-xxxx-xxxx-33a6b0dc2430"
# Application to add owner to
$ApplicationObjectId = "b7463aa1-xxxx-xxxx-xxxx-0963d6c00485"
$Owner = @{
"@odata.id" = "https://graph.microsoft.com/v1.0/directoryObjects/$($OwnerServicePrincipalObjectId)"
}
New-MgApplicationOwnerByRef -ApplicationId $ApplicationObjectId -BodyParameter $Owner
お問い合わせはこちらから
質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。