Azure Digital Twins入门 - 创建实例以及服务认证说明
分类: Azure物联网 ◆ 标签: #Azure #Digitial Twin # ◆ 发布于: 2023-06-15 20:12:53

我们之前两节都是对Azure Digital Twins
的介绍,从本节开始通过边动手边讲解的形式来介绍Azure Digital Twins
。
我们先创建一个Azure Digital Twins
的实例,在创建这个实例之前,你需要有一个Azure
账号,如果你还没有账号,可以申请一个免费的,请参考链接:https://www.azuredeveloper.cn/article/how-to-get-free-azure-account。
有了账户之后,使用该账户通过Azure Portal
登录账户:https://portal.azure.com/。
使用Azure Portal
创建Azure Digital Twins
实例
通过Azure Portal
登录到Azure
之后,使用搜索,搜索Azure Digital Twins
, 如下图点击Create
:
选择Create
之后出现如下的界面:
需要注意的是图上所示的位置, 必须勾选上,否则的话,您登录的用户虽然创建了实例,但是你可能没有管理的权限,后期需要管理员给你重新赋予权限,当然如果你自己的账号就是管理员,那也就没什么问题。
按照图上的要求,填充好资源组,名称,选择好区域,其他的就下一步就ok了,唯一需要注意的地方是这里:
如上图所示是否需要给新创建的实例一个System Managed Identity
, 选择On
的话,Azure
会帮助你创建一个由Azure
管理的标识,后期可以通过这个标识从其他的Azure
服务向你创建的Azure Digital Twins
授权访问。
提交之后,等待Azure
平台完成创建即可,Azure Digital Twins
创建还是非常容易的。
Azure Digital Twins
服务使用认证说明
在实例创建好了之后,有一点尤其需要注意,我们在创建很多其他的服务的时候,都提供了基于SAS Key
认证的形式来访问服务,但是Azure Digital Twins
服务没有提供类似的SAS Key
, 如下图:
从菜单上可以看到,ADT
没有提供任何功能供用户认证,Azure Digital Twins
的认证方式完全是基于Azure Activity Directory
, 即AAD
。
基于AAD
的认证和授权系统均使用基于角色来进行的,即Azure RBAC(Azure role-base access control)
, 用户可以通过它向一个security principal
进行授权,这个Security Principal
可以是一个用户,一个用户组,或者是一个Application Service Principal
, 这个取决于用户自己。
另外Azure RBAC
实际上是两个步骤,一个是认证,另外一个是授权,同时它也是基于Qauth 2.0
协议来授权的。因此在使用Security Principal
进行认证的时候第一步是返回一个QAuth 2.0
的Token
, 然后每次请求都会带上这个Token
。
另外如果使用工具或者SDK
来访问该服务,是需要借助Azure
的认证包, 例如基于.Net
的SDK
需要包:Azure.Identity
, 这个包。我们下一节来演示如何在各种Security Principal
的情况下使用该包来认证和使用。
基于Azure RBAC
需要赋予的角色说明
Azure Digital Twins
向用户提供了两类API
:
- 一类是管理
API
, 例如创建实例,删除实例等等,是关于服务本身的管理的,称为Control panel API
, 这类API的授权实际上是基于Azure ARM
的授权。 - 另外一类是用于操作服务实例数据的
API
, 例如上传模型,创建twins
, 关系等等,这类API称为为Data Plane API
, 关于这类API
提供了内置的角色:
内置角色名 | 角色描述 | ID |
---|---|---|
Azure Digital Twins Data Owner | Gives full access over Azure Digital Twins resources | cd981a7-7f74-457b-83e1-cceb9e632ffe |
Azure Digital Twins Data Reader | Gives read-only access to Azure Digital Twins resources | d57506d4-4c8d-48b1-8587-93c323f6a5a3 |
注意
这个表格描述的是Azure Global
的情况,针对于其他的云,虽然角色的名称和描述是一样的,但是ID
可能是会不一样的。
到目前为止,我们创建了一个Azure Digital Twins
的实例了,我们下一节来使用它。