カテゴリ「Microsoft 365」の78件の投稿 Feed

2024年9月10日 (火)

Adobestock_715101192

Microsoft 365 用の PnP PowerShell とCLI の登録方法が 2024年9月9日より変更されました。

アナウンスされたのが2024/8/22ですから、期限まで1か月もなく、バタバタと対応を迫られたのでまだご存じない方もいるかもしれません。早くブログに書いておこうと思ったものの先週の週末に検証がずれ込み、今日改めて記事にしています。

経緯

以前は、PnP Management Shell はマルチテナントアプリ登録の仕組みを利用してスクリプトに必要な権限を付与することができました。しかし、このマルチテナントアプリ登録は2024年9月9日に削除される予定であり、既存のスクリプトに影響を与える可能性があります。マルチテナントアプリ登録オプションは、オンボーディングする上では非常に有効だったものの、結果的に付与されるスコープが多すぎる問題が生じました。そのため、より少ない権限に絞れるように今回の対応となったという経緯があるようです。

新たな変更では、必要なスコープと権限のみを使用するシングルテナント アプリの登録を推奨します。これにより、セキュリティ対策の強化と改善が見込まれます。ただ、以前と同じくシングル テナント登録にはテナント管理者であり、Entra ID 側で必要な権限を持っている必要があります。

つまり、マルチテナント認証オプションに依存する既存スクリプトは2024年9月9日以降この変更の影響を受けるということです。

既存のスクリプトはどうなる?

シングルテナントアプリケーションの登録により認証が変更された後でも既存のスクリプトは動作します。認証/接続セクションを更新する必要があるかもしれませんが、どのコマンドレット/コマンドも同じように動作します。

インストールとアプリの登録

さて、シングルアプリケーションとしての登録方法について説明していきましょう。PnP Management Shell に関しては、Microsoft Community Learning グループがすでに YouTube に「Getting started with PnP PowerShell - Installation and app registration」としてインストールおよび登録方法についてビデオ解説しています。英語のみです。詳しくデモ付きで説明されているので、しっかり閲覧して手順を確かめるようにしましょう。CLIの方は Coming soon だそうです。


YouTube: Getting started with PnP PowerShell - Installation and app registration

ここからはビデオを見る前にどんな手順になるのかを概略説明しておきましょう。基本手順は次の通り。

  1. PnP Management Shell モジュールのインストール (インストールしていなければ)
  2. Entra ID への App Only アプリの登録
  3. インタラクティブ ログイン用の登録

なお、使用する PnP Managment Shell は 2.10以降が必要です。

インストール

PnP Management Shell モジュールをインストールしてない場合は install-module コマンドを実行します。インストールには PowerShell 7.2 以降が必要です。20240906_162646

必要に応じて -Force オプションを指定して実行してください。

20240906_162953

その他の詳細は下記のリンク先を参照してください。

Installing PnP PowerShell | PnP PowerShell

Entra ID へのアプリケーションの登録

Entra ID へのアプリ登録の詳細は下記に掲載されています。日本語版はありませんので必要があれば日本語に翻訳して読む必要があります。

Register an Entra ID Application to use with PnP PowerShell | PnP PowerShell

以降は主要なポイントのみピックアップしていきます。

非インタラクティブなログイン

接続時に非インタラクティブなログインを行う場合は、Register-PnPEntraIDApp コマンドを使って新たにシングル テナント アプリケーションを作成します。※Register-PnPEntraIDApp は Register-PnPAzureADApp の別名です。コマンドを調べる際には最終的にRegister-PnPAzureADAppの説明ページにたどり着きます。

Register-PnPAzureADApp | PnP PowerShell

たとえば次のコマンドを実行します。

Register-PnPEntraIDApp -ApplicationName <アプリ名> -Tenant <テナント名> -Interactive

このコマンドはアプリ登録時に実行パスに証明書(pfx, cer)を生成します。接続時の認証方法はいくつもありますが、この場合はサービスに続する際にこの証明書を使ってサインインすることも可能です。これによりインタラクティブにユーザー認証の情報を毎回渡す必要がなくなります (Non interactive Authentication)。またアプリのみのコンテキストとしての登録となり、スクリプトはユーザーの介入なしに実行できます。つまり、アプリに対して権限を付与すれば実行ユーザーがサイトに対してアクセス権限を持っていなくても良いということになります。

なお、管理者がユーザーにかわって作成した場合は、pfx をユーザーに渡したうえで次のように pfx をインポートしてもらう必要があります。

