SharePoint ワークフロー プラットフォームを使用して引き上げられた権限でワークフローを作成する

この記事では、引き上げられた権限を必要とする SharePoint 内のオブジェクトにアクセスする SharePoint ワークフローを作成する方法について説明します。 これらのソリューションでは、ワークフロー アプリへの権限の付与と、アプリ ステップでのアクションのラップという 2 つの機能を使用します。

注:

SharePoint 2010 ワークフローは、2020 年 8 月 1 日以降、新しいテナント用に廃止され、2020 年 11 月 1 日に既存のテナントから削除されました。 SharePoint 2010 ワークフローを使用している場合は、Power Automate またはその他のサポートされているソリューションに移行することをお勧めします。 詳細については、「SharePoint 2010 ワークフローの廃止」を参照してください。

重要

この記事では、SharePoint ワークフロー プラットフォームがインストールおよび構成されており、SharePoint がアドイン用に構成されているものとします。SharePoint ワークフローおよび SharePoint アドインのインストールと構成などの詳細については、「SharePoint のワークフロー」および「SharePoint アドインをインストールおよび管理する」を参照してください。

SharePoint 管理者として、Office ストアからアドインを購入するユーザー要求の管理プロセスを定義する場合について考えます。 最も簡単なケースとして、ユーザーからアドインの要求があった際に、確認応答の電子メールを送信したいとします。 さらに、要求承認プロセスに構造を追加するものとします。

既定では、ワークフローには、アプリ カタログにアクセスする権限はありません。 SharePoint のカタログ リストには、所有者 (フル コントロール) の権限が必要です。 ワークフローは通常、書き込みと同等の権限レベルで実行されます。

これを解決するには、サイト コレクション サイトで以下の手順に従って引き上げられた権限を持つワークフローを作成する必要があります。

  1. ワークフローにアドインの権限の使用を許可します。
  2. ワークフローにフル コントロール権限を付与します。
  3. ワークフローを作成してアプリ ステップの内部のアクションをラップします。

SharePoint サイトでのアドインの権限の使用をワークフローに許可する

最初の手順は、ワークフローにアドインの権限の使用を許可します。 ワークフローを実行する SharePoint サイトの [サイトの設定] ページで、アドインの権限を使用するようにワークフローを構成します。 次の手順では、ワークフローがアドインの権限を使用することを許可するように SharePoint サイトを構成します。

重要

この手順は、[サイト管理者] 権限のあるユーザーが完了する必要があります。

ワークフローにアドインの権限の使用を許可するには

  1. 図に示されているように [設定] アイコンをクリックして、[サイトの設定] ページを開きます。

設定メニュー

  1. [サイトの設定] に移動します。

  2. [サイトの操作] セクションで、[サイト機能の管理] を選択します。

  3. 次の図のように、[ワークフローでアプリの権限を使える] という名前の機能を探し、[アクティブ化] を選択します。

    警告

    この機能は、SharePoint ワークフロー プラットフォームおよび SharePoint アドインが正しく構成されていないとアクティブになりません。

    [ワークフローでアプリの権限機能を使える] 機能

ワークフローにフル コントロール権限を付与する

ワークフローが正しく機能するには、サイト上でフル コントロール権限が付与されている必要があります。 次の手順では、ワークフローにフル コントロール権限を付与します。

重要

この手順は、[サイトの所有者] 権限のあるユーザーが完了する必要があります。 ワークフローは既に SharePoint サイトに対して発行されている必要があります。

ワークフローにフル コントロール権限を付与するには

  1. [設定] アイコンをクリックします。

