如何在权限中自动在Azure AD中注册应用程序?

时间:2020-06-28 12:13:23

标签: azure powershell security azure-active-directory microsoft-graph-api

我正在使用New-AzureADApplication -DisplayName MyApp -PasswordCredentials $PasswordCreds(在其他位置定义了密码凭据),它可以成功创建带有密码的应用程序注册(不是企业应用程序)。

我失败的地方是我还具有5个基于图形应用程序的权限,我想添加到此应用程序中,包括User.Read.All

我试图在StackOverflow上遵循几个答案,并阅读了无数博客,但是,我只是失败了。一些指南/答案似乎已经过时,或者当我运行一些示例时,我为User.Read.All获取了大约6-8种不同的GUID,而其他答案仅包含问题答案所要求的权限,而没有解释为什么/方式。

我不想要User.Read.All的答案,我真的想学习并了解当我知道的是上面的权限名称时,最终如何为'-RequiredResourceAccess`提供正确的参数。

2 个答案:

答案 0 :(得分:2)

这是执行此操作的最佳示例:https://github.com/mjisaak/azure-active-directory/blob/master/README.md#well-known-appids

由于图形应用在租户中具有唯一的对象ID,因此您需要首先获取该ID。

Get-AzureADServicePrincipal | Where-Object AppId -Match '\w{8}-\w{4}-\w{4}-c000'

这仅与少数几个匹配,向您展示了一堆系统应用程序。您会注意到,Microsoft Graph的应用ID为00000003-blabla。但您还会看到对象ID,并带有该对象ID。然后查询所有oauth2permissions(已委派)或AppRoles(应用程序权限)

委派的权限:

Get-AzureAdServicePrincipal -ObjectId ObjectIDyouFoundAbove | 
    Select-Object -expand Oauth2Permissions | 
    Select-Object Id, Value, AdminConsentDisplayName | 
    Sort-Object Id

应用程序权限:

Get-AzureAdServicePrincipal -ObjectId AgainObjectIDYouFoundAbove |
  Select-Object -expand AppRoles | 
  Select-Object Id, Value, DisplayName | 
  Sort-Object Id

这将列出权限指南。值基本上是read.user文本。其中显示名称是描述。 ID是您的向导。

答案 1 :(得分:1)

通过网络浏览,您应该可以通过Powershell来完成整个操作,但是感觉神仙的事情令人费解,并且对我立即不起作用。除非您需要动态解决这些指导,否则可能不值得。 这对我不起作用,但是如果您要调查,请查看data/data/...$sp = Get-AzureADServicePrincipal -SearchString "Microsoft Graph"https://gcits.com/knowledge-base/automate-creation-azure-ad-applications-access-microsoft-graph-customer-tenants/)。

这对我有用: 通常,我通常只是在门户中手动设置一个应用程序,然后查看应用程序清单。

$sp.Oauth2Permissions

Azure Portal

对于实际设置权限,您可能已经有了代码。为了完整起见,我将其包括在内。

How to configure a new Azure AD application through Powershell?

    "requiredResourceAccess": [
        {
            "resourceAppId": "00000003-0000-0000-c000-000000000000",
            "resourceAccess": [
                {
                    "id": "5b567255-7703-4780-807c-7be8301ae99b",
                    "type": "Role"
                }
            ]
        },
        {
            "resourceAppId": "00000002-0000-0000-c000-000000000000",
            "resourceAccess": [
                {
                    "id": "311a71cc-e848-46a1-bdf8-97ff7156d8e6",
                    "type": "Scope"
                },
                {
                    "id": "6234d376-f627-4f0f-90e0-dff25c5211a3",
                    "type": "Scope"
                }
            ]
        }
    ],