如果我在同一个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,或者?
答案 0 :(得分:1)
听起来您的API和Identity Server是两个独立的问题,应该作为两个单独的应用程序处理。这使得维护起来更容易。
您需要设置ApiResource
和Client
,并在{1}}中将ApiResource
添加到Identity Server配置中。
然后,在您的API应用中,您必须添加添加身份验证中间件AllowedScope
。
详细说明如下: http://docs.identityserver.io/en/latest/topics/apis.html
我可以看到你提到UseIdentityServerAuthentication
。此属性不用于防止未经授权的用户,而是用于确保从合法表单发布表单数据。