我使用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的问题?
感谢您对此事的任何指导或见解。
1条答案
按热度按时间gwbalxhn1#
当您使用“AzureADMyHost”作为
signInAudience
创建应用程序并使用它调用B2C授权请求时发生错误。若要解决此错误,您需要使用 “AzureADandPersonalMicrosoftAccount” 作为
signInAudience
正确创建B2C应用注册,并通过添加所需权限进行更新,然后创建服务主体。在我的例子中,我在**Graph Explorer**中运行了下面的
POST
请求,使用B2C帐户登录以在其中创建应用注册:字符串
回复:
的数据
现在,使用以下PATCH请求更新所需的应用程序属性,例如添加**
openid
和offline_access
**权限:型
回复:
的
新增API权限,请确保授予admin consent,如下所示:
的
需要注意的是,通过Graph API创建应用注册时,默认情况下不会为其创建服务主体,因此需要单独请求手工创建服务主体,具体如下:
型
回复:
的
现在,我在浏览器中运行下面的授权URL以通过包括
appClientId
来获取代码,其中我得到了这样的登录屏幕:型
的
通过有效用户账号认证后,在地址栏成功获取**
code
**,如下所示:型
参考:AADB2C90068 - The provided application is not valid against this service - Stack Overflow by me