Azure で実行されている SharePoint プロバイダー向けのホスト型アドインは、.NET 更新プログラムの後で機能しなくなります。

この記事は、SharePoint 開発者サポートチームのエンジニアである Westley Hall からの投稿に基づいています。

現象

アドインが次の条件下で動作しなくなったことがわかります。

  • Azure web サービスで実行されている SharePoint プロバイダー向けのホスト型アドインがある。
  • アドインは、アプリパーツ (またはクライアント web パーツまたはアドイン) または iframe 内の SharePoint ページでホストされています。

原因

この問題は、既定のSameSite cookie プロパティの変更によって発生する可能性があります。

最新の .NET Framework の更新プログラムのロールアウトは、SameSite cookie の既定のSameSiteプロパティの値を、甘いNET_SessionId 値に設定します。 この変更により、iframe のドメインがホストページのドメインと異なる場合に、この cookie が iframe に送信されないようにします。 SharePoint プロバイダー向けのホスト型 web パーツアドインでは、iframe は常に異なるドメインに配置されます。

たとえば、セッション cookie は次のようになります。

Set-Cookie: ASP.NET_SessionId=<xxxxxxxx>; path=/; HttpOnly; SameSite=Lax

注意

この例で <xxxxxxx> は、は、セッションのランダム識別子です。

このセッションは、通常、認証を維持するために ASP.NET アプリケーションで使用されます。 同じアプリへの投稿または AJAX 呼び出しがある場合、このページでは、2回目の試行で認証にリダイレクトされるようになっています。

場合によっては、ディレクトリサービスで "405 メソッドは許可されていません" というエラーが生成されることがあります。 これは、AJAX 呼び出しがCORS OPTIONS要求をトリガーする可能性があり、SharePoint はそのような要求を拒否するからです。

解決方法

この問題を解決するには、web.config の既定値を system.web セクションで次のように設定します。

<system.web>
    <httpCookies sameSite="None" requireSSL="true"/>
    <sessionState cookieSameSite="None" />

注意

SameSiteNoneに設定されている場合、SharePoint は iframe とホストが同じドメイン内に存在することを強制しません。

Azure web app のライブインスタンス上のWeb.configファイルを更新するには、次の手順を実行します。

  1. Azure portal で web アプリケーションの設定に移動します。
  2. [高度なツール] を選択し、[移動] を選択します。
    Azure ポータルの [高度なツール] 画面。
  3. Kudu 画面で、[デバッグコンソール] を選択し、[ CMD] を選択します。
    デバッグコンソールで、[CMD] を選択します。
    検索結果。
  4. [ファイルビュー ] 画面で、 CD site\wwwrootコマンド (次のスクリーンショットの下の赤いボックスに表示されています) を入力して、web アプリケーションのルートディレクトリを取得します。 次に、Enter キーを押します。 > [!NOTE] > ページの上部にあるファイルリストが更新され、 Web.configファイルが表示されます (表示するためにスクロールする必要がある場合があります)。 ファイルを編集するには、[編集] アイコン (下の図の赤いボックスに表示されている鉛筆) を選択します。 ファイルを編集するには、鉛筆アイコンを選択します。
  5. 次のスクリーンショットで強調表示されているHttpcookiesおよびsessionState cookie の設定を追加します。 System.webセクションが存在しない場合は、次のスクリーンショットに示されているサンプルに似たものになるように、を追加します。 System.web セクションの外観を指定します。
  6. [保存] を選択します。
  7. アドイン web パーツが期待どおりに動作していることを確認します。

今後の展開では、web アプリケーションが展開されたソースコードプロジェクトにこの変更を追加することをお勧めします。

詳細情報

.NET Framework の更新の詳細については、「 Azure App Service-SameSite cookie の処理」および「.Net framework 4.7.2 patch」を参照してください。

さらにヘルプが必要ですか? SharePoint コミュニティにアクセスしてください。