Commerce Serverのリソース セキュリティ コマンドレット

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

Commerce Serverのリソース データベースのセキュリティ保護は、CmdLetの導入により簡単になりました。SQL Serverロールの一覧を確認し、アプリ プール ユーザーを適切なロールに追加する必要はなくなりました。現在、各リソースデータベースを保護するための一連のCmdLetがあり、ユーザーを追加するロールに関する混乱を減らしています。

管理データベースの権限

ユーザーに管理権限を付与するには、次のCmdLetを使用します。管理権限は、リソースに対する読み取りおよび書き込みアクションとして定義され、Sitecoreのコンテンツ管理サーバーで実行されるオーサリング アクティビティと似ています。これらのアクティビティは、Content Deliveryサーバーで実行される読み取り専用アクティビティではなく、SitecoreのContent Managementサーバーで実行されるオーサリング アクティビティと似ています。

Content Managementサーバーのアプリ プールなど、ユーザーのサイト内のすべてのリソースに管理アクセス許可を付与するには、次のコマンドを実行します。

Grant-CSManagementPermissions –Name MySiteName –Identity $siteAppPoolUser

Commerce Server Webサービスのアプリケーション プールなど、特定のリソースに管理アクセス許可を付与するには、次のいずれかのコマンドを使います。

Grant-CSCatalogManagementPermissions –Name MySiteName –Identity $catalogWSAppPoolUser
Grant-CSProfilesManagementPermissions –Name MySiteName –Identity $profilesWSAppPoolUser
Grant-CSMarketingManagementPermissions –Name MySiteName –Identity $marketingWSAppPoolUser
Grant-CSOrdersManagementPermissions –Name MySiteName –Identity $ordersWSAppPoolUser

すべてのサイト リソースに対するユーザーのデータベース権限を取り消すには、次のコマンドを使用します。

Revoke-CSOrdersManagementPermissions –Name MySiteName –Identity $ordersWSAppPoolUser

特定のリソースに対するユーザーのデータベース権限を取り消すには、次のコマンドを使用します。

Revoke-CSManagementPermissions –Name MySiteName –Identity $siteAppPoolUser
Revoke-CSCatalogManagementPermissions –Name MySiteName –Identity $catalogWSAppPoolUser
Revoke-CSProfilesManagementPermissions –Name MySiteName –Identity $profilesWSAppPoolUser
Revoke-CSMarketingManagementPermissions –Name MySiteName –Identity $marketingWSAppPoolUser

データベース権限のエクスポート

環境によっては、SQL Serverに対してCmdLetを実行できない場合や、適用されるアクセス許可をより詳細に制御したい場合があります。次のCmdLetを使用して、特定のユーザーにロールを適用するために使用されるSQLスクリプトをエクスポートし、必要に応じてこれらのスクリプトを変更できます。

Export-CSManagementPermissions -Name MySiteName -Identity "Domain\User" -Folder "C:\Scripts\CSPermissions\"
Export-CSRuntimePermissions -Name MySiteName -Identity "Domain\User" -Folder "C:\Scripts\CSPermissions\"

ランタイム データベース権限

ユーザーにランタイム権限を付与するには、次のCmdLetを使用します。ランタイム権限は、リソースに対する読み取り専用アクションとして定義され、Content Managementサーバー上の読み取り専用アクティビティとは異なり、SitecoreのContent Deliveryサーバーで実行される配信アクティビティと似ています。このモードでは、新しいプロファイルと注文データを書き込むことができます。

Content Deliveryサーバーのアプリ プールなど、ユーザーのサイト内のすべてのリソースにランタイム アクセス許可を付与するには、次のコマンドを実行します。

Grant-CSRuntimePermissions –Name MySiteName –Identity $siteAppPoolUser

Content Delivery環境のCommerce Server Webサービスのアプリケーション プールなど、特定のリソースに対するランタイム アクセス許可を付与するには、次のいずれかのコマンドを実行します。

Grant-CSCatalogRuntimePermissions –Name MySiteName –Identity $catalogWSAppPoolUser
Grant-CSProfilesRuntimePermissions –Name MySiteName –Identity $profilesWSAppPoolUser
Grant-CSMarketingRuntimePermissions –Name MySiteName –Identity $marketingWSAppPoolUser
Grant-CSOrdersRuntimePermissions –Name MySiteName –Identity $ordersWSAppPoolUser

ユーザーのデータベース権限を取り消すには、次のコマンドを使用します。

Revoke-CSRuntimePermissions –Name MySiteName –Identity $siteAppPoolUser

特定のリソースに対するユーザーのデータベース権限を取り消すには、次のコマンドを使用します。

Revoke-CSCatalogRuntimePermissions –Name MySiteName –Identity $catalogWSAppPoolUser
Revoke-CSProfilesRuntimePermissions –Name MySiteName –Identity $profilesWSAppPoolUser
Revoke-CSMarketingRuntimePermissions –Name MySiteName –Identity $marketingWSAppPoolUser
Revoke-CSOrdersRuntimePermissions –Name MySiteName –Identity $ordersWSAppPoolUser