Import-PfxCertificate -FilePath "path\to\certificate.pfx" -CertStoreLocation Cert:\CurrentUser\My

インタラクティブログイン

接続の度にインタラクティブログインする場合はアプリ登録時に Register-PnPEntraIDAppForInteractiveLogin コマンドを使用してアプリを登録します。この場合は委任ログインとなります。ユーザーが持っているアクセス権限に基づいて操作は制限されます。

Register-PnPEntraIDAppForInteractiveLogin | PnP PowerShell

アクセス権限

基本的には Entra ID アプリケーションに対して最低限必要な権限を付与することが強く推奨されています。たとえば、Register-PnPEntraIDAppを上記のコマンド通りに実行すると次のように必要な権限が要求されました。

20240910_135521

登録されたアプリでアクセス権限を改めて確認すると次の通りであり、基本的にアプリに対してフル権限が付与されます。

  • Microosft Graph 
    • Group.ReadWrite.All
    • User.ReadWrite.All
  • SharePoint
    • AllSites.FullControl
    • Sites.FullControl.All
    • User.ReadWrite.All


20240910_140909

Register-PnPEntraIDApp コマンドおよびResister-PnPEntraIDAppForInteractiveLogin では既定の制限された権限が付与されますが、特定の権限に明示したい場合は次のようなパラメーターを指定できるようになっています。

  • SharePointApplicationPermissions
  • SharePointDelegatePermissions
  • GraphApplicationPermissions
  • GraphDelegatePermissions

Client ID

登録時に最後に表示される Client ID は接続のたびに指定することになるので控えておきましょう。なお、Client ID は接続のたびに必要になるため、これが煩わしいようならシステム環境変数として登録しておくようにしましょう。手順は次のリンク先に詳しく書かれています。

Set a default Client ID | PnP PowerShell

ちなみに、先に紹介した YouTube の手順では$env:ENTRAID_APP_ID = "XXX" というような環境変数を使っていますが、これは当該セッションで使う一時的なもので永続的なものではありませんので注意してください(この辺はてっちゃん(@techan_k)さんに別途、情報提供いただきました。ありがとうございます!)。

登録されたアプリの確認

コマンド実行後は Entra ID にアプリ登録が無事に登録されていることがわかります。接続時に必要な クライアントIDも確認できます。

 

20240906_173834

接続

では接続してみましょう。次のように証明書を使う場合は、非インタラクティブ認証を利用できます。接続先は任意のSharePoint サイトのURLなどです。

connect-PnPOnline -Url <テナント>.sharepoint.com -ClientID <クライアントID> - CertificatePath <証明書(pfx)へのパス>

インタラクティブログインの場合は、次のように指定します。

connect-PnPOnline -Url <テナント>.sharepoint.com -ClientID <クライアントID> -Interactive

他にも特定のデバイスやブラウザーを指定するなど複数の認証方法があります。詳しくは下記のリンク先を確認するようにしてください。

Authentication | PnP PowerShell

関連情報

2024年9月 6日 (金)

Adobestock_261207157

2024年8月22日付で次の更新機能がアナウンスされました。

  • 受信者への取り消し通知のオプション
  • 取り消し可能なメッセージ世代の最大値
  • 外部ラウンド トリップルーティング

Exchange Online Message Recall Updates - Microsoft Community Hub

受信者への取り消し通知のオプション

これまで組織内のユーザー宛のメールは送信主が相手に知らせることなく送信済みメールをこっそりと取り消すことができていました。とはいえ、一度、受けとったことを目にしているユーザーもしくは一度目を通したユーザーにとっては「あれ、あったはずのメールがない!」ということになり混乱を招くこともあったのです。

そんな背景から、新たにテナント管理者は取消し通知を宛先に指定したユーザーに対して有効にできるようになりました。次の2つのいずれかのオプションを指定できます。

  • 全ての取り消されたメッセージ
  • 受信者が読んだ取り消したメッセージのみ

要するに全社はすべての送信済みメールに対して取り消したことを知らせる。後者は読んだ人にだけ、「あっ、あのメール取り消しましたからね。もうないんですよ」という旨を知らせることができるわけです。

この設定は PowerShellコマンドからも実行できますが、Exchange 管理センターから確認するのがわかりやすいでしょう。まず、[設定]>[メールフロー]の順にアクセスします。

20240904_150431

次に表示される画面から「メッセージの取り消し」セクションにある “受信者のリコール アラートを有効にする” をオンにします。この時に「すべてのリコール済みメッセージ」または「受信者によって読み取られた取り消されたメッセージの場合のみ」のいずれかを指定します。あとは、「保存」を押下するだけです。この設定変更は以上の設定は1時間ほど反映されるまで時間がかかるそうです。

