簡體   English   中英

從 ADB2C 中的自定義策略返回簡單的字符串聲明

[英]Return simple string claim from custom policies in ADB2C

我關注了這篇文章,它解釋了如何使用 Active Directory B2C 實施自定義策略。 一切都很好,我唯一擔心的是自定義聲明會像序列化的 object 一樣返回。 讓我稍微解釋一下。 我成功創建了返回自定義聲明的 Azure Function。 編碼后的 JWT 如下所示(請關注“ userPermissions ”值):

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

如您所見,“ userPermissions ”聲明是“序列化 JSON”。 我想要一個 JWT,如下所示:

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

如您所見,“test1”是一個簡單的字符串。 你可能會想:來吧 BrianEnno,這很簡單。 而不是返回“序列化 JSON”,你的 Azure Function 應該返回一個“字符串”,好吧:如果我嘗試返回一個(格式正確的)字符串,我收到了這個錯誤:

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;
}  
 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM