我一直在阅读大量有关在Azure AD中使用OAuth的文档,但我仍然对如何正确实现我的情况感到困惑。希望有人能引导我朝着正确的方向前进。
我创建了一个ASP.NET Web API应用程序,它使用EWS托管API代表不同用户访问Exchange。我的应用程序公开端点,例如/Mailbox/Messages
和/Appointments
,意图是某些前端Web应用程序最终将使用它们来检索用户的电子邮件和约会。目前,端点正在使用基本的http身份验证,但我想更新它们以使用OAuth。该应用程序已在我的Azure AD实例中注册,并且我已将其配置为要求“通过Exchange Web服务访问邮箱作为登录用户”API权限。
由于前端尚未实现,我一直在尝试通过手动调用身份验证端点进行测试。这会提示我登录并提供同意。如果我同意,我会被重定向到我在使用查询参数中包含的授权代码注册应用程序时提供的回调URL。我仍然不太确定我应该如何使用这个回调,但为了测试我目前有回调兑换访问令牌的授权码。这是通过在AcquireTokenByAuthorizationCode
类的实例上调用AuthenticationContext
方法并提供我的应用程序的id和机密来完成的。同样,为了测试,我将访问令牌返回给浏览器。然后,我可以使用此访问令牌调用上述端点(经过一些修改)并获取用户的电子邮件。我猜这很多都不是做事的正确方法。
我的一些困惑点:
对OAuth和Azure完全陌生,我不确定是否有任何其他细节相关,但我可以根据需要提供更多信息。
答案 0 :(得分:1)
以下是它的工作原理:
回答你的两个问题: