---
title: "ワークフローとセキュリティ機能"
slug: "workflow-and-security-features"
abstract: "ワークフローの作成、編集、使用時のセキュリティ機能の概要。また、ユーザーから状態やコマンドを隠す方法もカバーしています。"
---
# ワークフローとセキュリティ機能

Sitecoreはワークフロー固有のアクセス権を3つ定義しています。

-   *Workflow State Delete* ユーザーが現在特定の状態に関連付けられているアイテムを削除できるかどうかを制御します。
-   *Workflow State Write* ユーザーが現在特定の状態に関連付けられているアイテムを更新できるかどうかを制御します。
-   *Workflow Command Execute* システムがユーザーに特定のコマンドを割り当てるかどうかを制御します。

コンテンツアイテムへのアクセス権は、Workboxアプリケーションの動作に影響を与えることがあります。ワークボックス内のアイテムを見るには、そのアイテムへのアクセス権*Write*が必要です。他のユーザーが現在チェックアウト(ロック)している商品*Write* 、アクセスできない場合があります。

## ワークフローの作成と編集

ワークフローを作成または編集するには、以下の条件を満たさなければなりません:

-   必要なら */sitecore/System/Workflows* のワークフローの保護を解除してください。
-   ワークフローへのアクセス *Read* と *Create* を確保しましょう。
-   *Sitecore Client Authoring*の役割のメンバーになってください。

状態やコマンドへのアクセスを割り当てるには、*Sitecore Client Securing*ロールのメンバーである必要があります。

## ワークフローの使い方

ワークフローは、ウェブ管理者やコンテンツ編集者など、基本的なコンテンツ作成権限を持つかワークフローへの*Read*アクセス権を持つ異なるタイプのユーザーによって利用可能です。

管理者用ユーザーアカウント以外ではSitecore、最終状態のコンテンツ項目(例えば*Approved*)が編集されるたびに新しいバージョンが作成され、初期状態に移行します。管理者アカウントの場合、Sitecoreは新しいバージョンを作成せず、初期の状態に移行することもありません。

> !重要ワークフローユーザーが管理者アカウントを持っていないこと、また*Sitecore Client Authoring*ロールと*Sitecore Client Securing*ロールのメンバーでないことを確認しましょう。そうでなければ、ワークフローの制限を無視するか、最初に設定された以上の権限を自分に付与することが可能になります。

## 特定のユーザーから状態を隠す方法

状態*Read*アクセス権を持つユーザーは、その状態にワークフローコマンドが含まれていて、その状態にアクセス*Command Execute*できる場合、その状態をワークボックスで確認できます。ビジネス要件で特定のワークフロー状態を特定のユーザー群から隠す必要があると指定されている場合、以下のようにその状態へのアクセスを制限できます:

-   状態内のすべてのコマンドをユーザーから隠すことができるのです。
    
    または
    
-   状態自体を明確にユーザーから隠しているのです。
    

ワークフローの状態を明示的に隠すには:

-   状態の*Inheritance*をオフにし、ユーザーや割り当てられたすべての役割に*Read*アクセスを許可しないでください。
    
    > !注*Inheritance*をオフにすると、Workboxで状態を確認できるはずのすべてのロールに明示的にアクセス権を付与しなければなりません。これは、Workboxで状態を見られるべきユーザーや役割がごく少数の場合に最適な方法です。
    
    または
    
-   ユーザーまたはそのユーザーに割り当てられた役割のいずれかに州へのアクセスを拒否*Read* 。
    
    > !注Sitecoreのセキュリティシステムでは、拒否は常にルールを覆うことが可能です。ロール*Read*アクセスを明示的に拒否すると、多くのロールが割り当てられているユーザーがワークフローを見るのを意図せずに妨げてしまう可能性があります。 *Read*アクセスを拒否すると、予期せぬ結果が生じることがあります。
    

一般的に、必要なロール数が管理可能な範囲であれば*Inheritance*をオフにし、明示的にアクセスを許可することをお勧めします。

## 特定のユーザーのためにコマンドを隠す方法

コンテンツエディターとワークボックスは、以下の場合にのみ非管理者ユーザー向けにコマンドを表示します:

-   *Write*ユーザーは関連するコンテンツ項目にアクセスできないか、またはそのアイテムがユーザーによってロックされます。
    
    および
    
-   ユーザーはコマンドの親の状態にアクセスでき*Workflow State Write* 、またはユーザーがアイテムをロックします。
    
    および
    
-   ユーザーはコマンド自体に*Read*アクセスできます。
    
    および
    
-   ユーザーはコマンド自体に*Workflow Command Execute*アクセス権を持っています。
    

Sitecoreのセキュリティ設定を、ユーザーがこれらの条件のいずれかを満たさないように設定すると、そのユーザーからコマンドが隠れてしまいます。

ユーザーがアイテムと状態の両方に*Write*アクセスしなければならない場合、コマンドへのアクセスを拒否する方法*Read* 2つあります。

-   コマンドの*Inheritance*をオフにし、ユーザーおよびそのメンバーであるすべての役割にコマンドへのアクセス*Read*付与しないでください。
    
    > !注*Inheritance*をオフにすると、Workboxで状態を確認できるはずのすべてのロールに明示的にアクセス権を付与しなければなりません。これは、Workboxで状態を見られるべきユーザーや役割がごく少数の場合に最適な方法です。
    
-   ユーザーまたはそのメンバーである役割のいずれかに対して、コマンドの*Read*アクセスを拒否します。
    
    > !注Sitecoreのセキュリティシステムでは、*拒否は常に* ルール *を覆うこと*が可能です。ロール*Read*アクセスを明示的に拒否すると、多くのロールが割り当てられているユーザーがワークフロー項目を見るのを意図せずに妨げてしまうことがあります。 *Read*アクセスを拒否すると予期せぬ結果が生じることがあります。
    

一般的に、必要なロール数が管理可能な範囲であれば*Inheritance*をオフにし、明示的にアクセスを許可することをお勧めします。