Identityserver4 如何验证放置在ASPNETCORE中的Angular 4应用程序

Identityserver4 如何验证放置在ASPNETCORE中的Angular 4应用程序,identityserver4,Identityserver4,我查看了IdentityServer4的在线示例,但无法解决我遇到的问题 我有一个Angular 4应用程序放在ASP.NET Core 2应用程序的根目录下。ASP.NET核心应用程序没有控制器,仅托管Angular 4应用程序。这样做的原因是能够使用混合而非隐式授权,以便令牌不会发送回浏览器 现在,我可以将客户端配置为具有HybridAndClientCredentials的MVC应用程序。但它在角度方面会起作用吗?如何知道用户是否经过身份验证,如何调用API后端,在Angular应用程序中

我查看了IdentityServer4的在线示例,但无法解决我遇到的问题

我有一个Angular 4应用程序放在ASP.NET Core 2应用程序的根目录下。ASP.NET核心应用程序没有控制器,仅托管Angular 4应用程序。这样做的原因是能够使用混合而非隐式授权,以便令牌不会发送回浏览器


现在,我可以将客户端配置为具有HybridAndClientCredentials的MVC应用程序。但它在角度方面会起作用吗?如何知道用户是否经过身份验证,如何调用API后端,在Angular应用程序中从何处获取访问令牌,等等。我有点困惑。我试图避免使用客户端NPM与Angular上的隐式流集成,因为我希望在服务器上保留令牌

感谢您的反馈


谢谢

恐怕你的处境不太可能。根据SPA'a必须使用的流量是隐含的。还有

如果您转换为MVC,您将失去SPA的功能

实际上答案在你的问题中-
在Angular应用程序中从何处获取访问令牌
。一旦你在angular应用程序中得到它,它就已经向用户公开了。但是如果angular应用程序中没有它,您就无法进行承载身份验证呼叫

正如我所说的——不可能的情况。如果我们想在这里搜索一些积极的东西,那就是访问令牌是一个短生命令牌(或者至少建议是这样),几分钟后它就过期了


PS:在https时代,“通过电缆”传输敏感信息更安全(我不是说防弹),给用户访问令牌就像说他
嘿,你有这个权限,你的名字是
等等。他应该知道的事情。

我担心你处于不可能的境地。根据SPA'a必须使用的流量是隐含的。还有

如果您转换为MVC,您将失去SPA的功能

实际上答案在你的问题中-
在Angular应用程序中从何处获取访问令牌
。一旦你在angular应用程序中得到它,它就已经向用户公开了。但是如果angular应用程序中没有它,您就无法进行承载身份验证呼叫

正如我所说的——不可能的情况。如果我们想在这里搜索一些积极的东西,那就是访问令牌是一个短生命令牌(或者至少建议是这样),几分钟后它就过期了


PS:在https时代,“通过电缆”传输敏感信息更安全(我不是说防弹),给用户访问令牌就像说他
嘿,你有这个权限,你的名字是
等等。他应该知道的事情。

“但是从角度看,它会起作用吗?”只要你对api的所有调用都通过MVC应用程序进行,你就会这样想。“但它在角度方面会起作用吗?”只要你对api的所有调用都通过MVC应用程序进行,你就会这样想。SPA的“正确”方法基本上就是oidc客户机js lib实现的方法。隐式流,使用access_令牌与后端无状态API对话,受益于自动令牌更新和会话监视功能。将访问令牌公开给客户端实际上并不比公开具有相同“权限”的cookie风险更大,而且您也不必担心CSRF。SPA的“正确”方法基本上就是oidc客户机js lib实现的方法。隐式流,使用access_令牌与后端无状态API对话,受益于自动令牌更新和会话监视功能。将访问令牌公开给客户端实际上并不比公开具有相同“权限”的cookie风险更大,而且您也不必担心CSRF。