如何通过编程方式在Entra ID中注册设备?
在Entra ID中编程注册设备的步骤与权限说明
所需权限
根据注册场景不同,需要的权限和配置略有区别:
1. 代表用户注册(交互式场景)
- 需为应用添加**
Device.ReadWrite.All委托权限**,并由用户或管理员完成权限同意 - 操作的用户需具备租户内的设备注册权限(默认普通用户允许注册,可在Entra ID设备设置中调整)
2. 后台服务注册(无用户上下文)
- 需为应用添加**
Device.ReadWrite.All应用权限**,必须由管理员完成权限同意 - 需在Entra ID的「设备设置」中开启「允许应用注册设备」,并配置允许的最大设备数量
具体编程步骤(基于Microsoft Graph API)
场景1:代表用户注册设备
- 获取用户访问令牌:通过OAuth2授权码流程或用户名密码流程,获取包含
Device.ReadWrite.All范围的访问令牌 - 调用设备注册API:发送POST请求至
https://graph.microsoft.com/v1.0/devices,请求体示例如下:
{ "accountEnabled": true, "displayName": "内部应用测试设备", "operatingSystem": "Windows", "operatingSystemVersion": "10.0.19045", "deviceId": "3fa85f64-5717-4562-b3fc-2c963f66afa6" // 可选,不填则自动生成全局唯一ID }
- 处理响应:成功后会返回注册完成的设备对象,包含设备ID、对象ID等关键信息,可用于后续设备管理操作
场景2:后台服务注册设备
- 获取应用访问令牌:使用客户端凭证流程(Client Credentials Flow),通过应用的客户端ID、客户端密钥和租户ID获取令牌
- 调用设备注册API:同样发送POST请求至
https://graph.microsoft.com/v1.0/devices,请求体可额外指定设备所有者,示例:
{ "accountEnabled": true, "displayName": "后台自动注册设备", "operatingSystem": "Ubuntu", "operatingSystemVersion": "22.04 LTS", "deviceOwners": ["john.doe@contoso.com"] // 可选,指定设备所属用户 }
- 验证结果:登录Entra ID控制台,在「设备」列表中可找到刚注册的设备,状态为「已注册」
关键注意事项
- 自定义
deviceId时需确保全局唯一,建议使用GUID格式 - 租户默认限制每个用户最多注册50台设备,如需调整可在Entra ID设备设置中修改
- 注册后的设备仅为「已注册」状态,若需加入域或启用混合Azure AD加入,需额外调用对应API或配置
内容的提问来源于stack exchange,提问作者service1 user
相关产品推荐
相关产品推荐

