Exchange Online一覧

Azure ポータルの [アプリの登録] で [サポートされるレガシ API] から Exchange を選択できない

Azure ポータルで Azure AD にアプリを登録した後、 - からアプリの使用するアクセス許可を事前に登録する場合があります。以前は以下のようにこの画面の に Exchange がありましたが、2020/11/18 ごろから Exchange は無くなりました。 これは、Outlook REST API の廃止がアナウンスされたことに起因するものです。Outlook REST API を使用する新しいアプリが登録できないように、 から Exchange が削除されました。 Outlook REST API も含め、複数の API がこの GUI の変更の影響を...

NO IMAGE

Exchange Online への PowerShell 接続を非対話的に行う方法

Exchange Online の基本認証無効化および Exchange Online PowerShell V2 Module のリリースに伴い、従来の接続方法からよりセキュアな方法へ見直しが必要になっています。特に夜間バッチなどの自動化システムにおいて、どのように非対話的に Exchange Online へ接続するかを検討する必要があります。 この記事では、非対話的に接続するための考えられる方法と、そのメリット・デメリットを紹介します。 考えられる方法: 従来のまま New-PSSession に -Credential で資格情報を渡す従来の Exchange On...

Microsoft Graph で会議の別の時間を提案する

2020 年 7 月の更新で、会議出席依頼における新しい時間の提案に関するプロパティが Microsoft Graph に追加されました。 実際に動きを見てみましょう。まず以下のように User01 から User02 へ明示的に allowNewTimeProposals を true にした会議出席依頼を送信します。 POST { "subject": "Let's go for lunch", "body": { "contentType": "HTML", "content": "Does late morning work for...

NO IMAGE

OAuth を使って Exchange Online に POP で接続する

Exchange Online の基本認証無効化に向けて、POP でも OAuth がサポートされるようになりました。開発者向けの情報は以下のページに記載されています。 C# で実装する場合の基本的な内容を作成したので、以下にサンプル コードを紹介します。コード自体に対する説明は特にないので、上記の開発者向けページと併せて読んでいただければと思います。必要最低限の内容のみを実装しているため、本格的に実装を行うには Microsoft Identity Platform や POP の知識が必要になります。C# のコンソール アプリケーションとなっており、認証ライブラリとして MSAL ...

NO IMAGE

OAuth を使って Exchange Online に SMTP で接続する

Exchange Online の基本認証無効化に向けて、SMTP でも OAuth がサポートされるようになりました。開発者向けの情報は以下のページに記載されています。 C# で実装する場合の基本的な内容を作成したので、以下にサンプル コードを紹介します。コード自体に対する説明は特にないので、上記の開発者向けページと併せて読んでいただければと思います。必要最低限の内容のみを実装しているため、本格的に実装を行うには Microsoft Identity Platform や SMTP の知識が必要になります。C# のコンソール アプリケーションとなっており、認証ライブラリとして MSA...

NO IMAGE

OAuth を使って Exchange Online に IMAP で接続する

Exchange Online の基本認証無効化に向けて、IMAP でも OAuth がサポートされるようになりました。開発者向けの情報は以下のページに記載されています。 C# で実装する場合の基本的な内容を作成したので、以下にサンプル コードを紹介します。コード自体に対する説明は特にないので、上記の開発者向けページと併せて読んでいただければと思います。必要最低限の内容のみを実装しているため、本格的に実装を行うには Microsoft Identity Platform や IMAP の知識が必要になります。C# のコンソール アプリケーションとなっており、認証ライブラリとして MSA...

NO IMAGE

Windows PowerShell で MSAL を使って EWS 用のアクセス トークンを取得する

C# で MSAL (Microsoft.Identity.Client) を使って EWS 用のアクセス トークンを取得する方法は Authenticate an EWS application by using OAuth に記載されています。しかしながら PowerShell の場合については Docs に記載がありません。こちらのブログでは PowerShell の場合についての記載がありますが、ADAL も MSAL も使用しない実装になっています。「ライブラリを使用しなくても実装できることをわざわざライブラリを使用して実装するのは面倒」と考えることもできますが、ブログに記載の方法...

NO IMAGE

RobustCloudCommand Module の紹介

以前は Script だった Start-RobustCloudCommand.ps1 が、Module になってしかも MFA にも対応したということで、使い方を紹介します。 おさらい Exchange Online の PowerShell はスロットリングやセッションの不安定さなどの問題から、長時間大量のオブジェクトに対する処理を実行するのがものすごく苦手です。そんな時にセッションを管理しながら Exchange Online のコマンドを実行するのが Start-RobustCloudCommand.ps1 でした。紹介ブログが日本語にも翻訳されていたので、 Start-...

NO IMAGE

Microsoft Graph の getSchedule

Microsoft Graph の getSchedule は、空き時間情報を取得する API です。Outlook のスケジュール アシスタントのように、他人の予定の詳細ではなく空いているかどうかを取得します。基本的なことは Get free/busy schedule of users and resources や calendar: getSchedule を参照してください。 空き時間情報にも何段階かあります。どこまでの情報が取得できるのかは、参照先ユーザーの予定表に対してどこまでの権限を持っているのかによって異なります。いくつかのパターンで見ていきましょう。 まずはテ...

NO IMAGE

Exchange Online の全ユーザーのメールボックスを取得する

Exchange Online PowerShell V2 Module の登場で、大量のオブジェクトでも通信が安定するようになりました。この記事の内容は初回投稿のまま残していますが、現在は Get-EXOMailbox コマンドを使用することで大量のメールボックスも取得しやすくなっています。 Exchange Online では、以下のような全ユーザーを取得するコマンドが失敗するという話をよく聞きます。 Get-Mailbox -ResultSize Unlimited これは割と有名な話で、特に大規模な環境でユーザー数が多いと失敗します。データ量が多くなることが問題の ...