azure 问题“AADB2C90068:提供的ID为”“的应用< Client ID>程序对此服务无效”

hm2xizp9  于 10个月前  发布在  DB2
关注(0)|答案(1)|浏览(154)

我使用Graph REST API以编程方式创建了一个应用程序,并获得了“客户端ID”和“客户端密码”。然而,当尝试在浏览器中使用“获取代码”API时,我遇到了一个错误。
我使用的URL看起来像这样:

https://<TenantID>/<TenentName>.onmicrosoft.com/<SiginScope>/oauth2/v2.0/authorize?client_id=<YourClientID>&&response_type=code&scope=/https://<TenantName>.onmicrosoft.com/node-api/<YourAccessPolicyName>%20offline_access%20openid&redirect_uri=https%3A%2F%2Fjwt.ms

字符串
收到的错误消息为:
“很抱歉,您登录时遇到问题。我们会自动跟踪这些错误,但如果问题仍然存在,请随时与我们联系。同时,请重试。相关ID:时间戳:AADB2C90068:提供的ID为”“的应用程序对此服务无效。请使用通过B2C门户创建的应用程序,然后重试。”没有帐户?请与我们联系
我不确定为什么会收到此错误。如何解决服务无法识别提供的应用程序ID的问题?
感谢您对此事的任何指导或见解。

gwbalxhn

gwbalxhn1#

当您使用“AzureADMyHost”作为signInAudience创建应用程序并使用它调用B2C授权请求时发生错误。
若要解决此错误,您需要使用 “AzureADandPersonalMicrosoftAccount” 作为signInAudience正确创建B2C应用注册,并通过添加所需权限进行更新,然后创建服务主体。
在我的例子中,我在**Graph Explorer**中运行了下面的POST请求,使用B2C帐户登录以在其中创建应用注册:

POST https://graph.microsoft.com/beta/applications
{
    "displayName": "MyApp30",
    "signInAudience": "AzureADandPersonalMicrosoftAccount",
    "web": {
        "redirectUris": [
            "https://jwt.ms"
        ]
    }
}

字符串

回复:


的数据
现在,使用以下PATCH请求更新所需的应用程序属性,例如添加**openidoffline_access**权限:

PATCH https://graph.microsoft.com/beta/applications/appObjId/
{
    "requiredResourceAccess": [
        {
            "resourceAppId": "00000003-0000-0000-c000-000000000000",
            "resourceAccess": [
                {
                    "id": "7427e0e9-2fba-42fe-b0c0-848c9e6a8182",
                    "type": "Scope"
                },
                {
                    "id": "37f7f235-527c-4136-accd-4a02d197296e",
                    "type": "Scope"
                }
            ]
        }
    ]
}

回复:



新增API权限,请确保授予admin consent,如下所示:



需要注意的是,通过Graph API创建应用注册时,默认情况下不会为其创建服务主体,因此需要单独请求手工创建服务主体,具体如下:

POST https://graph.microsoft.com/beta/servicePrincipals
{
    "appId": "appClientId"
}

回复:



现在,我在浏览器中运行下面的授权URL以通过包括appClientId来获取代码,其中我得到了这样的登录屏幕:

https://<b2ctenant>.b2clogin.com/<b2ctenant>.onmicrosoft.com/oauth2/v2.0/authorize?p=B2C_1_SUSI&client_id=<myappId>&nonce=defaultNonce&redirect_uri=https%3A%2F%2Fjwt.ms&scope=openid&response_type=code&prompt=login



通过有效用户账号认证后,在地址栏成功获取**code**,如下所示:


参考:AADB2C90068 - The provided application is not valid against this service - Stack Overflow by me

相关问题