Microsoft Graph API ADB2C SignInActivity 更新滞后

问题描述 投票:0回答:1

我们正在尝试获取 ADB2C 应用程序的某些用户的最后登录时间。我们已经设置了 Microsoft Graph API 查询,并且正在工作 - 当我们请求

https://graph.microsoft.com/v1.0/users?$select=signInActivity,displayName,mail,id,userPrincipalName,identities
时,signInActivity 已填写。

问题在于,新登录后,signInActivity 需要很长时间才能更新。测试用户昨天(大约 20 小时前)登录,但他们的 signInActivity.lastSignInDateTime 尚未更新。我们每小时发送一次 API 请求进行检查。

有没有办法强制lastSignInDateTime重新检查azure登录日志并更新?

azure microsoft-graph-api azure-ad-b2c
1个回答
0
投票

signInActivity
来自租户的不同部分,而不是直接来自用户对象。

我的假设这不会实时更新或在夜间批量运行以保存处理。我没有任何文档来适应这个假设,但它确实与我之前经历过的事情相符。

如果您需要更多最新数据,最好的方法是通过扩展属性将登录日期/时间保存到用户对象。

内置用户旅程不支持此功能,因为每次登录时触发的唯一 API 连接器是 发送令牌之前 API 连接器 - 不过,您可以使用此连接器调用 API 来更新通过 Microsoft Graph 的用户对象...请注意,这样做会为用户的登录体验添加更多故障点。

如果您可以迁移到 B2C 自定义策略,则需要添加 自定义属性 并在登录期间更新此属性。 Azure 示例 - 禁用非活动帐户 中实现了类似的功能。您可以看到

extension_lastLogonTime
在每次登录时如何实现和更新。

请注意,即使通过更新 Microsoft Graph 或自定义策略中的用户对象,当数据在数据中心进行复制时,由于最终一致性,仍然可能存在最多 5 分钟的延迟。


只要所提供的信息对您有帮助,请不要忘记“接受答案”和“投票”,这对其他社区成员也有好处。

© www.soinside.com 2019 - 2024. All rights reserved.