我正在尝试使用 OAuth 身份验证从我的 WCF 服务调用 Exchange Web 服务 (EWS) 端点。 我已在 Azure 门户上注册了该应用,并且能够使用访问令牌生成和验证它。
我的问题是关于如何刷新 WCF 服务中的令牌。似乎访问令牌有一个小时的有效期。
// Using Microsoft.Identity.Client 4.22.0
var cca = ConfidentialClientApplicationBuilder
.Create(ConfigurationManager.AppSettings["appId"])
.WithClientSecret(ConfigurationManager.AppSettings["clientSecret"])
.WithTenantId(ConfigurationManager.AppSettings["tenantId"])
.Build();
// The permission scope required for EWS access
var ewsScopes = new string[] { "https://outlook.office365.com/.default" };
//Make the token request
var authResult = await cca.AcquireTokenForClient(ewsScopes).ExecuteAsync();
谢谢
答案 0 :(得分:0)
在您的 WCF 客户端中,您想要执行类似 How to add a custom HTTP header to every WCF call? 的操作,因此您有一段代码在发出任何调用 AcquireTokenForClient 的请求之前运行,该请求应使用令牌应用程序缓存(因此它将为您提供当前令牌(如果有效)或获取新令牌(如果过期)。