none
怎么配置azure OAUTH来允许Java程序访问Office365的IMAP功能 RRS feed

  • 问题

  • 此问题在Office365社区里提出过,特地到这里寻找答案

    问题简单描述如下,对于一个私有域,如何设置redirect_uri以允许Java本地程序访问Office365提供的IMAP服务呢?

    或者换一个问法,如何配置outlook2013或者其他的邮件应用程序访问Office365的IMAP服务?

    其中的关键是IMAP的OAUTH如何设置呢?

    在Office365的问题:

    http://community.office365.com/zh-cn/f/848/p/343559/930615.aspx#930615

    2015年4月13日 13:02

答案

  • 您好 Henry,

    请问您是否尝试https://msdn.microsoft.com/office/office365/HowTo/add-common-consent-manually 中提示的步骤? 根据文档内容:

    If your app is a native application, you'll need to specify a redirect URL. This is the URI to which Windows Azure AD will redirect the user-agent in response to an OAuth 2.0 request. The value does not need to be a physical endpoint, but must be a valid URI. You can think of the redirect URL as a unique identifier for your app.

    redirect URL只是用作您本地程序的一个标示.

      >> 一个目前看起来或许可行的是按照Client application的模式来搞,但是这个resource怎么设置呢?

    需要在Azure portal上配置, 请参考文档中的 [Configure your app properties in Azure AD] 章节.

      >> 问题简单描述如下,对于一个私有域,如何设置redirect_uri以允许Java本地程序访问Office365提供的IMAP服务呢?

    之后需要在程序中使用client id以及redirect url,如果您对具体实现存在疑惑, 建议您根据https://msdn.microsoft.com/en-us/office/office365/howto/adding-service-to-your-Visual-Studio-project 建立一个WPF的测试程序, 参考VS生成的代码, 然后迁移到Java上. 更多代码示例, 请访问 https://msdn.microsoft.com/office/office365/HowTo/starter-projects-and-code-samples.

    鉴于您的问题与office 365更相关, 请提交您的问题到 office 365 论坛获取更针对性的解答.

    Best Regards,

    Ming Xu


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2015年4月15日 5:56
    版主

全部回复

  • 您好 Henry,

    正如您在office 365论坛中提到的文档 https://msdn.microsoft.com/zh-cn/library/dn720816, 请注意, Office 365 在中国的API和相关服务有不同的url. 比如文档中提到:

    一个典型的授权请求看上去像下面这个(一定要使用https):

    参数       描述      
    response_type 必需。值总是code
    client_id 必需。在AAD注册您的应用程序时生成的client_Id 。
    resource 必需。您的应用程序要使用的Office 365 资源。当您想使用Office 365 日历/联系人和邮件API时,它是“https://outlook.office365.com/”。
    state 必需。一个唯一的长字符串,必须难以猜到。它被用来阻止 CSRF 。例如,这可以是个随着授权请求由您的应用程序生成的Guid。
    redirect_uri 必需。您应用程序中的URI ,授权后送给用户。它必须在AAD中注册过。

    请参考https://msdn.microsoft.com/office/office365/APi/o365-china-endpoints#MailAPI 中的内容, 替换相应的URL, 比如:

    Azure OAuth

    Office 365 for China Office 365 outside of China
    https://login.chinacloudapi.cn https://login.windows.net

    Use https://login.windows.net/common/oauth2/authorize to authenticate the user and https://login.windows.net/common/oauth2/token to authorize your app of Office 365 for China.

    Mail API

    Office 365 for China Office 365 outside of China
    https://partner.outlook.cn https://outlook.office365.com

    For example, to get a user's emails from Office 365 for China, submit a GET request against https://partner.outlook.cn/api/v1.0/me/messages.

         >> 如何设置redirect_uri以允许Java本地程序访问Office365提供的IMAP服务呢?

    Redirect URI必须在AAD中以“Reply URLs”注册过, 请查看https://msdn.microsoft.com/office/office365/HowTo/add-common-consent-manually#bk_RegisterApp 中的步骤截图是否有帮助.

    鉴于您的问题与office 365更相关, 如果您在具体实现中遇到任何困难, 欢迎您继续在office 365论坛中提问.

    Best Regards,

    Ming Xu


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2015年4月14日 7:09
    版主
  • 谢谢回复。

    我们目前用的是Office365 outside of china 的URL.

    目前Office365论坛的Alex Sun也不知道怎么解决这个问题。

    一个目前看起来或许可行的是按照Client application的模式来搞,但是这个resource怎么设置呢?

    https://msdn.microsoft.com/en-us/library/azure/dn645543.aspx

    2015年4月14日 10:31
  • 您好 Henry,

    请问您是否尝试https://msdn.microsoft.com/office/office365/HowTo/add-common-consent-manually 中提示的步骤? 根据文档内容:

    If your app is a native application, you'll need to specify a redirect URL. This is the URI to which Windows Azure AD will redirect the user-agent in response to an OAuth 2.0 request. The value does not need to be a physical endpoint, but must be a valid URI. You can think of the redirect URL as a unique identifier for your app.

    redirect URL只是用作您本地程序的一个标示.

      >> 一个目前看起来或许可行的是按照Client application的模式来搞,但是这个resource怎么设置呢?

    需要在Azure portal上配置, 请参考文档中的 [Configure your app properties in Azure AD] 章节.

      >> 问题简单描述如下,对于一个私有域,如何设置redirect_uri以允许Java本地程序访问Office365提供的IMAP服务呢?

    之后需要在程序中使用client id以及redirect url,如果您对具体实现存在疑惑, 建议您根据https://msdn.microsoft.com/en-us/office/office365/howto/adding-service-to-your-Visual-Studio-project 建立一个WPF的测试程序, 参考VS生成的代码, 然后迁移到Java上. 更多代码示例, 请访问 https://msdn.microsoft.com/office/office365/HowTo/starter-projects-and-code-samples.

    鉴于您的问题与office 365更相关, 请提交您的问题到 office 365 论坛获取更针对性的解答.

    Best Regards,

    Ming Xu


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2015年4月15日 5:56
    版主
  • 谢谢您的答复,非常有用。
    2015年4月17日 2:59