【应用安全】OAuth 2.0设备流程,没有麻烦的身份验证 - 正如在电视上看到的那样

了解OAuth 2.0设备流如何为有限输入设备提供流畅的身份验证和授权。

Image of person using TV remote control to enter credentials

厌倦了与遥控器和屏幕电视键盘摔跤,以在智能电视上输入凭据?你已经处理了太多次,你可以打赌你的客户必须这样做。如果您可以通过手机上的几个水龙头帮助他们登录,该怎么办?

使用电视遥控器的人的图象输入凭据

嗨,来自Auth0的Dan为您带来OAuth 2.0设备流程:一种快速,简便,安全的方式来登录智能电视和其他输入受限设备上的应用程序。没有键盘?没有浏览器?没问题!

普通登录可能很乏味且错误很重。 OAuth 2.0设备流程轻巧,可在几秒钟内对您进行身份验证,不仅适用于电视,还适用于游戏机,CLI,打印机等等!

Auth0为开发人员提供了完全兼容的OAuth 2.0设备流程实现,可以轻松应对这一用户体验难题。让我们更多地了解哪些输入受限设备,此授权授权如何工作以及Auth0如何提供帮助。

什么是互联网连接,输入约束设备?


您是否有连接互联网的设备(1)没有浏览器或(2)提供不切实际的输入文本方式?

如果你回答是,那么你有一个输入受限的设备!你想到了什么类型的设备?我在想...

  1. 多功能一体机
  2. 健身追踪器
  3. 流媒体设备
  4. 牙刷
  5. 游戏主机
  6. 冰箱
  7. 泰迪熊
  8. 车载信息娱乐系统
  9. 智能电视
  10. 真的,任何在它面前都有“聪明”这个词的东西

Smart TVs, printers, gaming consoles, and other typical input-constrained devices

物联网(IoT)的狂热使很多设备上线。无论是现在还是将来,在这些设备上运行的软件都可以与您的服务API进行通信,以获取为客户提供跨设备和平台的丰富用户体验所需的数据。但是,如果设备不提供授权外部服务的便捷方式,则该用户体验可能不那么丰富或安全。

“在输入受限的设备上授权是一项挑战。但是什么是输入受限的设备呢?在这篇博文中了解更多信息!”



作为竞争企业,您不希望通过无法提供无浏览器身份验证来限制可以使用您的服务的设备。但是,如果设备提供浏览器或用户界面,您不希望客户使用电视遥控器的箭头输入凭据,以从巨大的屏幕键盘中选择按键。例如,当他们慢慢输入屏幕时,有人会记录他们的凭据。

此外,您还需要确保未在您无法控制的系统上输入用户凭据,并且可以将其存储以供将来访问,例如有时利用专有系统的智能显示器或访问API的第三方客户端。

您所需要的是一种授权第三方应用程序的方法,这些应用程序可以在各种设备上对您的API进行受控访问。 OAuth 2.0设备流程可以帮助您实现这一目标!即使在没有浏览器的设备上,您也可以利用标准委派授权协议的安全性和用户体验优势。

 

要了解如何使用设备流,最好使用视频流应用程序作为示例在游戏中看到它。

OAuth 2.0设备流程在行动中


假设您想在电视上观看AuthU TV,这是一个虚构的技术视频平台。 首先将AuthU TV应用程序下载到智能电视上。 当您第一次打开应用程序时,您将受到登录屏幕的欢迎。

为了解决问题,您将被要求访问其他设备(如智能手机或笔记本电脑)上的URL,输入一个简短的代码,然后登录到您的AuthU帐户进行身份验证。

完成此过程后,电视上的软件即可访问您的AuthU帐户,并允许您使用遥控器导航AuthU内容 - 而不是输入凭据。

Illustration of OAuth 2.0 Device Flow that connects your devices

在较高级别,此过程与YouTube重定向到accounts.google.com以处理用户登录的方式非常相似。使用OAuth 2.0设备流,您可以在集中登录页面上管理身份验证过程,使用辅助设备可以更快,更安全地输入凭据。通过将身份验证从设备移到浏览器中,您可以利用更高级的身份和安全功能,例如MFA,SSO和社交登录。

但谈话很便宜:让我们看看设备流程在行动!我们Auth0的工程师创建了一个交互式演示,可让您直接从浏览器模拟AuthU智能电视应用的授权。

首先访问Device Flow Playground。在那里,您可以使用我们的默认演示设置尝试游乐场,也可以使用Auth0帐户设置进行配置,以尝试使用自己的应用程序。

需要Auth0帐户?立即免费入门。在使用Auth0的免费试用版所提供的一切时,你会说“哇!”!

您还可以选择所需的范围。完成后,点击“开始使用”。

Image showing dashboard for how to get started with Auth0 Device Flow接下来,要从模拟AuthU TV应用程序流式传输内容,系统会提示您通过单击“授权”按钮来授权应用程序。

Auth0 Device Flow: authorization request

现在,系统会提示您通过导航到激活URL acme-demo.auth0.com/activate,使用其他设备并输入智能电视上显示的代码来授权设备。 您还可以扫描QR码,这将自动输入用户代码。 电视应用程序将等待您在辅助设备上完成此过程,这将触发可用于访问AuthU电视服务的授权响应。

Auth0 Device Flow: token request

 

访问提供的链接,输入一次性代码,然后单击“继续”。 您可以使用其他浏览器标签或智能手机移动浏览器执行此操作。

Auth0 Device Flow: device activation

 

Auth0 Device Flow: device activation code

确认网站上显示的代码与智能电视上显示的代码相符,然后单击“继续”。

 

Auth0 Device Flow: device confirmation

接下来,注册一个帐户或使用现有帐户登录。

Auth0 Device Flow: user authentication

 

 

 

网站上将显示一条消息,确认设备现已连接。

Auth0 Device Flow: device connection

回到智能电视上,AuthU应用程序已准备好开始流媒体内容。 电视应用程序有权获取有关您的其他信息以自定义UI。

Auth0 Device Flow: activation completion

 

这是对OAuth 2.0设备流程的高级技术概述。 让我们来看看如何使用Auth0作为您的身份平台促进此过程。

使用Auth0轻松实现OAuth 2.0设备流程


当您的输入受限设备需要从API获取用户数据时,会发生以下过程:

Overview of OAuth 2.0 Device Flow with API calls

  1. 如果设备应用程序尚未获得授权,则设备应用程序将调用Auth0授权服务器以检索设备代码。
  2. Auth0使用URL和用户代码进行响应。您的设备应用要求用户访问辅助设备(如笔记本电脑或智能手机)上的特定网址并提供激活码。
  3. 您的设备应用程序开始轮询您的Auth0授权服务器以获取访问令牌和刷新令牌。
  4. 用户使用您已配置的身份验证方法之一在辅助设备上使用Auth0进行身份验证。 Auth0是一个身份中心,支持使用各种协议的许多身份提供商(如OpenID Connect,SAML,WS-Federation等)。
  5. 身份验证完成后,Auth0会使用访问令牌和刷新令牌响应您的设备应用,这样您就可以刷新访问令牌,而无需再次请求用户的许可。
  6. 访问令牌可用于调用API并检索请求的数据。

 

“通过访问令牌和刷新令牌,您可以快速进行身份验证并使其成为最后一次!了解有关令牌如何在OAuth 2.0设备流中工作的更多信息。”



概括


今天,您了解了互联网连接,输入受限设备,这些设备给开发人员和客户带来的挑战,以及Auth0和OAuth 2.0如何让您通过实施设备流来应对这些挑战。

OAuth 2.0设备流程的最佳部分是它允许您将现有的身份验证解决方案扩展到智能设备平台。此授权授权仅允许您的客户对通过另一个设备运行的应用程序进行身份验证和授权。

您可能对您或您的开发团队如何通过代码实现此功能感到好奇。我们很快就会为您提供有关设备流程的详细教程。敬请关注!在此期间,请查看以下资源以获取更多信息:

  1. 介绍设备流程
  2. Auth0设备授权流程文档
  3. 使用设备授权流程调用API
  4. OAuth 2.0设备授权授权,草案15

“OAuth 2.0设备流程专为在互联网连接的设备上执行的应用程序而设计,这些设备没有浏览器或受输入限制。它使最终用户能够授权设备应用程序访问服务API。”

 

原文:https://auth0.com/blog/oauth-device-flow-no-hassle-authentication-as-seen-on-tv/

本文:

讨论:请加入知识星球或者小红圈【首席架构师圈】