こんにちは、SxSメンバーです。
SharePoint PnP PowerShellを使用する際、ログイン後もサブサイト毎に認証画面が表示されてしまいます。
認証画面がサブサイト毎に表示されないようにする方法はご存知でしょうか。
SharePoint PnP PowerShellを利用した際によくある事例について紹介させていただきます。
通常SharePoint PnP PowerShellからMFAを有効したアカウントでログインする場合、下記の2種類方法があります。
『1.-UseWebLoginを使用して、接続する方法』
$SiteURL = “https://crescent.sharepoint.com”
Connect-PnPOnline -Url $SiteURL -UseWebLogin
『2.セキュアクライアントアプリを登録した上で、クライアントアプリで接続する』
$SiteURL = “https://crescent.sharepoint.com”
Connect-PnPOnline -Url $SiteURL -AppId “アプリID”
※多要素認証 (MFA) とは、ユーザーの ID を、複数の信用情報を要求することにより検証するセキュリティシステムです。
このうち、『2.クライアントアプリで接続する』を行った場合、以下のメッセージが表示されることがあります。
この場合’AppId’と’AppSecret’にはどうすれば良いでしょうか?
*警告: パラメーター ‘AppId’ は最新ではありません。Use ClientId instead
*警告: パラメーター ‘AppSecret’ は最新ではありません。Use ClientSecret instead
エラーメッセージの’AppId’は’クライアントID’、’AppSecret’は’クライアントシークレット’です。
MFAを有効化したユーザーからSharePoint Onlineへアクセスする際、ブラウザーを起動するのは標準の動きとなります。
それを回避したい場合、下記のアプリ専用トークンを使用して、アプリにテナントに対して管理権限を割り当てます。
クライアントIDとクライアントシークレットを使用して、SharePointへ接続できます。
クライアントIDとクライアント シークレットを作成する手順を下記にご案内いたします。
1.サイトコレクション管理者からブラウザーで下記のURLを呼び出します。
https://{tenant}.sharepoint.com/_layouts/15/appregnew.aspx
2.アプリ作成画面が表示されるので、クライアント ID とクライアント シークレットにて、それぞれ [生成] をクリックします。
タイトルに任意の名前をしています
アプリドメインリダイレクト先のURLにダミー値を記載します
3.「作成」をクリックします。
4.「アプリ ID が正常に作成されました。」が表示され、下の内容をコピーして、後で使うため、TXTとかに貼り付けて、「OK」をクリックします。
5.SharePointの全体管理者からSharePointの管理サイトへ下記のURLへサクセスします。
https://{tenant}-admin.sharepoint.com/_layouts/15/appinv.aspx
6.アプリの権限付与画面が表示されるので、「アプリ ID:」に生成されたクライアントID番号を入力し、「参照」をクリックします。
7.「タイトル:」と「アプリ ドメイン:」と「リダイレクト先のURL」が自動的に入力されたら。大丈夫です。
8.「権限の要求 XML:」にしたの内容を貼り付けて、「作成」をクリックします。
※この権限はテナント全体フル権限となりますので、非常に強力です。しかし、クライアント ID やシークレットとなる情報に尽きましては、管理者アカウント・パスワードと同様、厳重に管理してくださいますようお願いします。
9.「(アプリ名) を信頼しますか?」が出てきますので、「信頼する」をクリックします。
10.SharePoint PnP PowerShellで以下のコマンドを実行し接続します。
Connect-PnPOnline -Url https://yoursite -ClientId “クライアントID” -ClientSecret “クライアント シークレット”
ご参考になれば幸いでございます。
弊社のSxSサービスは、SharePointに関するお問い合わせが回数無制限のサポートサービスです。
もし興味がありましたらお気兼ねなく「お問合せ」からご連絡下さい。