1

Azure AD Premium 具有条件访问策略的概念。当您更改登录频率时,它不会影响访问令牌或刷新令牌的生命周期。由于访问令牌的默认生命周期为 1 小时,因此无论您在 Azure 中将登录频率设置为多少,都会在 1 小时后使用刷新令牌来获取新的访问令牌。因此,在 Azure AD 高级版中设置登录频率对默认 msal 应用没有影响。

事实上,我通过执行以下简单步骤对此进行了测试:

下载使用 PKCE 的身份验证代码流的 msal 角度示例 ( https://github.com/AzureAD/microsoft-authentication-library-for-js/tree/dev/lib/msal-angular ) 在 Azure 中添加条件访问策略上述应用程序注册的广告溢价 确保在用户登录时应用该策略(例如,通过检查登录刀片或企业应用程序上的假设工具)。

以下是条件访问策略: 在此处输入图像描述

下面的租户配置显示用户无法选择“保持登录状态?” 登录此租户中的任何应用程序时的选项。

在此处输入图像描述

下面是相关部分的结果dsregcmd /status。我知道 SSO 状态对条件访问策略有影响。

+----------------------------------------------------------------------+
| Device State                                                         |
+----------------------------------------------------------------------+

             AzureAdJoined : NO
          EnterpriseJoined : NO
              DomainJoined : YES
                DomainName : <redacted>
               Device Name : <redacted>

+----------------------------------------------------------------------+
| User State                                                           |
+----------------------------------------------------------------------+

                    NgcSet : YES
                  NgcKeyId : <redacted>
                  CanReset : NO
           WorkplaceJoined : YES
          WorkAccountCount : 2
             WamDefaultSet : NO

+----------------------------------------------------------------------+
| SSO State                                                            |
+----------------------------------------------------------------------+

                AzureAdPrt : NO
       AzureAdPrtAuthority : NO
             EnterprisePrt : NO
    EnterprisePrtAuthority : NO
4

1 回答 1

1

我从 Microsoft 服务器团队获得了以下回复,我可以确认它是准确的,尽管不直观:

条件访问基于令牌受众执行,我们不会为令牌受众是公共客户端的 id_tokens 执行它。

这就是 CA 政策没有生效的原因

CA 不为公共客户端执行 id_token 的原因是因为 CA 旨在保护来自云的数据,并且拥有来自公共客户端的 id_token 不会授予对来自云的任何数据的访问权限。

这是关于可以在他们的请求中访问的数据。

他们可以尝试其他几种选择:

他们可以更改他们的策略以应用于“所有应用程序”,然后 SIF(登录频率)将启动。例如,他们可以尝试在 Exchange Online 上设置策略,并请求 mail.read 范围另一个示例:他们可以尝试设置Sharepoint Online 的策略和请求 files.read 范围

因此,如果满足条件,我们将应用条件访问策略,但仅适用于可以访问云中数据的令牌。

我将条件访问策略更改为适用于“所有应用程序”,而不仅仅是 msal 应用程序的应用程序注册。MSAL 应用确实拒绝刷新令牌并在 1 小时后重定向。我没有尝试其他示例,但考虑到触发 SIF 的原因,它们似乎也是有效的解决方法。

于 2021-05-15T08:00:00.537 回答