IdentityServer身份验证在AspCore和Angular客户端的最佳实践

4

给定:

  • Asp MVC Core客户端
  • 由ASP MVC Core托管的JavaScript客户端
  • Asp Web Api

所有都使用IdentityServer进行身份验证。

问题

对于普通用户,认证是通过asp core和oidc客户端完成的。我使用asp core中的访问令牌来访问API。

现在一个JavaScript函数想要访问一个经过授权的API,并且需要访问令牌。

在JavaScript中拥有它的最佳实践是什么?我主要看到了两个选项:

1.) 在JavaScript中使用oidc客户端进行“静默”认证。(感觉是重复的工作)

2.) 将access_token存储在cookie中,JavaScript可以从中获取(可能不安全)

3.) (感觉不太好)创建一个经过授权的端点,如/me/token,返回access_token

在这种情况下,预期的方式是什么?


我有同样的问题。 我的MVC应用程序使用Angular客户端。我也想知道这方面的最佳实践是什么。目前我已经采取了选项1,但这确实是重复的工作。 - ErazerBrecht
@ErazerBrecht,我试图实现“静默”授权,但似乎需要先登录并更新令牌,因此我在MVC和客户端都进行了两次登录。您能指导我如何实现选项1吗? - Mike Anderson
1个回答

0

你可以在MVC视图上呈现一个脚本标签,该标签配置了你的AJAX头文件,以便你可以添加授权头文件和MVC中的access_token。

令牌是安全的,因为它们是签名的,所以你可以在不知道签名密钥的情况下更改它们,并且有时间限制。此外,在使用令牌之前需要进行验证。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接