最新の認証は、廃止された基本認証よりも安全であるため、すべての新しいMicrosoft 365/Azureテナントに対してデフォルトで有効になりました。 最新の認証は、ActiveDirectory認証ライブラリとOAuth2.0に基づいています。時間制限のあるトークンを使用し、アプリケーションはユーザーの資格情報を保存しません。 さらに、すべてのMicrosoft365クライアントでの基本認証の使用を完全に禁止する予定です。 この記事では、Modern Authenticationを使用して、Aspose.Email for .NETのEWS、SMTP、IMAP、POPクライアントを介して接続することに焦点を当てます。
前提条件の設定 AzureActiveDirectoryへのアプリの登録 電子メールサーバーにアクセスするためのC#.NET API EwsClientで最新の認証を使用する IMAP、POP、またはSMTPクライアントで最新の認証を使用する 前提条件の設定 最新の認証を使用するには、それが有効になっていることを確認してください。ただし、2017年8月1日より前に作成されたテナントの場合、最新の認証はデフォルトでオフになっています。 Microsoft365管理センターで、[設定]>[組織の設定]>[最新の認証]に移動します。表示される[最新の認証]フライアウトで、基本認証を必要としなくなったプロトコルを特定できます。 Azureの新しいMicrosoft365テナントの場合、基本認証はすべてのアプリケーションでデフォルトで無効になっています。したがって、このセクションにはテキストが表示されます。
組織ではセキュリティのデフォルトが有効になっています。つまり、Exchange Onlineへの最新の認証が必要であり、基本的な認証接続はブロックされています。ここで設定を変更する前に、Azureポータルでセキュリティのデフォルトをオフにする必要があります。 Azureポータルからテナントの基本認証サポートを有効にできます。[AzureActiveDirectory]>[プロパティ]>[セキュリティの既定値の管理]>[セキュリティの既定値を有効にする]>[いいえ]に移動します。 詳細については、Microsoftドキュメントの記事を参照してください。
AzureActiveDirectoryへのアプリの登録 まず、AzureActiveDirectoryでアプリの登録を行う必要があります。 アプリでメールボックスにアクセスするために使用できる権限には2つのタイプがあります。作成するアプリに応じて、特定の種類の権限を選択します。
委任された権限を使用するアプリには、サインインしたユーザーが存在します。つまり、サービスに接続すると、ユーザー名とパスワードのダイアログウィンドウが表示されます。アプリは、サインインしたユーザーよりも多くの特権を持つことはできません。 アプリケーション権限を使用するアプリは、サインインしたユーザーがいない状態で実行されます。たとえば、これらはバックグラウンドサービスまたはデーモンとして実行されるアプリです。管理者のみがアプリケーションのアクセス許可に同意できます。 また、詳細については、Microsoftドキュメントの記事を参照してください。
登録手順は、選択した権限の種類によって異なります。アプリを登録するには、Microsoftドキュメントの記事を参照してください。
電子メールサーバーにアクセスするためのC#.NET API EWS、Imap、およびSmtpクライアントを作成するには、Aspose.Email for.NETを使用します。 .NETを使用して電子メールクライアントアプリを実装するのは素晴らしいライブラリです。ライブラリを使用すると、電子メールサーバーに簡単に接続してアクセスできます。 Aspose.Email for .NETは、NuGetまたはダウンロードそのDLLを介してインストールできます。
PM> Install-Package Aspose.Email EwsClientで最新の認証を使用する アプリケーションを登録した後、次の部分で構成されるコードの記述に集中できます。
まず、認証トークンを取得します。 次に、トークンを使用して認証します。 承認トークンの取得 トークンを取得するには、Microsoft Authentication Library(MSAL)for.NETを使用します。
以下は、C#で認証トークンを取得する手順です。
MSAL.NETのバイナリを含むMicrosoft.Identity.Clientnugetパッケージを追加します。 資格情報を保存するAccessParametersクラスを作成します。 最後に、アクセスパラメータを受け入れ、MSAL.NETを使用してアクセストークンを取得するメソッドを作成します。 次のコードサンプルは、選択した認証のタイプによって異なります。
委任された認証でトークンを取得する public class AccessParameters { public string TenantId { get; set; } public string ClientId { get; set; } public string RedirectUri { get; set; } = "http://localhost"; public string[] Scopes { get; set; } = { "https://outlook.