20240904_150444

メッセージを取り消す

では、送信済みのメール(組織内宛て)をメッセージ取り消してみます。

20240904_171657

しばらくすると送信対象者に取り消しを知らせるメッセージが届きます。

20240906_204254

取り消し可能なメッセージ世代の最大値

ちなみに、上記設定の下にある「これより古いメッセージの取り消しを送信者に許可しない」オプションでは、取り消しが可能な送信後の日数を指定できるようになっています。既定値は 365です。最低5分~最大10年まで指定できます。

20240906_201842

外部へのラウンド トリップルーティングのサポート

設計上、メッセージの取り消しは Exchange Online のサービス境界外へと送信されたメッセージの取り消しには対応していません。しかし、一部の管理者は、テナント内のメール(送信者と受信者が同じテナントにある場合)を Exchange Online からサードパーティのサービスまたはオンプレミスのシステムに転送して追加処理を行った後、再び Exchange Online に転送して配信しています。従来では、このシナリオでは取り消しは失敗していました。

ですがアップデートにより現在は外部を経由して Exchange Online に戻って配信されるテナント内メッセージの取り消しもできるようになったそうです。

2024年8月31日 (土)

Adobestock_501850527

Microsoft 365 ユーザーは、Outlook on the web と Outlook for Windows で音声入力によるメール作成機能が利用できるようになりました。Word にはすでにディクテーション機能がありますが、似た使い勝手になっています。ちなみに、この機能は Microsoft Azure Speech Services を利用しています。

Improved user experience for Dictate in new Outlook for Windows and Outlook for the web (microsoft.com)

50以上の言語をサポートしており、日本語もサポートされています(プレビューではありません)。本文にカーソルを挿入した状態でコマンドバーから「ディクテーション」にアクセスすることで音声入力を開始できます。

20240831_102848

ディクテーションはすぐに始まりますが、設定を変更したい場合は歯車のアイコンをクリックします。20240831_111501_2

入力言語ははじめは英語になっているので、表に応じて「日本語」に変更するようにしましょう。20240831_102945

他にもオプションとしてマイク デバイスの変更や句読点の自動挿入の有効化、不適切な語句をフィルター(既定でオン) などがあります。

20240831_104450

このように音声入力ができるようになると思考を止めることなく書き留めていけるのは魅力的ですね。もちろん、話し言葉と書き言葉は違うので後から修正する必要性はでてきます。そのあたりは Copilot for Microsoft 365 があれば AI を使って修正などもできるので、こうした組み合わせができると非常に効率的だと思います。

なお、音声入力を使う場合は、より正確な音声認識をするためにヘッドセットを用意することが推奨されています。

ちなみに、プライバシーの観点から入力された音声データをMicrosoft が蓄積することないとのことです。

2024年7月29日 (月)

Adobestock_732437419

2024年7月現在、Microoft 365 管理センターからテナント管理者は、ユーザーのパスワードをリセットする際にメールで送信できる機能があります。具体的には「サインイン情報を自分にメールで送信」オプションです。

20240729_191530

この機能がセキュリティ強化のため2024年8月30日以降廃止(削除)されます。その代わり、「印刷」オプションが利用できるようになりユーザーアカウントの詳細をPDFに保存して、安全な方法でユーザーと共有できるようになります。

続きを読む »
2024年7月20日 (土)

タイトルにあるよう Microsoft 365 開発者プログラムのサブスクリプションへの参加条件が変更されています。

※2024年1月にアナウンスがあったため、すでにご存じの方も多いかもしれませんが、改めてブログに記録しておこうと思います。

Microsoft 365 開発者プログラムとは?

Microsoft 365 E5 Developer のサブスクリプションを取得することで、開発目的での Microsoft 365 に関するソリューション開発を支援するためのプログラムです。運用テナントとは別に取得し、開発者の裁量で管理設定などを行えるので、開発者にとっては運用環境における組織制約にとらわれずに開発を進められるメリットがあります。

Excel, Outlook, Word や PowerPoint などの Webアドイン、SharePoint, Teams, Microsoft Graph などを利用できます。

