我正在尝试通过MVC网络应用中的Office365应用下载电子邮件。我正在努力配置Azure Active目录上的应用程序权限。权限说:“在所有邮箱中读取邮件”但是我想选择它可以访问/读取的邮箱。
有没有人知道在AAD中设置权限更具体?谢谢你的帮助。
string authority = "https://login.microsoftonline.com/" + SettingsHelper.TenantId + "/oauth2/token";
var credential = new ClientCredential(SettingsHelper.ClientId, SettingsHelper.ClientSecret);
AuthenticationContext authContext = new AuthenticationContext(authority);
var authResult = await authContext.AcquireTokenAsync("https://graph.microsoft.com", credential);
var graphserviceClient = new GraphServiceClient(
new DelegateAuthenticationProvider(
(requestMessage) =>
{
requestMessage.Headers.Authorization = new AuthenticationHeaderValue("bearer", authResult.AccessToken);
return Task.FromResult(0);
}));
//This is Ok. I want to read this.
var allowedEmails = await graphserviceClient.Users["xxx@mydom.com"].Messages.Request().GetAsync();
//This is forbidden. I want to restrict this on AAD level.
var dissabledEmails = await graphserviceClient.Users["yyy@mydom.com"].Messages.Request().GetAsync();
答案 0 :(得分:0)
使用客户端凭据流进行身份验证的应用不支持限制应用读取特定电子邮件。
但是你会介意分享你工作的场景吗? 客户端凭据流用于自信的应用,这意味着应用在安全的环境中工作。没有恶意用户可以获取令牌来访问您不想发布的信息。因此,您可以在自己的应用中限制资源。希望它有所帮助。