データベース権限のエクスポート

環境によっては、SQL Serverに対してCmdLetを実行できない場合や、適用されるアクセス許可をより詳細に制御したい場合があります。次のCmdLetを使用して、特定のユーザーにロールを適用するために使用されるSQLスクリプトをエクスポートします。その後、必要に応じてこれらのスクリプトを変更できます。

Export-CSManagementPermissions -Name MySiteName -Identity "Domain\User" -Folder "C:\Scripts\CSPermissions\"
Export-CSRuntimePermissions -Name MySiteName -Identity "Domain\User" -Folder "C:\Scripts\CSPermissions\"

Webサービスのアクセス許可

Commerce Server Webサービスは、Windows認証ストアを使って、Webサービスに対して誰がどのようなアクションを実行できるかを管理します。各Webサービスには、権限を格納する認証ストアxmlファイルがあります。ストアはWindows承認マネージャー (AzMan.msc) を使用して管理しますが、次のCmdLetを使用してユーザーを追加できるようになりました。

各CmdLetは、適切な承認ストアxmlファイルを指し、ユーザーを追加するユーザー/グループとロールが指定されている必要があります。潜在的なロールの一覧は、Windows承認マネージャー (AzMan.msc) でxmlファイルを開くことで見つけることができます。

Grant-CSCatalogWebServicePermissions -File"c:\inetpub\wwwroot\CatalogWebService\CatalogAuthorizationStore.xml" -Identity "Domain\User" -Role "Administrator"
Grant-CSProfilesWebServicePermissions -File"c:\inetpub\wwwroot\CatalogWebService\CatalogAuthorizationStore.xml" -Identity "Domain\User" -Role "ProfilesAdministrator"
Grant-CSOrdersWebServicePermissions -File"c:\inetpub\wwwroot\CatalogWebService\CatalogAuthorizationStore.xml" -Identity "Domain\User" -Role "OrdersAdministrator"
Grant-CSMarketingWebServicePermissions -File"c:\inetpub\wwwroot\CatalogWebService\CatalogAuthorizationStore.xml" -Identity "Domain\User" -Role "MarketingAdministrator"

CmdLetsの詳細については、次のコマンドを実行できます。

Get-Help –detailed CmdLet-Name

Commerce Server WebサービスのCmdLets

以前は、IISでCommerce Server WebサービスをセットアップするにはPuPパッケージが唯一の方法でしたが、現在は他のオプションも用意されており、どちらもWeb配置パッケージを使用します。

最初のオプションは、各サブシステムのWeb配置パッケージを使用し、IIまたは標準のIIS CmdLetsを使用してデプロイすることです。Commerce Serverのインストール フォルダ内には、新しいWebServicesディレクトリC:\Program Files (x86)\Commerce Server 11\WebServices\があり、各サブシステムのWebDeployパッケージが含まれています。

2つ目のオプションは、次のCommerce Server CmdLetを使用することです。このCmdLetは、選択したリソースに基づいて適切なWebDeployパッケージを選択し、既存のIISサイトの下の新規または既存の仮想ディレクトリに展開します。また、このCmdLetは、サービスのweb.configを正しいCommerce Serverサイト名で自動的に更新します。

New-CSWebService -Name MySiteName -Resource Catalog -IISSite CSServices

このCmdLetで指定できる追加の省略可能なプロパティがあります。詳細については、次のコマンドを実行します。

Get-Help –detailed CmdLet-Name

Commerce ServerアプリケーションのCmdLets

Commerce Serverアプリケーションは、通常、Commerce Serverサイトを使うWebサイト、Webサービス、またはその他の形式のWebアプリケーションです。Commerce Serverサイトに登録すると、リソース内のデータが変更されたこと、およびキャッシュを削除してリソースを再読み込みする必要があることをアプリケーションに通知できます。Commerce Serverにはキャッシュ削除通知APIが追加されたため、アプリケーションを登録する必要はありません。これらのCmdLetは下位互換性のために必要であり、新しいサイトを開発するときには必要ありません。

既存のすべてのアプリケーションの一覧を取得するには、次のコマンドを実行します。

Get-CSSiteApplications

新しいアプリケーションを追加するには、次のコマンドを実行します。

Add-CSSiteApplication -Name "MySiteName" -Application "MySite_Application"

アプリケーションを削除するには、次のコマンドを実行します。

Remove-CSSiteApplication -Name "MySiteName" -Application "MySite_Application"

Webサイトなどのアプリケーションは、複数のサーバー上にインスタンスを持つ可能性があるためです。これらのサーバーは、アプリケーションの下に登録できます。新しいサーバーを追加するには、次のコマンドを実行します。

Add-CSSiteApplicationServer -Name "MySiteName" -Application "MySite_Application" -WebServerMachine "MyServerName”

サーバーを削除するには、次のコマンドを実行します。

Remove-CSSiteApplicationServer -Name "MySiteName" -Application "MySite_Application" -WebServerMachine "MyServerName”

