Azure B2C 以编程方式更新自定义用户属性

ahe*_*ick 5 updates azure-ad-b2c

在我的 B2C 租户中,我添加了一个新的自定义用户属性:org

我已添加org为声明,以便当用户登录时我可以看到自定义声明。

我现在想在代码中更新这个值。我尝试PATCH向适当的端点发送请求:

https://graph.windows.net/myb2c.onmicrosoft.com/users/userObjectId?api-version=1.6

但收到以下错误:

指定的一个或多个属性值无效。

这是我发送的 JSON:

{ "extension_org": "1234" }
Run Code Online (Sandbox Code Playgroud)

我需要用其他方法更新这个值吗?

截图供参考:

在此输入图像描述

在此输入图像描述

tps*_*nds 5

如果您使用图形 API 获取 B2C 扩展应用程序的扩展属性,您将看到名称中插入了应用程序 ID。因此,它将作为extension_{appId}_org扩展名。

要查找应用程序 ID,请在 B2C 目录中转到 Azure Active Directory 边栏选项卡,单击“应用程序注册”,然后单击“查看所有应用程序”。你会看到一个b2c_extension_app. 单击它,将显示其应用程序 ID。

如果您更喜欢使用 AAD Graph API,则可以使用带有过滤器的应用程序端点来获取应用程序 ID: ... /applications?api-version=1.6&$filter=startswith(displayName, 'b2c-extensions-app')。这将返回 JSON,如下所示:

{
"odata.metadata": "https://graph.windows.net/{tenant}.onmicrosoft.com/$metadata#directoryObjects/Microsoft.DirectoryServices.Application",
"value": [{
        "odata.type": "Microsoft.DirectoryServices.Application",
        "objectType": "Application",
        "objectId": "319f43e4-6b2e-4de8-abdb-549ca5c0626",
        "deletionTimestamp": null,
        "acceptMappedClaims": null,
        "addIns": [],
        "appId": "8588c037-999f-4d05-8cc0-8e2e5f9de30",
        "appRoles": [],
        "availableToOtherTenants": false,
        "displayName": "b2c-extensions-app. Do not modify. Used by AADB2C for storing user data.",
        "errorUrl": null,
        "groupMembershipClaims": null,
        "homepage": "https://extensions.cpim.windows.net",
        "identifierUris": ["https://extensions.cpim.windows.net"],
        .
        .
        .
    }
]
}
Run Code Online (Sandbox Code Playgroud)

appId 是您想要的值extension_{appId}_org