繁体   English   中英

使用图形读取 Azure B2C 自定义属性 API

[英]Reading Azure B2C custom attributes with Graph API

我在门户上创建了一个名为 IsAdmin 的 Azure B2C 自定义属性,将其添加到登录/注册用户流程中,然后使用图形 API,成功创建了一个新用户,其中 IsAdmin = true。 如果我随后使用该新用户登录,我可以看到 IsAdmin 在令牌中作为声明返回。 到目前为止,一切都很好。

但是,通过 Graph API 查询时,我似乎看不到该自定义属性,也无法搜索它。

    var user = await graphClient.Users["{GUID HERE}"]
        .Request()
        .GetResponseAsync();

返回用户,但自定义属性不存在。

    var results = await graphClient.Users
        .Request()
        .Filter("extension_anotherguid_IsAdmin eq true")
        .GetAsync();

不返回任何结果。

有人有什么主意吗?

默认情况下不返回扩展名。 您需要在 Select 中指定扩展名

var user = await graphClient.Users["{GUID HERE}"]
        .Request()
        .Select("extension_anotherguid_IsAdmin")
        .GetResponseAsync();

该值应该可以通过AdditionalData获得。

var extValue = user.AdditionalData["extension_anotherguid_IsAdmin"];

资源:

可扩展性

在 B2C 租户中存储自定义属性时,会创建 Microsoft 的托管应用注册:

在此处输入图像描述

获取此应用注册的应用 id,删除 id 中的破折号,然后像下面这样使用它:

import requests

# if your app registration b2c extensions app id id is aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee :
b2c-extensions-app-id-without-dashes="aaaaaaaabbbbccccddddeeeeeeeeeeee" 
url = f"https://graph.microsoft.com/v1.0/users/?$select=extension_ {b2c-extensions-app-id-without-dashes}_IsAdmin"
        headers = {
        'Content-type': 'application/json',
        'Authorization': 'Bearer ' + msgraph_token
        }
r = requests.request("GET", url, headers=headers) 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM