1
MVC WebアプリケーションのOffice365アプリケーションから電子メールをダウンロードしようとしています。 Azure Active Directoryでアプリの権限を設定することには苦労しています。アクセス許可には「すべてのメールボックスでメールを読む」というメッセージが表示されますが、アクセスできるメールボックスを選択する必要があります。Office365アプリケーションの制限「特定のメールボックスへのメールをすべて読む」
誰かが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["[email protected]"].Messages.Request().GetAsync();
//This is forbidden. I want to restrict this on AAD level.
var dissabledEmails = await graphserviceClient.Users["[email protected]"].Messages.Request().GetAsync();
こんにちは、あなたの助けをもう一度!私のユースケースは、特定のメールボックスからメールをダウンロードする必要があることです(メールを受信してMVCアプリに保存する必要があります。メールを使用することはできません)。しかし、セキュリティ上の理由から、私はAD内のすべてのメールボックスに対してオープントンネルを作成し、ClientCredentialの電子メールアドレスだけでアクセスを制限することはできません。それはあまりにも脆弱ですから。それは私が知っている会社の電子メールアドレスからのすべての電子メールへの開発者アクセスとして私を与えるでしょう。 – Mastenka
また、ClientCredentialワークフローでメールボックスのパスワードを挿入する手順が必要な場合は、十分な保護になります。私は他のメールボックスを読むことができなかったので、私はパスワードを持っているものだけを読みました。 – Mastenka
開発者がすべてのメッセージを受け取らないようにするには、いくつかの方法があります。まず、製品テナントと開発環境を分けることができます。次に、app-tokenをテスト目的の代理トークンに置き換えることもできます。 3番目は、自分でテストデータサーバーを構築できるということです。 –