はじめに
社外のコンテンツをイントラネットに取り込む Web パーツは、管理者にとって 2 つの疑問を生みます。何がテナントから出ていくのか、そして何が入ってくるのか、です。RSS Reader は、そのコンテンツが Vitextra のサーバー (フィードをダウンロードするフィード サービス) を経由するという点で、Vitextra 製品の中では特別です。この記事では、その要求に正確に何が含まれるのか、Web パーツがテナント内で何を許可されているのか、構成がどこに保存されるのか、ブラウザーに何を保持するのか、発行元がフィードに入れた HTML をどのように扱うのかを説明します。
管理者向けの概要
| 質問 | 回答 |
|---|---|
| パッケージはどの API アクセス許可を要求しますか? | なし |
| Web パーツは、SharePoint のリスト、ファイル、ユーザー プロファイルを読み取りますか? | いいえ |
| フィードをダウンロードするのは誰ですか? | ブラウザーからの要求を受けた Vitextra フィード サービス |
| フィード サービスへの要求には何が含まれますか? | フィードのアドレス、テナント ID、ユーザーのオブジェクト ID、サイトのアドレス、製品とそのバージョン |
| テナントのコンテンツが Vitextra に送信されますか? | いいえ |
| 構成はどこに保存されますか? | ページ上の Web パーツ プロパティ。Teams 個人用アプリの場合は、お客様のテナント用に Vitextra のサービス内 |
| ブラウザーには何が保持されますか? | 最後に読み込まれたフィード アイテム。タブのセッションで最大 30 分間 |
| フィードの HTML はページ内で実行されますか? | いいえ。不活性な方法で解析され、プレーン テキストとイメージのアドレスだけが使用されます |
ソリューションのアクセス許可
RSS Reader は、アプリ カタログから展開される SharePoint Framework Web パーツです。
- パッケージは API アクセス許可を要求しません。SharePoint 管理センターの API アクセスページには何も表示されず、Web パーツがデータのために Microsoft Graph や SharePoint REST API を呼び出すこともありません。
- ページ コンテキストから読み取るのは、すべての Web パーツが持つ情報だけです。テーマ、言語、サイトのアドレス (ライセンス確認とフィード要求のため)、サインインしているユーザーの ID (同じ要求のためのオブジェクト ID) です。
- SharePoint、OneDrive、Microsoft Entra ID には何も書き込みません。
ユーザーに必要なもの
| タスク | 必要なアクセス許可 |
|---|---|
| パッケージをアプリ カタログにアップロードする、Teams に追加する | SharePoint 管理者、またはアプリ カタログの所有者 |
| Web パーツをページに追加し、フィードを構成する | ページの編集アクセス許可 |
| Teams 個人用アプリの既定の構成を保存する | Web パーツを含むページの編集アクセス許可 |
| フィードを読む、ソースを切り替える、絞り込む、検索する | ページの閲覧アクセス許可 |
フィードの読み込み方法と送信される情報
ブラウザーは、ある Web サイトのスクリプトが別の Web サイトからドキュメントをダウンロードすることを、相手の Web サイトがクロスオリジン ヘッダーで許可していない限り認めません。フィードの発行元がこれを許可することはほとんどありません。そのため、ブラウザーだけで動作する RSS Web パーツは、ほとんどのフィードで失敗します。RSS Reader は、vitextra.com のサーバー側のフィード サービスでこれを解決します。ブラウザーはフィード アドレスの一覧をサービスに送信し、サービスはインターネットからフィードをダウンロードして解析し、チャネルとアイテムを構造化データとして返します。
読み込みと自動更新のたびに、次の内容を含む 1 つの要求がフィード サービスに送られます。
| フィールド | 値 |
|---|---|
| Sources | 構成されたフィードのアドレス |
| TenantId | お客様の Microsoft 365 テナントの ID |
| UserId | Microsoft Entra ID におけるサインイン ユーザーのオブジェクト ID (GUID) |
| SiteUrl | Web パーツが動作しているサイトのアドレス |
| ProductId、ProductName、ProductVersion | 製品の識別子、内部名、バージョン |
応答には、フィード アイテム (タイトル、リンク、説明、日付、作成者、分類、イメージのアドレス) と、ダウンロードできなかったソースの一覧が含まれます。サービスは、お客様のテナントのコンテンツを受け取ることも返すこともありません。ユーザーは名前や電子メール アドレスではなく、GUID によって識別されます。
3 つの影響:
- 構成したフィードのアドレスは、フィード サービスに知られます。アドレス自体にシークレット (クエリ文字列内の個人用トークンや API キー) を含むフィードは使用しないでください。そのようなフィードはアグリゲーターと共有することを想定しておらず、サービスはフィードを匿名でダウンロードするため、いずれにしてもサポートされません。
- 社内ネットワーク内でのみ到達可能なフィードは表示できません。
- ブラウザーがフィードのために発行元のサーバーに接続することはありません。接続するのは、アイテムのイメージのためです。イメージは、Web ページ上の他の画像と同様にブラウザーが直接読み込むため、発行元にはユーザーのブラウザーからの通常の画像要求が見えます。
📝 注
Vitextra によるこれらの要求の処理については、プライバシー ポリシーで説明しています。要求がサービスに伝えるのは、ページにどのフィードが構成されているかであり、ユーザーがどの記事を開いたかではありません。記事へのリンクは発行元に直接つながり、クリックが Vitextra に報告されることはありません。
構成の格納場所
SharePoint ページ上では、構成 (アドレス、名前、順序を持つフィード、レイアウト、スイッチ) は、Site Pages (サイトのページ) ライブラリ内のページの中にある Web パーツのプロパティに格納されます。ページを読み取れるユーザーは誰でも構成を読み取れます (フィードのアドレスは、いずれにしてもソース タブに表示されます)。ページのバージョンには以前の構成が保持されます。
Teams 個人用アプリの場合、管理者が個人用アプリ (Microsoft Teams) グループの設定の保存で構成を保存します。この構成 (同じフィールドで、Web パーツのタイトルを除く) は、個人用アプリには格納先となるページがないため、お客様のテナントと製品に対して Vitextra のサービスに格納されます。テナント内のすべてのユーザーの個人用アプリによって読み取られ、次の設定の保存で上書きされます。含まれるのは設定とフィードのアドレスだけで、ユーザー データは含まれません。
Teams チャネル タブでは、構成はページ上と同様にタブと一緒に格納されます。
ブラウザーに保持される内容
読み込みが成功すると、Web パーツは受信したアイテムを、フィード アドレスのセットをキーとしてブラウザーのセッション ストレージに書き込み、次のアクセス時に最新のアイテムをバックグラウンドで読み込む間にコンテンツを即座に表示するために、最大 30 分間それを使用します。キャッシュにはフィード サービスから返されたとおりのフィード アイテムが含まれ、ユーザーに関する情報は一切含まれません。キャッシュはブラウザー タブのセッションに属し、タブを閉じると削除されます。Web パーツは、ローカル ストレージ、Cookie、その他の永続的なストレージを使用しません。
ユーザーがどの記事を開いたかは、どこにも記録されません。既に開いたタイトルの淡色表示は、スクリプトからは読み取れない、ブラウザー自身の訪問済みリンクの記憶に基づいています。
フィード コンテンツの表示方法
フィード アイテムには、発行元が書いた HTML (マークアップ付きの説明、埋め込まれた画像、場合によってはスクリプトやトラッキング ピクセル) が含まれています。RSS Reader は、この HTML をページに挿入することはありません。
- 説明は不活性なパーサー (
DOMParser) で解析されます。このパーサーはスクリプトを実行せず、埋め込まれたリソースも読み込みません。表示されるのはプレーン テキストだけです。 - アイテムのイメージは、フィードのメディア要素または説明の最初の画像から取得され、典型的なトラッキング ピクセルである 1 ピクセルの画像はスキップされます。イメージは、発行元のアドレスを持つ通常の
<img>要素として表示されます。 - リンクは、発行元のサイトの元の記事を新しいタブで開きます。Web パーツがトラッキング パラメーターを追加することはありません。
不正な形式のアイテム (要素の欠落、壊れたマークアップ) は、持っているデータで表示され、他のアイテムの表示を妨げることはありません。
Vitextra のサービスへの要求
| 目的 | 送信される内容 | 送信先 |
|---|---|---|
| フィード サービス | 上記の表を参照 | vitextra.com |
| ライセンスの確認 | テナント ID、ユーザーのオブジェクト ID、サイトのアドレス、製品の識別子、名前、バージョン | vitextra.com |
| Teams 個人用アプリの構成 | 個人用アプリの読み込みのたびに読み取られ、設定の保存で書き込まれる、上記の構成フィールド | vitextra.com |
| 使用状況テレメトリ | Web パーツの読み込み時のイベント: 製品の名前とバージョン、サイトの ID とアドレス、ユーザーのオブジェクト ID、インターフェイスの言語、Web パーツが Teams で実行されているかどうか。エラーの技術的な詳細 | Azure Application Insights |
| 製品ファイル | Web パーツのスクリプトとアイコンに対する通常のファイル要求 | static.vitextra.com、vitextra-storage.azureedge.net |
すべての Vitextra 製品にわたる同じ情報については、KB10363. Vitextra 製品がデータを保存する場所: プライバシー、データ所在地、GDPRを参照してください。
ネットワーク要件
ユーザーのネットワークから (および Teams クライアントから)、vitextra.com、static.vitextra.com、vitextra-storage.azureedge.net への送信 HTTPS を許可してください。最初のホストにアクセスできないと、Web パーツはアイテムの代わりに*申し訳ございません。問題が発生しました…*を表示します。他の 2 つにアクセスできないと、Web パーツはまったく読み込まれません。アイテムのイメージは発行元のホストから読み込まれます。プロキシが発行元をブロックしている場合、そのアイテムは画像なしで表示されます。
推奨事項
- イントラネット上の他の外部コンテンツと同様に、組織が信頼する発行元のフィードを使用してください。タイトル、テキスト、画像は発行元のものであり、お客様の確認なしに変わります。
- HTTPS のイメージを持つ HTTPS のフィード アドレスを優先してください。HTTP で配信される画像は、HTTPS ページ上ではブラウザーによってブロックされます。
- アドレスに個人用トークンを含むフィードは構成しないでください。そのアドレスは、ページを読み取れるすべてのユーザーおよびフィード サービスと共有されます。
- 共用のコンピューターでは、他のイントラネット ページと同様に、サインアウト時にブラウザーのサイト データをクリアしてください。フィードのキャッシュは、いずれにしてもタブと一緒に消えます。