1

我正在使用 Azure Active Directory 和ADAL通过 OAuth 与 Office 365 的 Exchange EWS 交互。

我知道你可以使用authContext.AcquireToken()它,它会为你管理所有的 oauth。它将为您保存、使用和刷新令牌,并在需要时提示用户凭据。就我而言,问题是我需要在 Azure 后台 Web 作业中进行交互,因此它无法请求用户凭据。

我尝试的是获取授权码,使用户从GetAuthorizationRequestURL(). 然后使用AcquireTokenByAuthorizationCode()刷新令牌获取令牌并将其保存在数据库中。因此,当后台作业需要连接到 EWS 时,它可以使用 Refresh Token(保存在 Db 中)使用AcquireTokenByRefreshToken().

这种方法有效,但我不知道如何在 14 天后过期时获得新的刷新令牌。

知道如何更新刷新令牌或在后台作业中使用 ADAL 的更好方法吗?

谢谢并恭祝安康!!

4

1 回答 1

1

这里有一个想法。创建一个简单的控制台或 win 表单应用程序来请求您的令牌。在该应用程序中,使用将令牌保存在便携式存储中的自定义缓存(如加密文件,请参阅https://github.com/AzureADSamples/NativeClient-DotNet)。运行应用程序一次以播种缓存。然后获取该缓存并将其与您的 Web 作业一起部署。现在90天左右你会没事的。另一种选择是使用用户名/密码流,但这很少是一个好主意,它需要许多重要的限制。

于 2015-04-19T20:33:59.163 回答