如何使用Identity Server 4保护Asp.net Core 2.1和Vue.js单页应用程序

时间:2019-03-17 18:51:28

标签: javascript vue.js identityserver4 asp.net-core-2.1

实际上,我与架构师有点困惑,因为我有2个独立的应用程序和1个Identity Server4应用程序,这是AspNet核心2.1 API解决方案之一,它在不同的域和服务器上运行,并且与其他2个相同。 现在我有以下几点:

  1. 已将我的客户端应用程序(即Vue.js SPA)添加为Identity Server4中具有隐式模式的客户端,因为它是Js客户端
  2. 我是否需要将API应用程序添加为IDP服务器中的客户端。
    1. 如果是,则如何使用Axios从VUE.js调用任何API,就像从Vue.js应用程序登录时一样,它将获得此客户端的令牌,并将用于显示隐藏按钮或我的网页部分。
    2. 对于是否应该使用我从vue.js客户端获得的Claims来验证API感到有些困惑。
    3. 如果我在Identity Server 4中注册了客户端的API,如何从vue.js客户端应用程序调用api。

1 个答案:

答案 0 :(得分:0)

  1. 您应该将API作为ApiResource添加而不是作为客户端添加,然后在Startup中注册它。您可以在此处https://github.com/IdentityServer/IdentityServer4.Samples/tree/master/Quickstarts/6_JavaScriptClient中检查所有配置的JS应用程序快速入门。

  2. 在javascript客户端中,您需要调用Identity Server并进行身份验证。有一个库可以为您执行此操作:https://github.com/IdentityModel/oidc-client-js。快速入门中也使用了它,因此您可以看到它是如何完成的。

  3. 在每次调用API时,必须使用从Identity Server获得的访问令牌将授权标头设置为“ Bearer”。同样不要忘记在API中设置Jwt Bearer Authentication。

在我之前提到的快速入门中,所有内容都有示例代码。