我有一个小应用程序,它通过实现我自己的凭据提供程序来为登录的Windows用户执行单点登录,并拦截登录过程并获取凭据。然而,对于非混合情况下的Azure AD登录,单独获取凭据可能不是正确的事情。
通过这个主题的博客,here和here,似乎是这样的情况,在Azure登录的情况下,WinLogon过程遵循OAuth工作流程与Azure AD对话,使用在AAD加入期间获得的PRT并获得访问令牌。
目前,我能找到的获取此令牌的唯一方法是使用WebAuthenticationCoreManager。但是,我是一个后台进程,我在登录过程中获得通知的方式是使用凭据提供程序。要使用Windows,我需要是一个通用的WebAuthenticationCoreManager应用程序。
如何使用为已登录的Azure用户颁发的访问令牌,在Azure用户登录Win10时,为我的应用程序实现单点登录?
发布于 2021-08-24 12:15:46
·无法在加入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/devices/concept-primary-refresh-token
https://stackoverflow.com/questions/68631017
复制相似问题