.net ADAL在没有用户的情况下获取令牌申请

问题描述 投票:0回答:1

我试图在没有当前用户的情况下为应用程序获取令牌。我收到一条错误消息:

e.Message =“无法在缓存中找到令牌而无法获取令牌。调用方法AcquireToken”

下面是我用来获取令牌的代码。

ClientCredential clientcred = new ClientCredential(clientId, appKey);
AuthenticationContext authenticationContext = new AuthenticationContext(aadInstance + tenantId);
AuthenticationResult authenticationResult = await authenticationContext.AcquireTokenSilentAsync(graphResourceID, clientId);

return authenticationResult.AccessToken;

我的版本是:

有人可以帮忙解决这个问题我已经尝试了好几天...我可以获得一个令牌只是找到一个当前用户,但当我有后台进程,如从应用程序发送电子邮件没有经过身份验证的用户,我可以得到一个令牌。

在我的应用程序注册Microsoft Graph“应用程序 - 从任何用户发送电子邮件”下的安全设置但我认为它没有达到那么远。 Windows Azure AD上的安全性已委派 - 登录并读取用户配置文件。

谢谢

c# .net adal azure-ad-graph-api
1个回答
0
投票

我已经找到了令牌部分。因此,对于正在寻找此谷歌创建X509证书并将其添加到您的Azure Manifest的其他人。然后,您可以使用x509证书创建ClientAssertionCertificate。然后在对AuthenticationContext.AcquireTokenAsync的调用中使用clientassertion。这似乎有效。我可以创建一个graphServiceClient。但是,当我尝试发送电子邮件时,我收到了一个权限错误:

用于提交此请求的用户帐户无权代表指定的发送帐户发送邮件。,无法提交邮件。

尽管拥有权限申请 - 以任何用户身份发送邮件。有人有主意吗?

© www.soinside.com 2019 - 2024. All rights reserved.