2018年2月 9日 (金)

[SharePoint] Connect-PnPOnline と MFA (多要素認証)

SharePoint Patterns and Practices で公開されている SharePoint PnP PowerShellを使って SharePoint Onlineにアクセスするときのトラブルシューティングを備忘録として記載します。とはいえ、私の環境が少し特殊なので、あくまでもご参考まで。

まず、私の環境がどのように特殊なのかという説明から始めましょう。手持ちの複数の Office 365 テナントにアクセスする必要があるため、Internet Explorerでアクセスしているテナントと EdgeやChromeでアクセスするテナントを分けて利用しています。で Edge や Chrome でアクセスしているアカウントは MFA (多要素認証)を使ってMicrosoft Authenticator を使った認証を組み合わせています。

さてここで Edge でアクセスしている方のテナントに前述の PnP PowerShellで接続したかったのですが、MFA を利用している場合は次のようにコマンドを実行します。

Connect-PnPOnline -Url <サイトのURL> -UseWebLogin

この "UseWebLogin" パラメータが大切で、これを指定することでブラウザーを使ったユーザー認証ができMFAの認証コード送信などができるようになります。しかし、今回これがうまくいかなかった。認証ウィンドウが表示されたかと思うとすぐに閉じ、下記のようなエラーが表示されてしまうのです。

+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Connect-PnPOnline : リモート サーバーがエラーを返しました: (403) 使用不可能
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

2018-02-09_6-04-38

さて、解決策ですが、そもそも認証ウィンドウは IE が起動するようになっている。つまり、すぐ消えたウィンドウはIEが提供しているようです。そのため、まずIEの側をサインアウトします。ただし、サインイン時に"認証情報を継続利用" するように指定していたため、これも消します。キャッシュされている認証情報の削除にはコントロールパネルから "資格情報マネージャー" を起動し https://login.microsoftonline.com/ が対象になっている IE でログインしていた時のアカウント情報を削除します。

ここまでそろえたうえで、上記のコマンドを実行するとうまく MFA を使った認証が通ります。

コメント