設定メニュー

  1. [サイトの設定] に移動します。

  2. [ユーザーと権限] セクションで、[サイト アプリの権限] を選択します。

    重要

    SharePoint Online で、[サイト コレクションのアプリの権限] を選択します。 このオプションは、サイト コレクション管理者のみに表示されます。

  3. [アプリ ID] のクライアント セクションをコピーします。 これは、図に示すように、ID の最後の "|" と "@" 記号の間の部分です。

    アプリ ID の選択

  4. [アプリへの権限の付与] ページに移動します。 サイトの appinv.aspx ページを参照して、これを行う必要があります。

    例: http://{hostname}/{the Site Collection}/_layouts/15/appinv.aspx

    注:

    この手順での ”アプリ” は、特定のワークフローではなく、一般的なワークフローのアドインを意味します。 個々のワークフローをアクセス制御することはできません。 アドインのアクセス許可を有効にすると、サイト コレクション内部のすべてのワークフローのアクセス許可が有効になります。

    ワークフローの設定の詳細については、Sympraxis Consulting のブログ記事: Looping Through Content in a SharePoint Site Workflow を参照してください。

    次の図に例を示します。

    appinv.aspx URL の例とページ。

  5. 前の図のように、クライアント ID を [アプリ ID] フィールドに貼り付け、[参照] を選択します。

  6. 次のコードを権限要求 XML フィールドに貼り付け、フル コントロール権限を付与します (注: このコード ブロックは 2017 年 12 月 29 日に、AllowAppOnlyPolicy を含むように更新されました)

    <AppPermissionRequests AllowAppOnlyPolicy="true">
        <AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web" Right="FullControl" />
    </AppPermissionRequests>
    

    警告

    Scope 値にはプレース ホルダーはありません。 これはリテラル値です。 ここに示されているとおりに入力してください。

    次の図は、完成したページ の例を示しています。(権限要求 XML エリアのコードは、手順 7 でのコードへの最新の更新を反映していません)

    アプリ ID の参照。

  7. [作成] を選択します。

  8. 次の図のように、ワークフロー アドインを信頼することを求められます。 [信頼する] を選択します。

    ワークフロー アプリを信頼します。

アプリ ステップの内部のアクションをラップする

最後に、アプリ ステップの内部にあるワークフロー アクションをラップする必要があります。 以下の手順では、アプリ ステップ内の電子メールを送信するアクションをラップしています。 この例のワークフローでは、カスタム リストから確認応答の電子メール メッセージを送信します。

アプリ ステップの内部のアクションをラップするには

  1. SharePoint Designer でアプリ カタログ サイトを開きます。

  2. ワークフローを実行する新しいカスタム リストを作成します。 この例では、リストの名前は App Demo です。

  3. ナビゲーション ウィンドウの [ワークフロー] を選択します。

  4. 図に示すように、App Demo リストに対する新しい リスト ワークフロー を作成します。

    新しいリスト ワークフローを作成します。

  5. 図のように、[アプリ ステップ] を挿入します。

    アプリ ステップの追加。

  6. [電子メールを送信する] アクションを [アプリ ステップ] に挿入します。

  7. [アドレス帳] ボタンを選択します。 [宛先] フィールドで [ユーザーのワークフロー参照] を選択し、さらに [追加] を選択します (図を参照)。

    [ユーザーのワークフロー参照] を選択します。

  8. [作成者] フィールドに参照値を入力します (図を参照)。

    [ユーザーの参照] ダイアログ。

  9. 電子メール メッセージの本文に、「App Demo リストからの電子メール」と入力します。

  10. [OK] を選択してワークフローに戻ります。 完了したワークフローを図に示します。

    アプリ ステップ内の電子メール アクション。

  11. リボンの [ワークフロー設定] アイコンを選択します (図を参照)。

    リボンの [ワークフロー設定] アイコン。

  12. [現在のステージ名に合わせてワークフローの状態を自動的に更新する] チェック ボックスをオフにし、[発行] を選択します。

    自動更新をオフにし、発行します。

動作原理の概要

ワークフローの権限を引き上げる必要がある理由を理解するには、ワークフローは基本的に SharePoint 用のアドインであり、アドイン モデルと同じ承認ルールに従うことを考慮してください。 図のように、ワークフローの既定の構成では、ワークフローの有効な権限は、ユーザーの権限とアドインの権限の共通部分になります。

権限の図。

アプリ要求リスト内のワークフローを作成するために権限を引き上げる必要があるのは、次のような 2 つの理由によります。

  • 既定では、ワークフローだけが書き込み権限を持ちます。
  • ユーザーは権限を持っていません。

この問題を解決するための最初の手順は、アプリケーションが ID のみを使用し、ユーザーの ID を無視して承認できるようにすることです。 これを行うには、アプリ ステップ機能を有効にします。 2 番目の手順では、ワークフローに完全な制御アクセス許可を付与します。

次の図は権限の変更を示したものです。

権限のマトリックス。

関連項目