我正在研究OAuth 2.0协议.
我遇到了为不在Web服务器上运行的桌面/移动应用程序生成承载令牌的问题.
对于Web应用程序,OAuth 2.0协议流程对我来说很清楚.假设myapp.com
想要protectedresource.com
代表用户Alice 访问,那么Alice被重定向到https://protectedresource.com/oauth?redirect_uri=https://myapp.com/oauth&[...]
所以资源管理器在获得同意后,将Alice的浏览器重定向到将收集授权代码并使用它来获取承载令牌的页面.
这工作正常且安全,因为protectedresource.com
识别myapp.com
域并仅将来自令牌的令牌令牌释放myapp.com
如果我正在运行桌面应用程序,即使支持浏览器(即在Windows窗体中嵌入HTML查看器或类似的东西)我应该在同意后重定向Alice?
谁收集授权码?控制流如何变化?
有没有人有在桌面或Android上运行的OAuth 2.0实现的示例?
该OAuth的维基列出了许多选项,您可以使用,所有这些有缺点.最简单的方法是运行可以向用户显示令牌的Web应用程序,然后用户将令牌(可能还有刷新令牌)复制到桌面应用程序中.
如果您有足够的时间,那么您可以调查使用桌面操作系统注册自定义URI,然后使用它作为redirect_uri
自动从浏览器传输回您的应用程序.这具有最佳的用户体验.
在这些情况下,恶意应用程序可以轻松伪装成您的桌面应用程序,安全性依赖于您的用户不安装恶意应用程序.
归档时间: |
|
查看次数: |
3220 次 |
最近记录: |