【问题标题】:MSAL and Graph API - access a user's calendar without user interaction?MSAL 和 Graph API - 无需用户交互即可访问用户的日历?
【发布时间】:2020-06-18 16:46:30
【问题描述】:

我有一个在会议室信息亭中运行的应用程序,它显示会议室的日历。现在,该应用程序使用 Interactive Credentials Flow 以交互方式获取房间帐户的令牌,然后获取日历。通过管理刷新和访问令牌,我们永远不必再次登录并重新授予访问权限。

但是 - 我们需要将此应用部署到 300 个房间。派遣技术人员到每个房间并使用每个房间的帐户登录并授予访问权限是非常昂贵的。此外,如果刷新或访问令牌过时或被撤销,我们必须向会议室发送技术人员。一些会议室位于城市中没有技术的建筑物中。

有没有一种方法可以集中处理?要为用户获取授予权限的访问令牌,然后将其提供给我们的应用程序?

我们研究了使用“客户端凭据 - 应用程序机密流程”,但这需要授予应用程序访问整个企业日历的权限。我们无法做到这一点,因为很多用户都需要高安全性。

【问题讨论】:

    标签: azure-active-directory microsoft-graph-api msal microsoft-graph-calendar


    【解决方案1】:

    我觉得这是一个有趣的问题。 这是有关如何实现此目的的文档:https://docs.microsoft.com/en-us/graph/auth-limit-mailbox-access
    您将使用应用程序秘密身份验证,但使用它,您可以限制图形调用可以访问的邮箱。这将是我相信的最优雅的方式。

    【讨论】:

    • 谢谢。我们已经看到该文档并实施了它。它很接近,但不是一直到那里,因为一项策略适用于租户的整个应用程序。这意味着 - 对于我的示例,房间中使用的每个帐户都可以看到彼此的房间帐户。
    • 没错,但这真的很重要吗?因为它们是公共信息亭,最坏的情况是他们可以看到其他公共信息亭的时间表。在您的代码中,您可以生成设备 ID,然后将其与邮箱匹配。但除了这样做。您可以使用的唯一其他流程是 ROPC 流程docs.microsoft.com/en-us/azure/active-directory/develop/…,但根据指南,您永远不应该存储凭据...
    猜你喜欢
    • 1970-01-01
    • 2021-12-03
    • 2016-08-11
    • 1970-01-01
    • 2013-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多