在Azure门户中找不到Graph API应用程序

htrmnn0y  于 2023-05-07  发布在  其他
关注(0)|答案(1)|浏览(225)

我创建了一个Microsoft Graph API App来读取/写入经过身份验证的用户的Presence和Calendar状态。该应用程序在两个租户(1个生产,1个测试)中运行良好,但在其他一些租户中,应用程序无法通过Enterprise Application搜索或Azure AD Gallery找到,但这对它工作的两个租户来说不是问题。
当尝试直接访问应用程序的链接时,它在一个租户上工作,而另一个租户显示404错误:

当尝试在两个租户上使用Connector应用程序进行身份验证时,我们无法在Azure门户中找到该应用程序,用户可以登录,批准范围,但随后如预期的那样进入“需要管理员批准”页面,如屏幕截图所示:

我需要更改哪些内容才能使应用程序在Azure门户中可见以获得管理员批准?
更多的思考:

  • 我的一个想法是,该应用程序尚未经过验证,这是不可能的,因为我已经从个人Microsoft帐户创建了该应用程序,而不是Microsoft Work帐户。但由于它适用于其他(工作)租户,我想这不可能是问题?
  • 尽管如此,我已经创建了一个测试应用程序,其中包含一个未经验证的Microsoft Work帐户(因为这需要一个MPN ID),但在这些租户中也找不到它。
  • 我甚至不确定Graph API App是否是一个“企业应用程序”
  • 另一个挑战是,我无法直接访问这些其他租户,因为这是一个第三方想要测试该应用程序。
  • 请注意,signInAudience设置为AzureADandPersonalMicrosoftAccount
mnemlml8

mnemlml81#

我已从常规Microsoft帐户创建了应用程序,而不是Microsoft Work帐户。但由于它对其他(工作)租户起作用。
如果您已提供“signInAudience”:“AzureADMultipleOrgs”,它适用于其他租户,但它们是工作帐户,因此它将适用于使用工作帐户登录的租户。
要让应用支持个人账号,请在应用注册的manifest中更改**"signInAudience" to "AzureADandPersonalMicrosoftAccount"**。
清单

{
        "id": "8f8xxxb91",
        "acceptMappedClaims": null,
        "accessTokenAcceptedVersion": 2,
        "addIns": [],
        "allowPublicClient": null,
        "appId": "952xgjhkhhklkjo61",
        "appRoles": [],
        "oauth2AllowUrlPathMatching": false,
        "createdDateTime": "2023-05-01T10:03:51Z",
        "description": null,
        "cx
        "oauth2Permissions": [
           ...],
        "oauth2RequirePostResponse": false,
        "optionalClaims": null,
        "o...m",
        "replyUrlsWithType": [],
        "requiredResourceAccess": [
            {
                "resourceAppId": "00000003-0000-0000-c000-000000000000",
                "resourceAccess": [
                    {
                        "id": "e1fe6dd8xxx88639da4683d",
                        "type": "Scope"
                    }
                ]
            }
        ],
        "samlMetadataUrl": null,
        "signInUrl": null,
        "signInAudience": "AzureADandPersonalMicrosoftAccount",
        "tags": [],
        "tokenEncryptionKeyId": null
    }

检查您是否具有以下Application.Read.All、Calendars.ReadWrite、Openid、ProfileUser.Read应用程序和委托权限。
在门户网站本身授予管理员同意,以便在所需用户登录时不显示evrytime。

检查应用程序是否已添加到特定租户的Azure AD库或企业应用程序。这可能需要一些时间。
然后,可以使用用户凭据登录应用。

相关问题