gpt4 book ai didi

c# - 如何使用 api 连接器和 asp net core web api 通过自定义声明丰富 azure b2c token

转载 作者:行者123 更新时间:2023-12-05 03:36:36 25 4
gpt4 key购买 nike

我有一个用户流程B2C_1_singupsingin1我添加了一个 api 连接器,将其嵌入到该流和 API 调用的端点 url 中。使用过的文章: https://learn.microsoft.com/en-us/azure/active-directory-b2c/add-api-connector-token-enrichment?pivots=b2c-user-flow

从文章中可以清楚地看出,API 连接器具体化为 HTTP POST 请求,发送自定义属性。

我的 Web api 有一个带有代码的端点:

[HttpPost("enrich")]
public IActionResult Enrich([FromBody] JsonElement body)
{
var responseProperties = new Dictionary<string, object> //for example
{
{ "version", "1.0.0" },
{ "action", "Continue" },
{ "postalCode", "12349" },
{ "userId", 123 }
};

return new JsonResult(responseProperties) { StatusCode = 200 };
}

当我启动自定义流程时,一切正常,我可以到达 api 中的该端点。但存在一个问题,JsonElement 主体不包含自定义属性。在里面我看到 body.ValueKind = Undefined。告诉我我做错了什么?

此外,毕竟我想添加一个自定义的“userId”声明,其中包含数据库中的一些值。以便将其包含在后续发行的token中。上面的代码是否正确?

最佳答案

你的代码没问题。只需在邮政编码和用户 ID 前面添加“extension_”即可。

    [HttpPost("log")]
public IActionResult Log([FromBody] JsonElement body)
{

var responseProperties = new Dictionary<string, object>
{
{ "version", "1.0.0" },
{ "action", "Continue" },
{ "extension_Role", "admin" },
};

return new JsonResult(responseProperties) { StatusCode = 200 };
}

在我的 Azure AD B2C 中,我有一个名为“角色”的自定义属性。

但在 Debug模式下,我看到所有自定义属性 extension_ 都设置为前缀...

因此,通过将其添加到responseProperties,它似乎可以正常工作。

enter image description here

enter image description here

关于c# - 如何使用 api 连接器和 asp net core web api 通过自定义声明丰富 azure b2c token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69562819/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com