gpt4 book ai didi

azure - 使用 Microsoft.Graph PowerShell 模块创建 Azure AD 应用程序时无法设置 OAuth2 权限范围

转载 作者:行者123 更新时间:2023-12-03 06:16:14 25 4
gpt4 key购买 nike

我正在尝试使用 New-MgApplication 创建 Azure AD 应用程序PowerShell Cmdlet。创建应用程序时,我尝试设置 OAuth2 权限范围。 Cmdlet 运行良好并且应用程序已正确创建。但是,当我在 Azure 门户中检查应用程序设置时,这些设置并未被设置。

这是我的代码:

[Microsoft.Azure.PowerShell.Cmdlets.Resources.MSGraph.Models.ApiV10.MicrosoftGraphWebApplication]$azureAdApiAppWebSettings = @{RedirectUris="http://localhost:4040"}

[Microsoft.Azure.PowerShell.Cmdlets.Resources.MSGraph.Models.ApiV10.IMicrosoftGraphPermissionScope[]]$oauth2PermissionScopes = @(
@{
AdminConsentDescription="Access the application as admin.";
AdminConsentDisplayName="Access as admin";
Id=[guid]::NewGuid().ToString();
IsEnabled=$true;
Origin="Application";
Type="User";
UserConsentDescription="Access the application as user.";
UserConsentDisplayName="Access as user";
Value="access_as_user"
}
)

[Microsoft.Azure.PowerShell.Cmdlets.Resources.MSGraph.Models.ApiV10.IMicrosoftGraphApiApplication]$azureAdApiAppApiSettings = @{
Oauth2PermissionScopes=$oauth2PermissionScopes;
}
$azureAdApiApp = New-MgApplication -DisplayName "MyApplicationName" -SignInAudience "AzureADMyOrg" -Web $azureAdApiAppWebSettings -Api $azureAdApiAppApiSettings

我想知道是否有人可以告诉我我做错了什么?或者只是我们无法在创建应用程序时设置权限范围,只能在使用 Update-MgApplication 创建应用程序后才能设置权限范围.

最佳答案

这是我解决这个问题的方法。根据门户的界面,我的理解是,在设置这些权限范围之前,我们需要设置应用程序 URI。

假设我们将应用程序 URI 设置为默认值 ( api://<app-id> ),则在创建应用程序时无法设置权限范围。

必须在创建应用程序后完成,因为我们只有在创建应用程序后才能获取应用程序 ID。

这是我想出的代码:

[Microsoft.Graph.PowerShell.Models.MicrosoftGraphWebApplication]$azureAdApiAppWebSettings = @{RedirectUris="http://localhost:4040"}

$azureAdApiApp = New-MgApplication -DisplayName "MyApplicationName" -SignInAudience "AzureADMyOrg" -Web $azureAdApiAppWebSettings


# Update identifier URIs first
$applicationId = $azureAdApiApp.appId
$identifierUris = "api://$applicationId"
$azureAdApiApp = Update-MgApplication -ApplicationId $azureAdApiAppId -IdentifierUris $identifierUris

# Wait for some time for identifier URIs to update
Start-Sleep -Seconds 10

# Now update the permission scopes
[Microsoft.Graph.PowerShell.Models.IMicrosoftGraphPermissionScope[]]$oauth2PermissionScopes = @(
@{
AdminConsentDescription="Access the application as admin.";
AdminConsentDisplayName="Access as admin";
Id=[guid]::NewGuid().ToString();
IsEnabled=$true;
Origin="Application";
Type="User";
UserConsentDescription="Access the application as user.";
UserConsentDisplayName="Access as user";
Value="access_as_user"
}
)

[Microsoft.Graph.PowerShell.Models.IMicrosoftGraphApiApplication]$azureAdApiAppApiSettings = @{
Oauth2PermissionScopes=$oauth2PermissionScopes;
}

$azureAdApiApp = Update-MgApplication -ApplicationId $azureAdApiAppId -Api $azureAdApiAppApiSettings

关于azure - 使用 Microsoft.Graph PowerShell 模块创建 Azure AD 应用程序时无法设置 OAuth2 权限范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76230756/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com