gpt4 book ai didi

asp.net-core - OpenIddict 中的应用程序表有什么用

转载 作者:行者123 更新时间:2023-12-02 18:59:35 31 4
gpt4 key购买 nike

请解释一下 OpenIddict 中应用程序表的用途。我正在关注这个很棒的教程 http://capesean.co.za/blog/asp-net-5-jwt-tokens/它工作完美。我对为 OpenIddict 添加的应用程序表的功能有误解。

目前,我的前端(Angularjs)+后端(带有 ASP.NET Core 和 OpenIddict 的 Web.API)在一台服务器上运行良好。前端接收 token 并在请求中使用它。后端生成 token 并评估它们。一切都好,但应用程序表没有任何记录。

谢谢。

最佳答案

Applications 表包含 OAuth2 client applications允许使用您的身份服务器。

<小时/>

使用交互式流程(如 authorization code)时,必须添加新条目。或implicit ,因为客户端应用程序必须发送有效的 client_id:如果 client_id 丢失或与您完全信任的应用程序不对应(即应用程序存储在 Applications 表中)。

同样的规则适用于 client credentials grant ,这还需要一个有效的 client_id

<小时/>

相反,在一种情况下,发送 client_id 不是强制的:当使用 resource owner password credentials grant 时,如您提到的博客文章中所示。

specification明确指出发出 token 请求的客户端应用程序可以发送其 client_id,这意味着该参数不是必需的。

A client MAY use the "client_id" request parameter to identify itself when sending requests to the token endpoint.

当无法从 token 请求中提取client_id时,OpenIddict无法确定应用程序的身份。在这种情况下,将跳过 client_id 相关检查,并且在不使用 Applications 表的情况下处理请求。这就是您的应用程序无需填充Applications 表即可运行的原因。

<小时/>

虽然对于日志记录很有用,但发送 client_id 并不会使 grant_type=password 请求更安全,因为每个人都可以通过重复使用相同的 来模拟应用程序>client_id,除非应用程序被声明为 secret 并被分配了客户端凭据(请参阅“仅限服务器端应用程序”)。在这种情况下,恶意调用者在不知道 client_secret 的情况下无法发送有效的 token 请求。

<小时/>

在 OpenIddict 中,还有一种情况添加显式应用程序注册很有用:使用 introspection middleware 时验证访问 token (而不是 JWT 承载中间件)。

required by the specification ,调用者必须进行身份验证才能使用内省(introspection)端点:如果 OpenIddict 在 Applications 表中找不到相应的条目,则请求将被拒绝,内省(introspection)中间件将永远无法工作。

关于asp.net-core - OpenIddict 中的应用程序表有什么用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37380434/

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