gpt4 book ai didi

powershell - 如何通过Powershell配置新的Azure AD应用程序?

转载 作者:行者123 更新时间:2023-12-02 22:12:16 27 4
gpt4 key购买 nike

我正在通过 Powershell 创建一个新的 Azure AD 应用程序。我已成功创建应用程序并使用以下 PowerShell 命令分配了 client_secret:

$app = New-AzureRmADApplication -DisplayName "PowerShell-Test-POC2"-HomePage "http://www.microsoft.com"-IdentifierUris "http://kcuraonedrive.onmicrosoft.com/PowerShell-Test -POC2"-AvailableToOtherTenants $true

我的问题是如何通过 Powershell 配置这个新创建的应用程序(即所需的权限和回复 URL)?

最佳答案

我建议改用新的 Azure AD v2 cmdlet:https://learn.microsoft.com/en-us/powershell/azuread/v2/azureactivedirectory .

它们比 ARM 更通用,并且允许您更轻松地指定 key 、回复 URL 等内容。

例如,添加回复 URL:

Set-AzureADApplication -ObjectId 1048db5f-f5ff-419b-8103-1ce26f15db31 -ReplyUrls @("https://localhost:8080","https://localhost:8081")

要添加所需的权限,您必须了解几件事。定义权限的服务主体,您将需要其 appId。 (我从我的租户那里找到了 Microsoft Graph API 主体)然后您需要找到您想要的 appRoleoauth2Permission。您将需要它的 ID。

然后添加委托(delegate)权限:

$req = New-Object -TypeName "Microsoft.Open.AzureAD.Model.RequiredResourceAccess"
$acc1 = New-Object -TypeName "Microsoft.Open.AzureAD.Model.ResourceAccess" -ArgumentList "e1fe6dd8-ba31-4d61-89e7-88639da4683d","Scope"
$acc2 = New-Object -TypeName "Microsoft.Open.AzureAD.Model.ResourceAccess" -ArgumentList "798ee544-9d2d-430c-a058-570e29e34338","Role"
$req.ResourceAccess = $acc1,$acc2
$req.ResourceAppId = "00000003-0000-0000-c000-000000000000"
Set-AzureADApplication -ObjectId 1048db5f-f5ff-419b-8103-1ce26f15db31 -RequiredResourceAccess $req

ResourceAppId 是 Microsoft Graph API 服务主体的 appId。本例中的 ResourceAccess 对象包含两个要求。第一个包含我想要要求的 oauth2Permission 的 id,并指定它是委托(delegate)权限。第二个包含应用程序权限,id 是 appRole 的对象 id。

范围=委派权限

角色=应用程序权限

要查找您需要的服务主体,您可以运行:

Get-AzureADServicePrincipal
ObjectId AppId DisplayName
-------- ----- -----------
f004dde9-b40f-4259-91be-e257009a444a 00000003-0000-0000-c000-000000000000 Microsoft Graph

然后获取主体并列出委托(delegate)的权限:

$msGraph = Get-AzureADServicePrincipal -ObjectId f004dde9-b40f-4259-91be-e257009a444a
$msGraph.Oauth2Permissions | select Id,AdminConsentDisplayName,Value
Id AdminConsentDisplayName Value
-- ----------------------- -----
e1fe6dd8-ba31-4d61-89e7-88639da4683d Sign in and read user profile User.Read

或者如果您需要应用程序权限:

$msGraph.AppRoles | select Id,DisplayName,Value
Id DisplayName Value
-- ----------- -----
798ee544-9d2d-430c-a058-570e29e34338 Read calendars in all mailboxes Calendars.Read

Id 是重要的。

对于脚本来说,好处是 MS 服务的应用程序 ID 始终相同。所有租户中的权限 ID 也相同。例如:

  • Microsoft Graph API
    • 应用程序 ID:00000003-0000-0000-c000-000000000000
  • Azure AD 图形 API
    • 应用程序 ID:00000002-0000-0000-c000-000000000000

关于powershell - 如何通过Powershell配置新的Azure AD应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42164581/

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