首页 文章

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

提问于
浏览
0

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

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

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

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

Edit: 在详细信息中,API用于管理IdentityServer . 客户,用户,资源的CRUD操作......

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

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

1 回答

  • 1

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

    您需要设置 ApiResourceClient ,在其中将 ApiResource 添加为Identity Server配置中的 AllowedScope .

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

    详情如下:http://docs.identityserver.io/en/release/topics/apis.html

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

相关问题