Azure 使用个人Microsoft帐户登录到Oauth2 v2失败

Azure 使用个人Microsoft帐户登录到Oauth2 v2失败,azure,oauth-2.0,azure-ad-graph-api,Azure,Oauth 2.0,Azure Ad Graph Api,我确实使用我的Office365公司帐户在portal.azure.com上注册了一个新应用程序来访问GraphAPI 当身份验证为来自我们自己域(在O365注册的域)的用户工作时,我不断收到来自个人Microsoft帐户(outlook.com或live.com)的用户的错误 我确实将应用程序设置为支持“所有Microsoft帐户用户” 这是清单 { "id": "valid-uid", "acceptMappedClaims": null, "accessTokenA

我确实使用我的Office365公司帐户在portal.azure.com上注册了一个新应用程序来访问GraphAPI

当身份验证为来自我们自己域(在O365注册的域)的用户工作时,我不断收到来自个人Microsoft帐户(outlook.com或live.com)的用户的错误

我确实将应用程序设置为支持“所有Microsoft帐户用户”

这是清单

{
    "id": "valid-uid",
    "acceptMappedClaims": null,
    "accessTokenAcceptedVersion": 2,
    "addIns": [],
    "allowPublicClient": null,
    "appId": "valid-uid",
    "appRoles": [],
    "oauth2AllowUrlPathMatching": false,
    "createdDateTime": "2019-08-29T13:34:54Z",
    "groupMembershipClaims": "All",
    "identifierUris": [
        "api://app-id"
    ],
    "informationalUrls": {
        "termsOfService": null,
        "support": null,
        "privacy": null,
        "marketing": null
    },
    "keyCredentials": [],
    "knownClientApplications": [],
    "logoUrl": null,
    "logoutUrl": null,
    "name": "My Application (DEV2)",
    "oauth2AllowIdTokenImplicitFlow": false,
    "oauth2AllowImplicitFlow": true,
    "oauth2Permissions": [],
    "oauth2RequirePostResponse": false,
    "optionalClaims": null,
    "orgRestrictions": [],
    "parentalControlSettings": {
        "countriesBlockedForMinors": [],
        "legalAgeGroupRule": "Allow"
    },
    "passwordCredentials": [
        {
            "customKeyIdentifier": null,
            "endDate": "2299-12-30T23:00:00Z",
            "keyId": "valid-uid",
            "startDate": "2019-08-29T13:40:10.571Z",
            "value": null,
            "createdOn": "2019-08-29T13:40:11.7033226Z",
            "hint": "U18",
            "displayName": "Local Client"
        }
    ],
    "preAuthorizedApplications": [],
    "publisherDomain": "NETORGFT(integer-nr).onmicrosoft.com",
    "replyUrlsWithType": [
        {
            "url": "http://localhost:8080/auth/microsoft/callback",
            "type": "Web"
        }
    ],
    "requiredResourceAccess": [
        {
            "resourceAppId": "00000003-0000-0000-c000-000000000000",
            "resourceAccess": [
                {
                    "id": "e1fe6dd8-ba31-4d61-89e7-88639da4683d",
                    "type": "Scope"
                }
            ]
        }
    ],
    "samlMetadataUrl": null,
    "signInUrl": null,
    "signInAudience": "AzureADandPersonalMicrosoftAccount",
    "tags": [],
    "tokenEncryptionKeyId": null
}
这是我尝试使用outlook.com(个人帐户)登录时遇到的错误

---------------错误----------------

登录 抱歉,您登录时遇到问题

AADSTS50020:用户帐户'someemail@outlook.com租户“ourdomain.com”中不存在“from identity provider”live.com,并且无法访问该租户中的应用程序“uid of our app”(我的应用程序(DEV2))。首先需要将该帐户作为外部用户添加到租户中。注销并使用其他Azure Active Directory用户帐户再次登录


尽管已将应用程序配置为“signInAudience”:“AzureADandPersonalMicrosoftAccount”?

要解决此问题,您需要将这些Microsoft帐户作为来宾用户添加到Azure广告中


基本上,这些用户正在别处获得身份验证,但为了让他们访问在您的租户(Azure AD)中创建的应用程序,他们需要存在于您的租户中。由于这些用户不存在于您的租户中,因此您会遇到此错误。

事实上,这是我自己解决的

如果沿着URL传递租户ID,则清单属性似乎会被忽略
https://login.microsoftonline.com/{tenant}/oauth2/v2.0/authorize

在我发现的文档中,对于企业和个人帐户,您都必须将
'common'
作为
{tenant}
传递。
https://login.microsoftonline.com/common/oauth2/v2.0/authorize

请求路径中的{tenant}值可用于控制 谁可以登录应用程序。允许的值为

  • common
    适用于Microsoft帐户和工作或学校帐户
  • 组织
    仅适用于工作或学校账户
  • 消费者
    仅适用于Microsoft帐户, 以及租户标识符,如租户ID或域名

此处的更多信息

如何添加所有个人microsoft用户帐户?;)