gpt4 book ai didi

api - 如何使用 OWIN Oauth 从 OAuth Client Credentials 开始保护 Web Api?

转载 作者:行者123 更新时间:2023-12-04 12:41:10 25 4
gpt4 key购买 nike

我是 OAuth 2.0 的新手。

我已经仔细阅读了 OAuth 2.0 doc我看到有四种获取授权的方法。

Types of obtaining authorization:


1.Implicit Grant
2.Resource Owner Password Credentials Grant
3.Client Credentials Grant
4.Authorization Code Grant

就我而言,我有客户端应用程序、资源所有者、资源服务器和授权服务器。

资源服务器是一个网站,其中 资源所有者 使用他/她的凭据注册。

客户端应用 是注册到资源服务器并获取客户端应用程序凭据以供将来访问它的第三方网站。

授权服务器检查来自客户端应用程序的客户端凭据并向客户端应用程序授予访问 token 。

让我们考虑一下, 资源服务器为“www.serversite.com”,授权服务器为“www.authserver.com”,客户端应用程序为“www.clientapp.com” .

Flow:



第一步:还假设 www.serversite.com 作为支付网关站点,客户端必须将“www.serversite.com”集成到“www.clientapp.com”中以创建、执行和退款。

第 2 步:因此,客户端“www.clientapp.com”在服务器“www.serversite.com”中创建了一个应用程序并获取 API 凭据。

第 3 步:使用这些 API 凭据,客户端“www.clientapp.com”向身份验证服务器“www.authserver.com”发出访问 token 请求。

第 4 步:如果来自客户端应用程序的 API 凭据有效,则身份验证服务器会授予访问 token 。

第 5 步:使用此访问 token ,客户端应用程序请求资源服务器进行进一步的操作,例如创建付款和执行付款。

My questions:



我正在使用 ASP.NET Web API for authorization server并使用 OWIN.OAuth用于生成访问 token 、刷新 token 、授权以及授权客户端应用程序所需的所有内容。

但是,在此链接( OWIN OAuth 2.0 Authorization Server )中,我发现 Web api 使用 "Resource Owner Password Credentials Grant" 授权客户端应用程序并且为在 Web api 中实现 Owin.OAuth 提供的示例很棒,但我有很多困惑在我脑海中徘徊。
  • 哪种获取授权方式适合我的流程?
    ( 客户端凭据流或资源所有者密码凭据流 )
  • 如何使用 ASP.NET Web 实现客户端凭据授予类型
    API(OWIN OAuth)?
  • 还提供一些可能对我有帮助的示例或链接吗?

  • 提前致谢。

    最佳答案

    在 asp.net 网站上有一个如何入门的示例,具体如下:

    http://www.asp.net/aspnet/overview/owin-and-katana/owin-oauth-20-authorization-server

    我引用:

    private Task GrantClientCredentails(OAuthGrantClientCredentialsContext context)
    {
    var identity = new ClaimsIdentity(new GenericIdentity(
    context.ClientId, OAuthDefaults.AuthenticationType),
    context.Scope.Select(x => new Claim("urn:oauth:scope", x))
    );

    context.Validated(identity);

    return Task.FromResult(0);
    }

    显然,在继续将上下文设置为已验证之前,您需要继续验证实际的客户端 ID/ secret 可能存在于某个地方的本地数据库中。

    在决定使用哪个流方面,您需要问自己,如果应用程序代表实际用户请求访问您的 API,那么您需要使用 Resource Owner,但是如果应用程序本身需要访问,那么 Client Credentials 是要走的路。

    不过一般来说,大多数实现都使用授权代码流,因此如果您可以形成安全立场,请将用户重定向到您托管的页面以获取其凭据,而不是通过资源所有者流通过网络发送它们。

    关于api - 如何使用 OWIN Oauth 从 OAuth Client Credentials 开始保护 Web Api?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23732036/

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