gpt4 book ai didi

asp.net-web-api - 除了 OAuth OWIN/Web Api 之外的 API key

转载 作者:行者123 更新时间:2023-12-02 00:04:48 24 4
gpt4 key购买 nike

我有一个有趣的场景,希望获得一些指导。

我目前已经使用带有 Web API 和 ASP.NET Identity 的标准 OWIN 功能实现了 OAuth。还成功实现了客户端凭据功能,允许客户端(如浏览器和 iPhone)执行匿名操作模式的 API 访问,直到发生 RO 登录。

我们现在有一个场景,我们想要构建一个类似于 Stripe Checkout (https://stripe.com/docs/checkout) 的 javascript (JSONP) 小部件。正如您将看到的,通过提供一个简单的数据键属性作为脚本标记的一部分,可以很容易地嵌入这个小部件。我的假设是,这是在后端创建的,作为一个简单的 API key ,但除了可以从中调用它的注册域列表之外。将此 key 传递给 API 时,API 会根据发出请求的域对其进行验证,以确保 API 可以访问授予该 key 的必要资源。

我的问题是:

  1. 除了 OWIN 管道中的 OAuth Bearer token 之外,我如何实现 API key ?我看到的所有文档通常都建议编写一个单独的委托(delegate)处理程序来查找 key 等。但是我的 OWIN 管道不会走那么远,因为对操作本身的调用未获得授权吗?

  2. 我们还明确删除了以下代码行中除 OAuth 之外的任何其他身份验证:

    config.SuppressDefaultHostAuthentication();
    config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));
  3. 对于 javascript 模式,是否有一种更简单的方法来验证仅使用客户端 ID(没有密码)的客户端,因为在 js 环境中几乎不可能存储密码?

  4. 我是否遗漏了一些明显可以简化此过程的事情?

我想我们已经了解了创建 JSONP 小部件的所有内容,但这部分让我有些困惑。

如有任何帮助,我们将不胜感激!

最佳答案

由于 Owin 是一个管道,所有身份验证中间件都会在每个请求上执行。在您的示例中,请求可能会在 header 中带有 API key :第一个身份验证中间件可能是您的 oauth/bearer 身份验证 - 如果不存在相关 header ,则该中间件不会将身份附加到请求,并且请求沿着管道继续。下一个中间件可能是一些 API key 身份验证中间件(您可以在此处找到实现:https://github.com/jamesharling/Microsoft.Owin.Security.ApiKey),它将检测您的 API key header 并将相关身份附加到请求中。

关于asp.net-web-api - 除了 OAuth OWIN/Web Api 之外的 API key ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29898076/

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