【问题标题】:How do I intercept the winlogon process and fetch a Azure AD Access Token?如何拦截 winlogon 进程并获取 Azure AD 访问令牌?
【发布时间】:2021-10-08 08:43:15
【问题描述】:

我有一个小型应用程序,它通过实现我自己的凭据提供程序并拦截登录过程并获取凭据来为登录的 Windows 用户执行单点登录。但是,似乎在非混合情况下使用 Azure AD 登录,单独获取凭据可能不是正确的事情。

通过博客,herehere 在这个主题上,似乎是在 Azure 登录的情况下,WinLogon 过程遵循与 Azure AD 对话的 OAuth 工作流,使用期间获得的 PRT AAD 加入并获得访问令牌。

目前,我能找到获取此令牌的唯一方法是使用 WebAuthenticationCoreManager 。但是,我是一个后台进程,我在登录过程中获得通知的方式是使用凭据提供程序。要使用 WebAuthenticationCoreManager API,我需要成为通用 Windows 应用程序。

当 Azure 用户在 Win10 AAD 连接设备上使用 Windows 登录时,如何使用为登录的 Azure 用户颁发的访问令牌为我的应用程序实施单点登录?

【问题讨论】:

    标签: azure-active-directory single-sign-on winlogon


    【解决方案1】:

    • 在 Windows 10 AAD 加入设备中无法拦截 Winlogon 进程,因为当用户登录加入或注册 AAD 的设备时,会生成 PRT(主刷新令牌),它是从 Azure AD 发送的不透明 blob,其内容任何客户端组件都不知道。您无法看到 PRT 中的内容。

    • 此外,PRT 包含通常包含在任何 Azure AD 刷新令牌中的声明以及设备 ID 和会话密钥,其中设备 ID 用于根据设备状态或合规性确定条件访问的授权,会话密钥充当使用 PRT 为其他应用程序获取令牌时的所有权证明。

    • 请在登录过程中找到以下令牌颁发流程,该流程清楚地表明 Azure AD 颁发的令牌已通过 CloudAP 或本地安全机构根据设备证书或受信任的身份验证协议进行验证,并保存为缓存。

    • 但是,您可以将您的应用程序添加为 Azure AD 中的通用应用程序,以便配置 SSO 并与它一起使用。

    请找到以下链接以获取更多信息:-

    https://docs.microsoft.com/en-us/azure/active-directory/manage-apps/configure-password-single-sign-on-non-gallery-applications

    https://docs.microsoft.com/en-us/azure/active-directory/devices/concept-primary-refresh-token

    【讨论】:

      猜你喜欢
      • 2021-12-28
      • 2019-01-27
      • 1970-01-01
      • 1970-01-01
      • 2019-05-15
      • 1970-01-01
      • 2022-01-05
      • 2023-04-04
      • 2020-12-21
      相关资源
      最近更新 更多