Microsoft graph api microsoft graph rest api测试版:由azure ad b2c中的api创建的应用程序无效
我正试图通过以下文档使用beta api创建广告应用程序: 应用程序可以按预期在Azure AD B2C(非Azure Active Directory)中成功创建。问题是,当我试图从门户打开此应用程序时,页面一直在加载,而应用程序信息从未显示。我可以从浏览器开发工具中看到一个错误: 以下请求返回404错误: 我可以验证applicationId确实是我新创建的广告应用程序的appid。不确定为什么要获取notfound错误 然后我在我的b2c广告中手动创建了另一个应用程序。我比较了RESTAPI为这两个应用程序返回的模式。唯一的区别是手动创建的一个具有默认的用户模拟api范围,而另一个没有。也许这就是错误的原因 以下是我创建广告应用程序的完整powershell脚本:Microsoft graph api microsoft graph rest api测试版:由azure ad b2c中的api创建的应用程序无效,microsoft-graph-api,azure-ad-b2c,beta,Microsoft Graph Api,Azure Ad B2c,Beta,我正试图通过以下文档使用beta api创建广告应用程序: 应用程序可以按预期在Azure AD B2C(非Azure Active Directory)中成功创建。问题是,当我试图从门户打开此应用程序时,页面一直在加载,而应用程序信息从未显示。我可以从浏览器开发工具中看到一个错误: 以下请求返回404错误: 我可以验证applicationId确实是我新创建的广告应用程序的appid。不确定为什么要获取notfound错误 然后我在我的b2c广告中手动创建了另一个应用程序。我比较了REST
$b2cDomain = "mytestb2ctenant.onmicrosoft.com"
$applications = "https://graph.microsoft.com/beta/applications"
$headers = @{
"Authorization" = $accessToken;
}
@app = "mytestapp"
$request = @{
displayName = $app
identifierUris = @("https://$b2cDomain/api")
signInAudience = "AzureADandPersonalMicrosoftAccount"
web = @{
redirectUris = @("https://any.valid.url")
implicitGrantSettings = @{
enableIdTokenIssuance = $false
enableAccessTokenIssuance = $true
}
}
isFallbackPublicClient= $false
}
$body = $request | ConvertTo-Json
Log "creating ad app: $app"
$appResponse = Invoke-RestMethod `
-Uri $applications `
-Method Post `
-Headers $headers `
-ContentType "application/json" `
-Body $body
我是否遗漏了请求架构的任何内容?如何像手动创建应用程序一样从RESTAPI创建有效的应用程序?我想我找到了根 从api创建的应用程序没有关联的服务原则。需要为其创建sp。我找不到用于从中创建sp的rest api。最终使用AzueAD powershell命令:
Connect-AzureAD -Credential $credential -TenantId $b2cTenantId
New-AzureADApplication -DisplayName "myapp"
$app = Get-AzureADApplication -SearchString "myapp"
New-AzureADServicePrincipal -AppId $app.AppId
现在一切似乎都好了
顺便说一句,Azure AD B2C和Azure Active Directory中的应用程序应该是相同的,只是显示不同的位置。我以前很困惑
请记住不要在生产中使用Microsoft Graph beta API,因为它们可能会发生更改
要使应用程序在AAD B2C(获取令牌)中成功运行,它需要满足以下要求