同一个Asp.net应用程序中的Identityserver4和Api资源

时间:2017-02-24 16:53:42

标签: asp.net-core identityserver4

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

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

但这是正确的保存方式吗? Identityserver的MVC控制器受ValidateAntiforgeryKey保护,但不受API控制器保护。

在同一个应用程序中托管两者是否有意义

修改 在Details中,API用于管理IdentityServer。 客户,用户,资源的CRUD操作......

例如: 可以在http://localhost:5000访问IdentityServer 我想在http://localhost:5000/admin

上构建一个Angular2 SPA管理界面

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

1 个答案:

答案 0 :(得分:1)

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

您需要设置ApiResourceClient,并在{1}}中将ApiResource添加到Identity Server配置中。

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

详细说明如下: http://docs.identityserver.io/en/latest/topics/apis.html

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