代码之家  ›  专栏  ›  技术社区  ›  aherrick

azure b2c以编程方式更新自定义用户属性

  •  1
  • aherrick  · 技术社区  · 6 年前

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

    我又加了一句 组织 作为声明,这样当用户登录时我可以看到自定义声明。

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

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

    但我收到以下错误:

    One or more property values specified are invalid.
    

    这是我要发送的json:

    { "extension_org": "1234" }
    

    是否有其他方法需要更新此值?

    参考截图:

    enter image description here

    enter image description here

    2 回复  |  直到 6 年前
        1
  •  2
  •   tpsands    6 年前

    如果使用graph api获取b2c扩展应用程序的扩展属性,您将看到在名称中插入的应用程序id。所以,它将是 extension_{appId}_org 作为扩展名。

    若要在B2C目录中查找应用程序ID,请转到azure活动目录刀片,单击“应用程序注册”,然后查看所有应用程序。你会看到 b2c_extension_app 是的。单击它,它的应用程序ID将显示出来。

    如果您喜欢使用aad图形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"],
            .
            .
            .
        }
    ]
    }
    

    appid是您想要的值 扩展名{appid}u org

        2
  •  -1
  •   glennsl Namudon'tdie    6 年前

    试试这个,对我有用

    PATCH 
    "/users/{objectId}/extension_{objectId}_org"
    
    { "value": "1234" }
    

    不要修补整个用户,只修补属性。