【问题标题】:Which options of authentication in Office 365 should I use to access user email?我应该使用 Office 365 中的哪些身份验证选项来访问用户电子邮件?
【发布时间】:2016-08-18 05:39:00
【问题描述】:

这是我第一次使用 Office 365 API。我们想要实现的是从 Office 365 检索用户电子邮件并在我们的 Java Web 应用程序中显示内容。

很少有人认为我看过:

  • 建议不要使用基本认证,而是使用 OAuth 或 OpenId
  • Rest API 是标准。
  • 我们应该将我们的应用程序注册到 Azure AD 吗?我们必须为每个新用户使用它还是只需要一次设置?

如果您也向我指出任何示例源代码以供参考,我将不胜感激。请随时向我提出任何建议。

【问题讨论】:

    标签: rest azure outlook office365 azure-active-directory


    【解决方案1】:

    我们应该将我们的应用程序注册到 Azure AD 吗?我们必须为每个新用户使用它还是只需要一次设置?

    是的,您必须注册您的应用程序才能使用 OAuth,这是 REST API 所要求的。我建议您在http://apps.dev.microsoft.com/ 的应用程序注册门户中注册。您可以使用 Office 365 帐户或 Microsoft 帐户登录 ARP。这使您可以使用 Azure“v2”OAuth 模型,并访问除 Office 365 之外的 Outlook.com 帐户。

    注册是一次性的,假设您想让您的 Web 应用程序成为多租户。

    这里有 Java/Spring Web 应用程序的演练:https://dev.outlook.com/restapi/tutorial/java

    在这里完成源代码:https://github.com/jasonjoh/java-tutorial

    【讨论】:

    • 谢谢!我还在 REST API 上找到了以下教程 dev.outlook.com/restapi/getstarted。我会将它与 Java 代码进行比较,看看哪一个最适合我们。再次感谢。
    • 没有让用户在 Office365 上登录的窗口,有没有办法使用安全存储在我们数据库中的用户名和密码发送 api 调用?即当用户登录我们的系统时,他们使用与 Office365 类似的凭据,因此我们可以自动发送他们的用户名和密码,而不是要求他们再次登录吗?
    • 我自己没有这样做,但我相信 Azure 支持用户名/密码流。见stackoverflow.com/questions/26794759/…。但是我建议不要这样做。这里的想法是让他们登录一次以将他们的 Office365 帐户“连接”到您的内部帐户。拥有刷新令牌后,您将不需要它们重新进行身份验证。
    • 我完全理解你为什么反对它。但是,我不确定我们可以使用刷新令牌多长时间。我们不想让用户每次注销我们的系统然后再次登录时都登录到 Office365。我们可以在他们仍然登录我们的系统时使用刷新令牌,但是一旦他们注销我们的系统,我们就会使会话无效。也许我们可以尝试将令牌存储在服务器端。还不确定。
    • 我已经集成了身份验证部分,但我卡在“回复地址未使用安全方案”。我在这里发布了另一个问题stackoverflow.com/questions/39025969/…。感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-12
    • 2016-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-27
    相关资源
    最近更新 更多