【问题标题】:Identityserver4 and Api Resource in same Asp.net Application同一 Asp.net 应用程序中的 Identityserver4 和 Api 资源
【发布时间】:2017-07-15 14:39:38
【问题描述】:

如果我将我的 Identityserver4 和 Api 托管在同一个 Asp.net 应用程序中。 API 控制器的身份验证将使用什么? 来自 Identityserver 的 Cookie 还是我在 SPA 应用程序中从 oidc-client 获得的令牌?

我的测试我可以访问 API,如果我没有在 angular http reqeuest 中发送令牌,只要我有 Cookie...

但这是正确且省钱的方法吗??? Identityserver 的 MVC 控制器受 ValidateAntiforgeryKey 保护,但不受 API 控制器保护。

将两者托管在同一个应用程序中有意义吗???

编辑: 在详细信息中,API 用于管理 IdentityServer。 客户、用户、资源等的 CRUD 操作...

例如: IdentityServer 可通过http://localhost:5000 访问 我想构建一个 Angular2 SPA 管理 UI,可在 http://localhost:5000/admin

获得

提到 ValidateAntiforgeryKey 的原因是,如果我只对 CRUD API 使用 Cookie 身份验证,我也应该使用 ValidateAntiforgerKey 保护这些 API,或者?

【问题讨论】:

    标签: asp.net-core identityserver4


    【解决方案1】:

    听起来您的 API 和 Identity Server 是两个独立的问题,应该作为两个独立的应用处理。这使它更容易维护。

    您需要设置一个ApiResource 和一个Client,在您的身份服务器配置中将ApiResource 添加为AllowedScope

    然后在您的 API 应用中,您必须添加添加身份验证中间件UseIdentityServerAuthentication

    这里有详细说明: http://docs.identityserver.io/en/latest/topics/apis.html

    我可以看到你提到了ValidateAntiforgeryKey。此属性不用于防止未经授权的用户,而是用于确保表单数据是从合法表单发布的。

    【讨论】:

      猜你喜欢
      • 2016-12-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-01-30
      • 2018-06-14
      • 2019-12-13
      • 2021-02-15
      • 1970-01-01
      相关资源
      最近更新 更多