根据openid规范:隐式授权适用于javascript和移动应用程序,与授权代码授权相比安全性较低。换一种说法;据我所知,不推荐基于服务器的应用程序(如aspnet mvc)。
隐式流主要由在浏览器中实现的客户端使用 使用脚本语言
但是,我已经看到一些使用mvc应用程序的隐式授权的例子(例如:https://github.com/IdentityServer/IdentityServer3.Samples/tree/master/source/MVC%20Authentication/EmbeddedMvc)。所以我很困惑。
使用mvc应用程序的隐式授权是否正确(安全),尤其是sso目的?
如果没有;是否有一个用于mvc客户端应用程序的owin中间件来处理授权代码流?
答案 0 :(得分:1)
这取决于。如果你所做的只是身份验证,那么隐含就可以了。如果您还获得访问令牌,则隐式向浏览器和用户公开。因此,如果您计划在JS中使用该访问令牌,那么不用担心 - 该API已经设计为可以直接从浏览器访问。但是,如果您希望无法从浏览器访问您的API,那么混合流将阻止访问令牌对浏览器,JS和用户可见。