サイト リソースやグローバル リソースなどのアプリケーションには、取得および設定できるプロパティが含まれています。アプリケーションのプロパティの完全な一覧を取得するには、次のコマンドを実行します。

Get-CSSiteApplicationProperties -Name "MySiteName" -Application "MySite_Application"

特定のプロパティ値を取得するには、次のコマンドを実行します。

Get-CSSiteApplicationProperty -Name "MySiteName" -Application "MySite_Application" –PropertyName “b_SyncLogFile”

プロパティ値を設定するには、次のコマンドを実行します。

Set-CSSiteApplicationProperty -Name "MySiteName" -Application "MySite_Application" –PropertyName “b_SyncLogFile" -PropertyValue $false

これらのCmdLetで指定できる追加の省略可能なプロパティがあります。詳細については、次のコマンドを実行します。

Get-Help –detailed CmdLet-Name

Commerce Serverグローバル リソース コマンドレット

グローバルリソースは、1つのサイトだけに属するのではなく、サイト間で共有できるリソースです。以前は、Commerce Serverには多数のグローバル リソースがありましたが、現在はプロファイルのみを処理する必要があります。グローバルリソースで使用できるCmdLetは、通常のリソースのCmdLetと似ています。違いは、グローバルリソースを直接作成することはできず、プロファイルリソースを作成するAdd-CSProfilesResourceを使用してのみ作成できることです。

グローバルリソースのリストを取得するには、次のコマンドを実行します。

Get-CSGlobalResources

グローバルリソースを削除するには、次のコマンドを実行します。

Remove-CSGlobalResource “Profiles(MyServer_MySiteName_profiles)

デフォルトでは、removeコマンドは関連付けられたデータベースを削除しません。同時に削除するには、DeleteDatabasesパラメータを追加します。

Remove-CSGlobalResource -ResourceName “Profiles(MyServer_MySiteName_profiles) -DeleteDatabases $true

すべてのグローバルリソースには、リソースの実行方法を構成できるプロパティのコレクションが含まれています。これらのプロパティは、次のCmdLetを使用して操作できます。

グローバルリソースのすべてのプロパティのリストを取得するには、次のコマンドを実行します。

Get-CSGlobalResourceProperties -ResourceName “Profiles(MyServer_MySiteName_profiles)

特定のプロパティ値を取得するには、次のコマンドを実行します。

Get-CSGlobalResourceProperty -ResourceName “Profiles(MyServer_MySiteName_profiles) -PropertyName “s_BizDataStoreConnectionString”

プロパティ値を設定するには、次のコマンドを実行します。

Set-CSGlobalResourceProperty -ResourceName “Profiles(MyServer_MySiteName_profiles) -PropertyName “s_BizDataStoreConnectionString” -PropertyValue “my_profiles_db_connection_string”

これらのCmdLetで指定できる追加の省略可能なプロパティがあります。詳細については、次のコマンドを実行します。

Get-Help –detailed CmdLet-Name

一般的なCmdLetの注意事項

データベースの作成と認証のメカニズム

デフォルトでは、データベースを作成するすべてのCmdLetは、データベースを作成するサーバーと使用する認証メカニズムのテンプレートとして、MSCS_Adminデータベースの接続文字列を使用します。たとえば、Windows認証やSQL認証などです。認証メカニズムがWindows認証の場合は、CmdLetを実行しているユーザーの資格情報が使用されます。認証メカニズムがSQL認証の場合は、接続文字列のユーザー名とパスワードが使用されます。

Windows認証が使用されており、CmdLetを実行しているユーザーにターゲットSQL Serverにデータベースを作成するアクセス許可がない場合は、ターゲットSQL Serverにデータベースを作成するアクセス許可を持つユーザーとして新しいPowerShellインスタンスを実行し、CmdLetを再実行する必要があります。

SQL認証が使用されており、MSCS_Adminデータベースの資格情報にターゲットSQL Serverでデータベースを作成する権限がない場合は、–SqlUserNameパラメータと –SqlUserPasswordパラメータを使用して、適切な権限を持つユーザーを指定できます。

Azure SQL

Azure SQL Serverに対してデータベースを作成する場合は、次のパラメーターを使用して、作成されたデータベースの正しいサイズとエディションを取得するように指定できます。

  • Edition <string>: 作成するSQL Azureデータベースのエディションを指定します (例: Basic、Standard、Premiumなど)。

  • MaxSize <string>: 作成するSQL Azureデータベースの最大サイズを指定します (例: 500 MB、5 GB、500 GBなど)。

  • ServiceObjective <string>: 作成するSQL Azureデータベースのサービス目標を指定します。基本、S3、P6など。値を指定した場合、ElasticPoolパラメーターは指定できません。

  • ElasticPool <string>: データベースが追加されるSQL Azureエラスティック プールの名前を指定します。値を指定した場合、ServiceObjectiveパラメーターは指定できません。

  • SqlTimeout <int>: SQLコマンドのタイムアウトを秒単位で指定します。これは、オンプレミスからCmdLetを実行している場合に便利です。

この記事を改善するための提案がある場合は、 お知らせください!