【问题标题】:Office 365 rest api AuthorizationOffice 365 rest api 授权
【发布时间】:2016-05-23 11:07:42
【问题描述】:

我目前在我的应用程序中使用 EWS 来访问 Exchange 数据。我想使用 rest api 为 Office365 添加功能。

使用 EWS,授权非常简单,只需在 header 中添加 Authorization 标签,用户名和密码 base64 编码,我相信它称为基本授权。

但是对于 Office 365,该过程需要额外的 2 个步骤

在上图中,您可以看到我的应用程序和 office365 之间有 2 个步骤。

将使用我的应用程序的每个办公室帐户都必须这样做 Microsoft azure 的一些配置步骤。获取密钥、客户端和租户 ID。

我想避免这种情况,理想情况下,用户只需输入他的凭据,这样我就可以通过编程方式访问他在 Office 365 中的所有数据。

【问题讨论】:

    标签: authorization office365-restapi


    【解决方案1】:

    每个将使用我的应用程序的 office 帐户都必须在 Microsoft azure 上执行一些配置步骤。获取密钥、客户端和租户 ID。

    如果我正确理解您的问题,您想避免为您的应用用户配置 client_id、密钥的所有步骤吗?

    • 如果您的应用程序是基于浏览器的 Web 应用程序,则图表上的“应用程序”块实际上由 Web 服务器和用户/浏览器组成。在这种情况下,只有 Web 服务器需要从 Azure 中拉取配置、client_id、secrect 等......这就是说,用户/Web 浏览器只需要输入他的凭据,并且在隐式同意的情况下,您的应用程序将拥有访问用户的数据。这样的工作流程可以描述如下,

    在这种情况下,您的应用用户/浏览器不需要从 Azure 中提取配置。只有网络服务器可以。

    • 如果您的应用是原生应用,当您向身份验证端点发出请求时,您的应用需要在请求中包含 client_id 和重定向 URI。这在下面的第一步中显示。

    在这种情况下,您的应用用户可以使用相同的 client_id 和重定向 URI,您无需“强制”他们创建自己的,因此他们只需要输入用户名和密码。

    您可以从https://azure.microsoft.com/en-us/documentation/articles/active-directory-authentication-scenarios/ 找到有关 Azure AD 身份验证的更多信息

    【讨论】:

    • 是的,我想避免它。我的应用程序是基于浏览器的。能否请您提供浏览器应用程序的使用示例。
    • 嗯,这个想法是您将您的应用程序托管在 azure 或其他网络服务器中,当应用程序用户浏览您的网站时,他/她只需要输入他的凭据。 client_id、secrect key 等仅适用于您的服务器应用程序,不适用于客户端。
    • 我明白了。但我仍然强制用户继续使用 Azure 并获取这些值。我希望他/她只输入用户名和密码。有可能吗?
    猜你喜欢
    • 2015-12-10
    • 2016-11-18
    • 2012-11-09
    • 1970-01-01
    • 2014-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多