gpt4 book ai didi

angularjs - ASP.NET WebApi 安全 : Confusions with HMAC, OAuth、IdentityServer、Auth0

转载 作者:行者123 更新时间:2023-12-01 06:06:46 24 4
gpt4 key购买 nike

我试图构建一个使用 的应用程序webapi 2
Angular js 1 在前端。我一直在研究
安全方面,尤其是 基于 token 的安全性 .

我可以找到很多东西,而且实现起来真的很令人困惑:
OAuth、IdentityServer、HMAC 以及 Auth0。

我检查了 HMAC 并通过控制台应用程序使用了 webapi。
但是,我一直无法找到使用 webapi 的项目
前端基于 JS 的框架(如 Angular)。通常有包含大量代码的控制台应用程序。我想知道我应该如何使用 Angular js 来做到这一点?

我检查了 IdentityServer,发现它的学习曲线对于像我这样的新手来说有点令人沮丧。我有现有的数据库以及现有的用户和 Angular 色表。我不想使用 Identity 提供的默认表,而是使用我自己的并编写自己的身份验证逻辑。但我也无法找到这些资源。

现在我可以看到一个 Auth0。现在在潜水之前我想做
确定它是否是可取的身份验证和授权框架
对于 webapi。

因为我被要求在项目中实现基于 token 的身份验证。
我很难找出正确的方法和最简单的方法。我浪费了一个星期,仍然困惑我应该实现什么。因此,如果您有任何以优雅方式执行 webapi 安全性的资源,请帮助我。

最佳答案

首先,我不建议使用 HMAC 来保护您的 API。如果您的私钥被泄露。这意味着入侵者可以轻松访问您的服务!

IdentityServer4 和 Auth0 都用作身份验证和授权框架(Oauth2 和 OpenID 连接框架)。您还可以使用 SMAL、WS-federation 等。

如果你接近 Identityserver4,你需要自己维护服务器。它还涉及您需要对 Oauth2.0 和 OpenID 连接协议(protocol)有中级知识。如果您正在考虑生产应用程序,这意味着您还需要托管 identityserver4。

转向 auth0,他们提供开箱即用的整个身份验证和授权,包括社交 IDP。您只需要浏览他们的仪表板来创建应用程序和资源等。如果您没有很多要求,您可以使用慷慨的免费套餐。

关于安全性,Auth0 和 Identityserver4 都是保护您的资源 (API) 和应用程序的绝佳而优雅的方式。

以下架构应该适用于 Identityserver4 和 Auth0:

  • 您的前端应用程序会将用户重定向到 /授权 对用户进行身份验证的端点(执行隐式授予流程)。

  • GET /authorize?
    client_id=[Client id]&
    scope=[Scopes]&
    response_type=[Response types]&
    audience=[API Identifier]&
    redirect_uri=[Redirect URI]&
    state=abc&
    nonce=xyz

    http://docs.identityserver.io/en/latest/endpoints/authorize.html

    https://auth0.com/docs/api-auth/tutorials/implicit-grant

    由于身份验证成功,您的应用程序会收到 idToken 和访问 token 。
  • 从前端应用程序向 Web API 端点发出 HTTP 请求时,使用访问 token 作为授权 header 。
  • 在您的 API 服务器中,验证 token 并返回资源。您可以使用 ASPNET CORE 身份验证中间件来验证 token 。

  • http://docs.identityserver.io/en/latest/topics/apis.html

    https://auth0.com/docs/api-auth

    关于angularjs - ASP.NET WebApi 安全 : Confusions with HMAC, OAuth、IdentityServer、Auth0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37804770/

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