从ADB2C中的自定义策略返回简单字符串声明



我阅读了这篇文章,它解释了如何使用Active Directory B2C实现自定义策略。一切都很好,我唯一担心的是自定义声明像序列化对象一样返回。让我稍微解释一下。我成功创建了返回自定义声明的Azure函数。编码后的JWT如下所示(请关注">userPermissions"值(:

{
"exp": 1594560277,
"nbf": 1594556677,
"ver": "1.0",
"auth_time": 1594556677,
"userPermissions": "{rn "permissions":"test1"rn}" <============= HERE
}

正如你所看到的userPermissions"索赔是";序列化JSON";。我想要一个JWT,如下所示:

{
"exp": 1594560277,
"nbf": 1594556677,
"ver": "1.0",
"auth_time": 1594556677,
"userPermissions": "test1" <============ HERE
}

正如你所看到的;test1";是一个简单的字符串。你可能会想:加油,布里安恩诺!这很简单,而不是返回一个";序列化JSON";你的Azure函数应该返回一个";字符串";。好吧,如果我试图返回一个(格式良好的(字符串,我会收到这个错误:

ServerError:AADB2C90261:在步骤"4"中指定的声明交换"GetPermissions"返回了无法解析的HTTP错误响应。

有办法让它发挥作用吗?

using Microsoft.AspNetCore.Mvc;
[HttpGet]
public async Task<JsonResult> Groups(string objectId)
{ 
string userPermissions = "test1";

//!!!!!This is the trick if I sent plain json I got the error

JsonResult o = new JsonResult(
new
{
userPermissions;
});
return o;
}  

最新更新