我试图用PowerShell创建一个用户流,但是我收到了The remote server returned an error: (403) Forbidden.
。我正在阅读微软的文档,但是没有成功。
Connect-AzAccount -Tenant "myorg.onmicrosoft.com"
$managementAccessToken = Get-AzAccessToken -TenantId "$tenantId" -ResourceTypeName MSGraph
$DefinitionFilePath = "C:\azdeploy\flows\b2csignin.json"
$signinFlowContent = Get-Content $DefinitionFilePath
Invoke-WebRequest -Uri "https://graph.microsoft.com/beta/identity/b2cUserFlows" `
-Method "POST" `
-Headers @{
"Content-Type" = "application/json"
"Authorization" = "Bearer $($managementAccessToken.Token)";
} `
-Body $signinFlowContent
JSON内容(默认来自Microsoft文档):
{
"id": "Customer",
"userFlowType": "signUpOrSignIn",
"userFlowTypeVersion": 3
}
Connect-AzAccount是由全局管理员用户创建的,也尝试了生命周期工作流管理员权限。我不知道该怎么做,尝试了旧API,但它已被弃用。我需要创建一些带有应用程序声明的用户流。我如何才能实现这一点?谢谢!
1条答案
按热度按时间gcuhipw91#
我尝试在我的环境中重现相同的结果,结果如下:
我创建了一个json文件与相同的参数,你喜欢下面:
我有一个名为**
Sritest
的用户,其角色为全局管理员**,如下所示:当我用上面的用户登录运行与您相同的代码时,我得到了相同的错误如下:
您需要具有
IdentityUserFlow.ReadWrite.All
权限才能创建用户流。为了解决错误,我注册了一个Azure AD应用程序,并添加了API权限,如下所示:
在应用程序中添加API权限后,请确保授予管理员同意。现在,我创建了一个客户端密码,并通过修改PowerShell代码在获取访问令牌时添加了所有这些详细信息。
当我运行下面的modified代码时,成功创建了用户流,如下所示:
为了确认这一点,我在Portal中进行了相同检查,其中
B2C_1_Customer
userflow如下所示: