【发布时间】:2018-09-21 17:28:14
【问题描述】:
https://identityserver4.readthedocs.io/en/release/intro/support.html
我目前在我的 Web api 中使用 JwtSecurityToken 自己发布令牌,并使用标准 ASP.NET Core 中间件调用 AddJwtBearer 来验证令牌。它工作正常。
与上述方法相比,使用 OpenID Connect(通过 IdentityServer4)会给我带来什么优势?如何回答自己的问题“我需要 OpenID Connect 吗?”
根据我对 OpenID Connect 的基本了解,它用于允许第三方访问您的 API。但我为自己而不是为第三方制作 API,我不知道为什么我应该偏爱 IdentityServer/OpenIddict 而不是我的简单方法。
我读到如果我想要单点登录,我应该使用它,但是 JWT 本身并不绑定到任何特定域,我可以只使用纯 JWT 的单点登录(它们是自包含的)
我知道它实现了某种发行令牌的标准。 (协议)。如果我希望向第三方公开一些 API,那可能会很好。但是对于内部 API?值得用吗?
这是我当前的身份验证流程(来自https://jonhilton.net/2017/10/11/secure-your-asp.net-core-2.0-api-part-1---issuing-a-jwt/)
我真正想要实施以保护我的 Web API:
- 登录
- 注销(使令牌无效?)
- 没有同意屏幕(只想为我自己提供 API),身份验证发生在我的本机桌面、移动、Web 应用程序的后台(无重定向)
- 记住我功能(刷新令牌?)
谁能帮我清除一下 OIDC/OAuth2 的模糊画面?即给我一些我自己的方式的缺点(实现我自己的流程)和使用 OIDC 代替我自己的流程的优势。
它将使我以后免于做什么(例如在客户端),什么不会。尤其是,使用 OIDC 等标准流程开始每个项目是否合适?将来它会以某种方式使我受益吗?
【问题讨论】:
-
你为什么首先使用令牌?存在 cookie 问题的移动应用程序,多个 api 端点查看令牌以进行权限检查而不是数据库(用于性能),还有什么?
-
是的,性能,原生应用,可以轻松跨域使用。我认为令牌现在更常用于 Web API。
标签: c# oauth-2.0 jwt identityserver4 openid-connect