我正在开发一个Word插件并使用auth。getAccessTokenAsync用于此处定义的身份验证:
https://dev.office.com/reference/add-ins/shared/office.context.auth.getAccessTokenAsync
。
我成功获取了访问令牌,但在此处描述的“代表”流中遇到错误:
https://docs.microsoft.com/en-us/office/dev/add-ins/develop/authorize-to-microsoft-graph
。
使用MSAL(Microsoft.Identity.Client)验证引导访问令牌并获取Microsoft Graph的令牌时,我遇到了一个错误。下面是代码和错误详细信息。
代码:
var cl = new ConfidentialClientApplication(<client ID>,
"https://login.microsoftonline.com/" + <tenant ID>,
<redirect uri>,
new Microsoft.Identity.Client.ClientCredential(<client secret>),
new Microsoft.Identity.Client.TokenCache(),
new Microsoft.Identity.Client.TokenCache());
var authResult = await cl.AcquireTokenOnBehalfOfAsync(new[] {
"Sites.Read.All"
},
new Microsoft.Identity.Client.UserAssertion(accessToken));
错误:
AADSTS50013: Assertion contains an invalid signature. [Reason - The provided signature value did not match the expected signature value., Found key 'Start=02/18/2018, End=02/19/2020, Thumbprint=oZkMJ7Omv9GN7JVM', Configured keys: [Key0:Start=02/18/2018, End=02/19/2020, Thumbprint=oZkMJ7Omv9GN7JVM;Key1:Start=03/31/2018, End=03/31/2020, Thumbprint=xq4mEGikJ5Bkblfw;Key2:Start=11/16/2016, End=11/16/2018, Thumbprint=i1DVz66b9dfpPV3Z;]]\r\nTrace ID: 6ec996c8-517c-4baa-815b-54cee7913f00\r\nCorrelation ID: 4cc9d7dd-3879-4be4-a067-ed80eaaaad1d\r\nTimestamp: 2018-04-24 07:10:23Z
如果我制作一个常规的web应用程序(不是Office插件)并使用MSAL。js获取访问令牌,该令牌验证良好。
据我所知,MSAL的签名有所不同。js token与单词Add-in token。我使用相同的作用域、客户端ID和租户ID。