microsoft-graph-api - 微软图休息API测试版: application created by api in azure ad b2c is not valid

标签 microsoft-graph-api azure-ad-b2c beta

我正在尝试按照以下文档使用 beta api 创建广告应用程序: https://learn.microsoft.com/en-us/graph/api/application-post-applications?view=graph-rest-beta&tabs=http

可以按预期在 Azure AD B2C(不是 Azure Active Directory)中成功创建应用程序。问题是当我尝试从门户打开此应用程序时,页面只是不断加载,而应用程序信息从未显示。我可以看到浏览器开发工具有错误:

以下请求返回 404 错误: https://main.b2cadmin.ext.azure.com/api/ApplicationV2/GetApplication?tenantId=mytestb2ctenant.onmicrosoft.com&applicationId=560df329-47f5-497b-a1d3-08e9e8208062

我可以验证 applicationId 确实是我新创建的广告应用程序的 appid。不知道为什么会收到未找到的错误。

然后,我在 B2C 广告中手动创建了另一个应用。我比较了 get-application 返回的模式这两个应用程序的其余 api。唯一的区别是手动创建的一个具有默认的 user_impersonation api 范围,而另一个则没有。也许这会导致错误。

enter image description here

这是我创建广告应用程序的完整 powershell 脚本:

    $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

我是否错过了请求架构的任何内容?我如何从 REST API 创建一个有效的应用程序,就像我手动创建它一样?

最佳答案

我猜我找到了根源。

从 API 创建的应用程序没有关联的服务原则。需要为它创建一个sp。我无法从 here 找到用于创建 sp 的其余 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-api - 微软图休息API测试版: application created by api in azure ad b2c is not valid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59062273/

相关文章:

iphone - 如何卸载旧的 Xcode 自定义安装?

c# - 如何在 MS Graph API 中组合 NOT 过滤器

visual-studio - 使用 Azure AD B2C 的 Azure Functions 本地身份验证

azure - 无法将自定义添加到 B2C 登录页面

ios - XCode 8 将 View 放大到 Storyboard 中的 ScrollView

ios - 准备(对于 segue : UIStoryboardSegue, 发件人 : AnyObject?)在 swift 3.0/Xcode 8 b6 中丢失

microsoft-graph-api - 为什么 Microsoft Graph API 告诉我我刚刚创建的事件是 "@removed",而它们仍然存在?

microsoft-graph-api - 在 Microsoft Graph 中查询 Teams 时拒绝访问

microsoft-graph-api - Set-MsolPasswordPolicy 的 Microsoft Graph 等效项是什么

powershell - 使用 powershell 创建 Azure AD B2C 自定义策略和应用程序