×

使用Azure KeyVault和Azure Sphere安全自动登录

消耗积分:0 | 格式:zip | 大小:0.12 MB | 2022-12-21

李晶

分享资料个

描述

我们必须记住的密码数量每天都在增加。是否曾经想要一些设备可以为您记住所有这些密码,甚至无需触摸键盘就可以输入密码?

该项目针对此问题提出了一种可能的解决方案,使用Azure 云生态系统进行密码保管和管理,并使用Azure Sphere IoT 设备将密码安全传递到您的指尖。

pYYBAGOSe2WAS9ewAADAamD_AFI297.png
Azure 生态系统中的项目块
 

此图显示了该项目的基本构建块及其互连。用户名和密码安全地存储在Azure KeyVault中。使用在Azure App Service上运行的 Web 应用程序访问和管理这些项目根据用户的请求,选定的登录详细信息通过Azure IoT 中心发送Azure Sphere IoT 设备。从那里可以立即或按下按钮将登录数据发送到 USB 键盘模拟器,后者将在目标设备上“键入”它们。

通过这种方式,我们可以在从密码存储到将其交付到目标系统的整个链条上使用高级 Azure 云安全功能。我们可以向任何支持 USB 键盘输入的设备输入登录数据。

项目设置

该项目由几个独立的部分和应用程序组成,必须安装和精确配置它们才能协同工作。我们首先设置 Azure 服务。

创建资源组

该资源组将用于将所有与 Azure 相关的项目部分整齐地放在一个地方。

登录到 Azure 门户并根据以下幻灯片设置新的资源组:

 
 
 
poYBAGOSe2uAGUULAABWpCEAR5Y402.png
 
1 / 2创建资源组
 

创建 KeyVault

KeyVault 将安全加密您的所有秘密和密码。

请参阅下面的幻灯片,了解如何创建 KeyVault。在第 3 步中,选择离您最近的服务区域,同时确保将定价层设置为标准。记下KeyVault 名称,因为您稍后将需要它。

 
 
 
pYYBAGOSe26AFzinAABACj9PMC4523.png
 
1 / 4打开所有服务
 

创建物联网中心

IoT 中心控制您的物联网设备,并且在此项目中将启用与您的 Azure Sphere 套件的连接。

下面的幻灯片显示了创建 Azure IoT 中心服务所需的所有步骤。在第 3 步选择在地理上离您最近的服务区域。在第 4 步确保定价层设置为免费,如果这是您的第一个 IoT 中心并且您只想测试这个项目。稍后还需要IoT 中心名称。

 
 
 
pYYBAGOSe26AFzinAABACj9PMC4523.png
 
1 / 5打开所有服务
 

现在您的资源组将如下所示:

pYYBAGOSe3WACBn6AADF6sDbGD8229.png
具有 KeyVault 和 IoT 中心的资源组
 

创建物联网设备

如下面的幻灯片所示创建物联网设备。记下IoT 设备名称(设备 ID),因为您稍后会需要它。

 
 
 
pYYBAGOSe3mADRwQAAEZHSCwBVk867.png
 
1 / 2创建物联网设备
 

获取连接字符串

对于这个项目,我们将需要IoT Hub 服务 Connection stringIoT device Connection string 您将在下面显示的位置找到这些字符串,将它们复制到某个文本文件中,因为您稍后会需要它们。

 
 
 
poYBAGOSe3-AZ372AACEJZZM08w456.png
 
1 / 3打开物联网设备
 

部署网络应用

将项目存储库克隆本地目录。注意:此项目使用 Git 子模块,使用--recurse-submodules进行克隆

git clone --recurse-submodules https://github.com/jgroman/azsphere_pwd_man.git

确保你的 Visual Studio 2019 安装了ASP.NETAzure 开发工作负载。打开 SpherePasswordManager 解决方案,打开 appsettings.json 文件并将您的 KeyVault 名称作为 KeyVaultName 值。

 
 
 
pYYBAGOSe4KAMYaXAABVpZJswaI134.png
 
1 / 2所需的 Visual Studio 2019 工作负载(Visual Studio 安装程序)
 

现在您可以发布 web 应用程序,如下面的幻灯片所示。在第 3 步创建新的应用服务时,确保选择了正确的 Azure 帐户。注意:如果第 6 步 - webapp 发布 - 失败,您可能需要安装 Microsoft Web Deploy工具。

 
 
 
poYBAGOSe4SAG3L8AABkwB8P6ys668.png
 
1 / 7启动 WebApp 发布过程
 

启用 WebApp 对 KeyVault 的访问

在您可以使用新发布的 WebApp 之前,必须授予它 KeyVault 访问权限。

 
 
 
pYYBAGOSe4iALhzJAAFBKCv6IPY213.png
 
1 / 4为 WebApp 启用系统托管标识
 

配置网络应用

您现在将设置 Web App 配置并输入IoT Device nameIoT Hub Service Connection string 如果您在打开 WebApp 配置页面时遇到错误,您可能忘记了在上一步中编辑应用程序设置或授予 WebApp 权限。

 
 
 
pYYBAGOSe42AXVlSAACxvLzwNNQ030.png
 
1 / 3在浏览器中打开 WebApp
 

安全的 WebApp 访问

现在 WebApp 必须受到保护,以便只有您可以使用它。

 
 
 
poYBAGOSe5GAFOH4AAGCymDPsAA618.png
 
1 / 3打开 WebApp 身份验证/授权
 

安装 Pro 微应用

Pro Micro 板在此项目中用作简单的 I2C 到 USB 键盘桥。从 I2C 接收到的任何字符都会作为模拟按键发送到 USB。

如果您不熟悉 ATmega32U4 Pro Micro 开发板,可以在此处阅读教程使用 USB 线将 Pro Micro 板连接到您的计算机,在 Arduino IDE 中打开i2c_usb_keyboard.ino草图并将其闪存到 Pro Micro。

pYYBAGOSe5uAR83yAADqy2ZX2WY931.png
Pro Micro上传的Arduino IDE设置
 

现在您可以根据本页底部的原理图连接 Azure Sphere Starter Kit 和 Pro Micro 开发板。

pYYBAGOSe7KARG6dAALVRTZ9rcA563.jpg
使用电平转换器互连 Azure Sphere 和 5V Pro Micro。
 

安装Azure Sphere 应用程序

确保您的计算机上安装了Azure Sphere SDK ,启动 Visual Studio 2019 并打开azsphere_pwd_man解决方案。IoT 设备连接字符串作为 MY_CONNECTION_STRING 值放入connection_strings.h中IoT 中心名称放入app_manifest.json 中的 AllowedConnections。构建应用程序并将其上传到 Azure Sphere 工具包。

 
 
 
poYBAGOSe7SAIv-hAACJ6PKPQFM154.png
 
1 / 4更新物联网设备连接字符串
 

现在应用程序正在运行,您应该会在显示屏上看到就绪消息。该项目确实可以使用了。

poYBAGOSe7iAPKxCAAFlWP3ooMY958.jpg
Azure Sphere 正在侦听来自 IoT 中心的直接方法调用
 

项目运作

在浏览器中打开 WebApp。使用新项目菜单选项添加新项目:

pYYBAGOSe72AalNrAAB1-FR4Tuw415.png
创建新项目
 

只有项目名称和密码是强制性的,添加用户名是可选的。您还可以在用户名和/或密码后插入 Enter。可选的用户名和密码可以在一个块中输入,由 TAB 字符分隔 - 这对于 Web 登录表单很有用。用户名和密码可以预加载到 Azure Sphere,然后单击按钮输入。或者,它们也可以在单击 WebApp 中的项目后立即输入 - 这在通过手机控制 WebApp 时非常有用,因为您只需将光标定位到登录表单并单击 WebApp UI 中的所需项目。

poYBAGOiSiGABaJEAAgWKZ2S_x8546.jpg
Azure Sphere 中预加载的项目
 

故障排除

几分钟后,Azure Sphere 似乎忘记了预加载的项目

这实际上是一个内置的安全功能。您可以通过在main.c中编辑PERIOD_TO_FORGET_SEC来设置此延迟长度。

系统运行过程中的问题

WebApp 中显示常见的操作错误。例如,如果 Azure Sphere 断开连接,您将看到超时错误:

pYYBAGOiSiSAQylYAABgFj2NOek286.png
Azure Sphere 断开连接
 

 


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !