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