How to enrich azure b2c token with custom claims using api connectors and asp net core web api(如何使用API连接器和asp net core web API使用自定义声明来丰富Azure B2C令牌)
问题描述
我有一个用户流b2c_1_singupsingin1 我添加了一个API连接器,将其嵌入到此流和API调用的端点URL中。 二手文章: https://docs.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不包含自定义属性。里面我看到body.ValueKind = Undefined
。
告诉我我做错了什么?
推荐答案
您的代码没有问题。只需在postalCode和UserID前面添加";Expansion_";。
[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中,我有一个名为&角色&的自定义属性。
但在调试模式下,我看到对于所有自定义属性,扩展_被设置为前缀...
因此,通过将此内容添加到响应属性,它似乎起作用了。
这篇关于如何使用API连接器和asp net core web API使用自定义声明来丰富Azure B2C令牌的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:如何使用API连接器和asp net core web API使用自定义声明来丰富Azure B2C令牌
- C#MongoDB使用Builders查找派生对象 2022-09-04
- C# 中多线程网络服务器的模式 2022-01-01
- 带有服务/守护程序应用程序的 Microsoft Graph CSharp SDK 和 OneDrive for Business - 配额方面返回 null 2022-01-01
- MoreLinq maxBy vs LINQ max + where 2022-01-01
- 输入按键事件处理程序 2022-01-01
- 良好实践:如何重用 .csproj 和 .sln 文件来为 CI 创建 2022-01-01
- Web Api 中的 Swagger .netcore 3.1,使用 swagger UI 设置日期时间格式 2022-01-01
- WebMatrix WebSecurity PasswordSalt 2022-01-01
- 如何用自己压缩一个 IEnumerable 2022-01-01
- 在哪里可以找到使用中的C#/XML文档注释的好例子? 2022-01-01