コネクタの Microsoft Entra に登録されている OAuth 2.0 アプリにサイト固有の SharePoint API FullControl アクセス許可を付与することで、Microsoft SharePoint Online コネクタがサイトとサイトコレクションをクロールできるようにします。
始める前に
互換性のあるバージョンの PowerShell 7.0 がインストールされている必要があります。
ターゲットアプリの権限を変更するには、適切な権限または権限が必要です。
ターゲットアプリは、
Microsoft SharePoint Online外部コンテンツコネクタがソースシステムコンテンツを認証してアクセスできるようにする
Microsoft Entra OAuth 2.0 アプリです。これらの特権と権限は、ターゲットアプリのサイトアクセスを構成するときに使用する認証モデルによって異なります。
- インタラクティブなブラウザベースのログインを使用するには、 Microsoft Entra アカウントに管理権限が必要です。
-
サービスプリンシパル認証を使用するには、
Microsoft Entra管理者によって付与された Sites.FullControl.All
Microsoft Graph API アプリケーションアクセス許可を持つ
Microsoft Entra アプリのサービスプリンシパルが必要です。この
サービスプリンシパルアプリ は、ターゲットアプリとは異なります。次のいずれかのアイテムも必要です。
- 証明書ベースのサービスプリンシパル認証の場合は、PFX 形式のサービスプリンシパルアプリの証明書と秘密キーが必要です。
注:
Java KeyStore (JKS) ファイルにサービスプリンシパルアプリの証明書と秘密鍵のみがある場合は、次の Java keytool コマンドを使用して、そのファイルを PFX 形式に変換できます。
keytool -importkeystore -srckeystore <your-keystore>.jks -destkeystore certificate.pfx -deststoretype PKCS12
-srcalias <your-alias> -deststorepass <your-pfx-password> -destkeypass <your-pfx-password>
このコマンドで、
<your-keystore> と
<your-alias> を既存の JKS ファイルの名前とエイリアスに置き換えます。
your-pfx-password を PFX 出力ファイルに指定するパスワードに置き換えます。
Java keytool ユーティリティの詳細については、「 https://docs.oracle.com/en/java/javase/21/docs/specs/man/keytool.html」を参照してください。
- クライアントシークレットベースのサービスプリンシパル認証には、サービスプリンシパルアプリのクライアントシークレットが必要です。クライアントシークレットがない場合は、 Microsoft Entra アドミニストレーターに問い合わせてください。
必要なロール:なし
このタスクについて
このタスクは、
Microsoft SharePoint Online コネクタに登録された
Microsoft Entra OAuth 2.0 アプリを構成する際に、Sites.FullControl.All 権限ではなく Sites.Selected SharePoint API 権限を指定する場合にのみ必要です。
既定では、ソースシステムアドミニストレーターは、Microsoft SharePoint Online コネクタに登録された Microsoft Entra OAuth 2.0 アプリに Sites.FullControl.All SharePoint API 権限を付与します。このアクセス許可により、コネクタは、すべてのソースシステムサイトとサイトコレクション内のすべてのタイプのコンテンツのコンテンツ、メタデータ、およびセキュリティ情報を読み取ることができます。
組織のセキュリティプラクティスで Sites.FullControl.All 権限の付与が許可されていない場合は、代わりに Sites.Selected SharePoint API 権限を OAuth 2.0 アプリケーションに付与できます。このアクセス許可が付与されると、 Microsoft SharePoint Online コネクタは、OAuth 2.0 アプリに FullControl アクセス許可があるサイトとサイトコレクションのコンテンツ、メタデータ、およびセキュリティ情報のみを読み取ることができます。
ソース システム管理者は、 Microsoft SharePoint Online コネクタでクロールできるようにするサイトまたはサイト コレクションごとに FullControl アクセス許可を付与する必要があります。コネクタがサイトまたはサイト コレクションをクロールできないようにする場合は、そのサイトまたはサイト コレクションに対して以前に付与された FullControl アクセス許可を取り消すことができます。
手順
-
ローカルシステムに SelectedSiteAppPermissionManager PowerShell モジュールをインポートします。
-
Now Support ナレッジベースのKB2741707記事から SelectedSiteAppPermissionManager PowerShell モジュールアーカイブをダウンロードします。
-
ダウンロードしたアーカイブの内容をディレクトリに展開します。
-
PowerShell セッションを開始し、アーカイブの内容を展開したディレクトリに移動します。
-
次の PowerShell コマンドを実行して、最新バージョンの Microsoft Graph PowerShell SDK がインストールされていることを確認します。
Install-Module -Name Microsoft.Graph -Scope CurrentUser
Update-Module -Name Microsoft.Graph -Force -Scope CurrentUser
-
次の PowerShell コマンドを実行して、PowerShell モジュールのパスを表示します。
$env:PSModulePath -split [System.IO.Path]::PathSeparator
-
この PowerShell コマンドを実行して、ダウンロードしたアーカイブから PowerShell モジュールパスの 1 つに SelectedSiteAppPermissionManager モジュールフォルダーをコピーし、 <PowerShell-module-path> をステップ 1.e で報告されたパスの 1 つに置き換えます。
Copy-Item -Path "SelectedSiteAppPermissionManager" -Destination "<PowerShell-module-path>" -Recurse
たとえば、モジュールフォルダーを個人モジュールフォルダーにコピーするには、次のコマンドを実行します。
Copy-Item -Path "SelectedSiteAppPermissionManager" -Destination "$HOME\Documents\PowerShell\Modules" -Recurse
-
次の PowerShell コマンドを実行して、SelectedSiteAppPermissionManager モジュールをインポートします。
Import-Module SelectedSiteAppPermissionManager
-
次の PowerShell コマンドを実行して、SelectedSiteAppPermissionManager モジュールが正しくインポートされていることを確認します。
Get-Module SelectedSiteAppPermissionManager
コマンドは、バージョンやサポートされているコマンドなど、SelectedSiteAppPermissionManager モジュールに関する情報を表示する必要があります。
-
サイト アクセスを構成するときに使用する認証方法に応じて、 SelectedSiteAppPermissionManager\Config ディレクトリにある JSON 形式の構成ファイルの例の 1 つを新しい my-config.json ファイルにコピーします。
- ブラウザーでインタラクティブ認証を使用するには、 app-config-interactive.example.json を my-config.jsonにコピーします。
- クライアントシークレットでサービスプリンシパル認証を使用するには、 app-config.client-secret.example.json を my-config.jsonにコピーします。
- PFX 形式の証明書でサービスプリンシパル認証を使用するには、 app-config.certificate.example.json を my-config.json にコピーします。
-
テキストエディターで、Microsoft Entraアプリの構成に合わせて、my-config.jsonファイル内の JSON オブジェクトリテラルのキーと値のペアを変更します。
| JSON オブジェクトリテラルキー |
値 |
| ServicePrincipal.Authentication.Certificate.Password |
サービスプリンシパル認証に使用される PFX 形式の証明書のパスワード。 このキーと値のペアが必要なのは、パスワード付きの証明書でサービスプリンシパル認証を使用している場合のみです。証明書にパスワードがない場合は、このキーと値のペアを省略します。
タイプ:文字列
|
| ServicePrincipal.Authentication.Certificate.Path |
Microsoft Entra のサービスプリンシパルアプリの証明書と秘密キーが含まれている PFX 形式の証明書ファイルへの相対パス。 このキーと値のペアが必要なのは、証明書でサービスプリンシパル認証を使用している場合のみです。
タイプ:文字列
|
| ServicePrincipal.Authentication.Secret |
Microsoft Entra のサービスプリンシパルアプリのクライアントシークレット。 このキーと値のペアが必要なのは、クライアントシークレットでサービスプリンシパル認証を使用している場合のみです。
タイプ:文字列
|
| ServicePrincipal.Authentication.Type |
サービスプリンシパルに使用する認証のタイプ。 このキーと値のペアが必要なのは、証明書またはクライアントシークレットでサービスプリンシパル認証を使用している場合のみです。
タイプ:選択
サポートされている値は次のとおりです。
- Certificate:PFX 形式の証明書を使用して認証します。
- Secret:クライアントシークレットを使用して認証します。
|
| ServicePrincipal.ClientId |
Microsoft Entra のサービスプリンシパルアプリのアプリケーション (クライアント) ID。 このキーと値のペアが必要なのは、証明書またはクライアントシークレットでサービスプリンシパル認証を使用している場合のみです。
タイプ:文字列
|
| ServicePrincipal.TenantId |
Microsoft Entra のサービスプリンシパルアプリのディレクトリ (テナント) ID。 このキーと値のペアが必要なのは、証明書またはクライアントシークレットでサービスプリンシパル認証を使用している場合のみです。
タイプ:文字列
|
| TargetApp.DisplayName |
Microsoft SharePoint Online コネクタの Microsoft Entra に登録されている OAuth 2.0 アプリの表示名。 このアプリの詳細については、「 外部コンテンツのインデックス作成のための Microsoft SharePoint Online の構成」を参照してください。
タイプ:文字列
|
| TargetApp.Id |
Microsoft SharePoint Online コネクタの Microsoft Entra に登録されている OAuth 2.0 アプリのアプリケーション (クライアント) ID。 このアプリの詳細については、「 外部コンテンツのインデックス作成のための Microsoft SharePoint Online の構成」を参照してください。
タイプ:文字列
|
インタラクティブ認証の構成例:
{
"TargetApp": {
"Id": "your-application-id",
"DisplayName": "Your Application Name"
}
}
PFX 形式の証明書を使用したサービスプリンシパル認証の構成例:
{
"TargetApp": {
"Id": "your-application-id",
"DisplayName": "Your Application Name"
},
"ServicePrincipal": {
"ClientId": "your-service-principal-id",
"TenantId": "your-tenant-id",
"Authentication": {
"Type": "Certificate",
"Certificate": {
"Path": "path/to/certificate.pfx",
"Password": "pfx-password"
}
}
}
}
クライアントシークレットを使用したサービスプリンシパル認証の構成例:
{
"TargetApp": {
"Id": "your-application-id",
"DisplayName": "Your Application Name"
},
"ServicePrincipal": {
"ClientId": "your-service-principal-id",
"TenantId": "your-tenant-id",
"Authentication": {
"Type": "Secret",
"Secret": "your-client-secret"
}
}
}
- オプション:
一括操作で操作するすべての Microsoft SharePoint Online サイトとサイトコレクションの URL を含むサイトリストファイルを作成します。
-
テキストエディターで、「 sitelist.txt」という新しいファイルを作成します。
-
新しい sitelist.txt ファイルに、アクセス許可を表示または変更するすべての Microsoft SharePoint Online サイトとサイト コレクションの URL を 1 行に 1 つずつ入力します。
たとえば、2 つのサイトの権限を一度に表示または変更する場合、ファイルは次のようになります。
https://example.sharepoint.com/sites/site1
https://example.sharepoint.com/sites/site2
-
指定した Microsoft SharePoint Online サイトとサイト コレクションの既存のアプリのアクセス許可を表示するには、次の PowerShell コマンドを実行します。
Get-SharePointAppPermission -SiteUrls "https://example.sharepoint.com/sites/site1","https://example.sharepoint.com/sites/site2" -ConfigFile "./my-config.json"
サイト リスト ファイルがある場合は、
-SiteListFile 引数で指定できます (
-SiteURLs 引数を置き換えます)。
Get-SharePointAppPermission -SiteListFile "./sitelist.txt" -ConfigFile "./my-config.json"
重要: サービスプリンシパル認証を使用している場合は、コマンドラインに -UseServicePrincipal 引数を追加します。
-
指定した Microsoft SharePoint Online サイトとサイト コレクションに FullControl アクセス許可を追加するには、次の PowerShell コマンドを実行します。
Add-SharePointAppPermission -SiteUrls "https://example.sharepoint.com/sites/site1","https://example.sharepoint.com/sites/site2" -ConfigFile "./my-config.json"
サイト リスト ファイルがある場合は、
-SiteListFile 引数で指定できます (
-SiteURLs 引数を置き換えます)。
Add-SharePointAppPermission -SiteListFile "./sitelist.txt" -ConfigFile "./my-config.json"
重要: サービスプリンシパル認証を使用している場合は、コマンドラインに -UseServicePrincipal 引数を追加します。
-
指定した Microsoft SharePoint Online サイトとサイト コレクションから FullControl アクセス許可を削除するには、次の PowerShell コマンドを実行します。
Remove-SharePointAppPermission -SiteUrls "https://example.sharepoint.com/sites/site1","https://example.sharepoint.com/sites/site2" -ConfigFile "./my-config.json"
サイト リスト ファイルがある場合は、
-SiteListFile 引数で指定できます (
-SiteURLs 引数を置き換えます)。
Remove-SharePointAppPermission -SiteListFile "./sitelist.txt" -ConfigFile "./my-config.json"
重要: サービスプリンシパル認証を使用している場合は、コマンドラインに -UseServicePrincipal 引数を追加します。
次のタスク
Microsoft SharePoint Online 外部コンテンツ コネクタによってまだクロールされているサイトまたはサイト コレクションから FullControl アクセス許可を削除すると、コネクタは、それらのサイトまたはサイト コレクションからコンテンツをクロールしようとしたときにアクセス許可アラートをログに記録します。これらのアラートを排除するには、 コネクタ の管理者に、コネクタによってクロールされるサイトのセットから影響を受けるサイトとサイト コレクションを削除または除外するように依頼してください。