通过条件访问保护设备代码授权流程


条件访问策略在 Microsoft Entra 中得到了扩展,使您能够控制组织如何使用特定的身份验证和授权协议及授权。

这是通过条件访问中的身份验证流条件完成的。在这篇文章中,我将向您展示如何通过条件访问策略实现一个条件来定位设备代码身份验证流程。

注意:此功能目前处于预览阶段,可能尚未按预期工作

设备代码流是什么?

设备代码(或设备授权)授予流程是一个使输入功能有限的设备(例如电视、打印机或其他 IOT 设备)能够登录 Microsoft Entra 并获取访问令牌的过程。

该过程分一系列步骤进行:

1. 用户将在设备上启动应用程序并发起登录。

2. 然后,设备将向目标租户或普通租户的 /oauth2/v2.0/devicecode 端点发送授权请求。

3. 然后将设备代码用户代码验证URL发送回设备。

4. 应用程序将向用户显示验证 URL用户代码,并要求他们导航至该 URL 并完成登录。

5. 当用户登录时,应用程序将不断轮询令牌端点以获取访问令牌; /oauth2/v2.0/token。登录过程完成后,授权服务器将使用访问令牌进行响应。

6. 然后,设备可以作为用户与相关的 Microsoft 服务进行交互。

为什么定位设备代码流?

一般来说,设备代码流程是针对我上面提到的IOT设备的;虽然可能需要访问 Microsoft Entra,但它们无法像完全注册到 Microsoft Intune 等端点管理解决方案的设备一样被锁定和保护。随着物联网设备攻击的不断增加,在允许这些不安全的设备获取您的环境的访问令牌并从而访问您的数据时,确保实施更严格的限制至关重要。

如果没有这些额外的控制,例如限制此流量到公司网络内的设备,用户可能不会意识到使用公司帐户登录物联网设备这一看似无害的任务的影响。

保护设备代码流

通过条件访问可以快速完成对设备代码流的严格控制。请按照以下步骤配置设备代码流条件。

1. 登录 Microsoft Entra。

2. 展开保护并选择条件访问

4. 单击策略 > 新策略

5. 我建议您通过此分配定位所有用户,并照常排除您的打破玻璃用户

6. 为您的目标资源定义所有云应用

7. 在条件选项卡上,选择身份验证流,然后将配置选项设置为并选中设备代码流 >。

此时,您还应该考虑是否计划根据位置阻止设备代码流。这将提供最好的保护;然后,您可以将此策略配置为所有受信任位置。您可以为不受信任的位置配置单独的阻止策略来执行此操作。

8. 在访问控制部分,考虑配置授权策略以需要身份验证强度合规设备

使用 Microsoft Graph PowerShell 进行测试

对我来说,测试新条件访问策略的最简单方法是使用 Microsoft Graph PowerShell 中的设备代码登录流程功能。如果您尚未安装 Microsoft Graph PowerShell,请查看我的帖子:如何安装 Microsoft Graph PowerShell 模块

首先输入以下命令来启动登录序列:

Connect-MgGraph -UseDeviceCode

您将在屏幕上收到包含 URL 和用户代码的响应,如前面设备代码流程步骤中所述。

导航到 https://microsoft.com/devicelogin,并在出现提示时输入您的用户代码。

如果用户代码被接受,系统将提示您使用公司帐户登录。按照屏幕上的步骤登录。

在您的设备不满足条件访问策略中定义的授予控制的示例中,您将无法获取访问令牌。