FAQにも書かれていますが、このサブスクリプションに含まれるものは次の通りです。

  • Avatars for Teams
  • Immersive spaces in Teams
  • Microsoft Entra ID P1
  • Microsoft Entra ID P2
  • Azure Advanced Threat Protection
  • Azure Information Protection Premium P1
  • Azure Information Protection Premium P2
  • Customer Lockbox
  • Exchange Online (Plan 2)
  • Flow for Office 365
  • Information Protection for Office 365 - Premium
  • Information Protection for Office 365 - Standard
  • Microsoft Entra Rights
  • Microsoft Azure Multi-Factor Authentication
  • Microsoft Cloud App Security
  • Microsoft Forms (Plan E5)
  • Microsoft Intune
  • Microsoft MyAnalytics (Full)
  • Microsoft Planner
  • Microsoft StaffHub
  • Microsoft Stream for O365 E5 SKU
  • Microsoft Teams
  • Mobile Device Management for Office 365
  • Microsoft Purview eDiscovery (Premium)
  • Office 365 Advanced Security Management
  • Office 365 Advanced Threat Protection (Plan 1)
  • Office 365 Advanced Threat Protection (Plan 2)
  • Office 365 Privileged Access Management
  • Office 365 ProPlus
  • Office Online
  • Phone System
  • Power BI Pro
  • PowerApps for Office 365 Plan 3
  • SharePoint Online (Plan 2)
  • Skype for Business Online (Plan 2)
  • Sway
  • To-Do (Plan 3)
  • Whiteboard (Plan 3)
  • Yammer Enterprise

Power Automate に関しては含まれていない機能もありますし、Power BI に関しても Power BI Pro のライセンスのみが含まれており、Premium は含まれていません。というように大事なことが FAQ に多く書かれていますので利用予定の方は必ず確認しておくようにしておきましょう。

サブスクリプションの条件の変更

従来は Microsoft 365 開発者プログラムは誰でも無料でサインナップできるようになっていました。このことは下記の記事を見てもわかります。

Start your journey to becoming a Microsoft 365 developer - Microsoft 365 Developer Blog

SharePoint Framework 開発などでも自分専用のテナントを手軽に取得できるとあって、利用する方も多かったと思います。無償とはいえ、2019年4月以降、60~90日ごとに定期的に更新されるようになっており、その間に利用を続けていれば期限なく利用できますが、しばらく全くテナントを使っていないような場合は更新がされず、テナントが削除されることになります。ちなみに、取得できるのは1人1テナントです。※(訂正)電話番号で識別するので1電話番号につき1テナントになるということでした。

これが、現在、タイトルにある通り、このプログラムへの参加条件が変更されたことがアナウンスされました。元の記事は2024年1月25日付のものですが、2024年2月に内容の一部がアップデートされています。

Latest updates to the Microsoft 365 Developer Program

記事によれば、現時点ではMicrosoft 365 開発者サブスクリプションへのアクセスは、Visual Studio Enterprise の有効なサブスクリプションを持つ開発者または組織に限定されるとのこと。この場合は有効期限は Visual Studio サブスクリプションの有効期限に準ずることになるそうです。この条件を満たしていれば追加費用なくこのプログラムに参加できるとのこと。

また、次の Microsoft AI クラウドパートナープログラム参加者は開発者向けサブスクリプションへのアクセスを許可するリストに追加するために、Microsoft パートナーに問い合わせるように書かれてもいます(出典)。

  • Azure Expert MSP
  • Legacy Gold/Silver
  • Managed Partners
  • Microsoft Action Pack
  • Partner Launch Benefits
  • Partner Success Core Benefits
  • Partner Success Expanded Benefits
  • Solutions Partner
  • Specialization Partner
  • Premier or Unified Support plan members

このことは、Microsoft 365 Developer プログラムへのサインアップのページにも記載されるようになったようです。

20240720_195304

(追記) 要は、Visual Studio の当該サブスクリプションがなくても Developer プログラム参加資格を満たすアカウントであれば取得はできるということですね。で、この場合は60~90日のアクティビティベースの更新となる。

必要なサブスクリプションの詳細は先に挙げた FAQ に書かれているので確認してください。

サブスクリプションの資格がないならどうする?

冒頭に紹介したブログでは「サブスクリプションの資格がなければ、別途シングルライセンスの Microsoft 365 プランを購入し、開発用に構成する必要があります。この場合はアドオンとして Copilot のライセンスも購入できます。」といった旨で書かれています。

ということで、買いましょう、だそうです。

すでに持っているけれどどうなる?

ただし、すでにサブスクリプションを持っているメンバーはこの変更は受けません。従来通り60~90日間のアクティビティに従って更新が許可されるかどうか決まるようです。

以上、備忘録でした。

続きを読む »