gpt4 book ai didi

asp.net - 使用 JWT 进行模拟

转载 作者:行者123 更新时间:2023-12-02 14:27:43 27 4
gpt4 key购买 nike

我正在尝试基于此实现JWT授权article 。我还需要让特定用户(管理员)模拟其他用户(客户端)。

我在这里看到两种可能性:

  • 使用管理 token 发出管理请求,并将模拟的 client_id 添加到每个请求中;
  • 为管理员请求一个新 token ,该 token 将在其有效负载中包含客户端的用户名和角色,因此它基本上会成为客户端 token ,但它还有两个额外的字段:“impersonated=true”和“impersonator_admin_id” =x”。

我更喜欢第二个,因为将 .net 内置授权属性与客户端角色一起使用会更容易。但我不确定这是否会带来安全漏洞,或者是否可以使用 .Net 的 OAuthAuthorizationServer 来实际实现。

最佳答案

从您的链接中,首先确定管理员是否冒充用户或代表用户行事。请注意代表!=冒充

  • 当 A 保持自己的身份并获得 B 的所有权利时,A 代表 B 行事

  • A 冒充 B,但实际上 A 就是 B

JWT RFC没有为此目的定义任何具体的权利要求。在此draft作者建议添加代表 claim obo

{"obo": {
"prn":"mailto:joe@example.com",
"ctx":["urn:adatum.com:calendar"]
}}
  • prn 标识 JWT 持有者所代表的委托(delegate)人。

  • ctx 建立允许持有者代表主体行事的权限上下文。该主张应强制限制行使委托(delegate)权利的背景

请注意,obo 声明不包含在 IANA's JSON Web Token Claims 中。 ,因此应将它们视为推荐。 OpenID 中有类似的声明 azp 但不清楚如何应用它

  • azp:授权方 - 向其颁发 ID token 的一方

回答你的问题,在第一种情况下,我认为你正在谈论代表行为,因此请包括 client_id 和安全上下文。第二种情况是冒充。

关于asp.net - 使用 JWT 进行模拟,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41747705/

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