Microsoft 365 の管理者権限において、 MFA を強制適用するようになるなど 2026 年はセキュリティ強化に舵が切られることが見て取れる状況となっています。
そのような中、 SharePoint 関連の PowerShell コマンドレットにおいても、認証方法の変更に関する話が出てきました。
SharePoint Online の Management Shell において、 MFA が強制となったテナントにおいてもアプリのみ証明書認証が行えるようになる変更が入っているようです。
MFA が強制されるようになった環境においては、 PowerShell でのアクセスであってもモダン認証を通しアクセスさせるような動きが必要になるのですが、これが緩和されるという内容となります。
緩和といっても、証明書が必要な動きとなるため、 MFA に準する強度が生まれるのは間違いないでしょう。
まずは Azure Entra ID にてアプリケーションの登録から始めます。以下の Learn を使ってアクセス許可を作っていきます。
いまの SharePoint Online はわかりにくいんですが Microsoft Graph のアクセスとなるため、この API アクセス許可を与えていく形となります。
特に PowerShell でのアクセスならアプリケーションの許可を選択してから Permission を選択する流れですね。

あとは証明書の登録ですが、上記の Learn にも自己証明の作り方が書かれているのですがうまく動きませんでした。
また、アルゴリズムとしても SHA256 を選んでおきたいところもあるので、指定をいろいろと変えて作っておくのが良いでしょう。
DnsName の証明書の名前と NotAfter の期限を決め以下のコマンドレットを流せば cer ファイルが作成されます。(公開鍵ですね。)
$mycert = New-SelfSignedCertificate -DnsName "contoso.com" -CertStoreLocation "cert:\CurrentUser\My" -NotAfter (Get-Date).AddYears(1) -HashAlgorithm SHA256 -KeyAlgorithm RSA -KeyLength 2048
$ExportCerFilePath = Join-Path -Path $([System.IO.Path]::GetTempPath()) -ChildPath "SelfSignedCertificate.cer"
$mycert | Export-Certificate -FilePath $ExportCerFilePath

上記のコマンドレットの場合 Temp 領域にファイルが作られるので、これを Entra ID にアップロードしましょう。

作成した Entra ID アプリの証明書とシークレットから証明書のアップロードを押していきます。

ここから先ほど作成した cer ファイルをアップロードすれば完了です。

あとはこの証明書(と秘密鍵)を活用して SharePoint Online にアクセスするのですが、 pfx ファイルを出力してアクセスする方法もありますが、証明書ストアからアクセスするほうが安全です。
以下の Learn 例 9 を参照するとよいですね。

先ほどの PowerShell では cert:\CurrentUser\My に置いたので場所を間違えないようにしましょう。
また certmgr から見ることもできます。
不要となった削除するのも忘れずに行いましょう。


ファイルとして pfx を出力したい場合は以下のコマンドレットを先ほどのものと入れ替えて使います。こちらは秘密鍵が付くのでパスワードが必要となるのも忘れないようにしましょう。
$TempPassword = ConvertTo-SecureString -String "pass" -Force -AsPlainText
$ExportFilePath = Join-Path -Path $([System.IO.Path]::GetTempPath()) -ChildPath "SelfSignedCertificate.pfx"
$mycert | Export-PfxCertificate -FilePath $ExportFilePath -Password $($TempPassword)
最初はとっつきにくいのですが、覚えておくと応用が利くため、ぜひ覚えておきたいですね!
音楽:騎馬の舞い