注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
公開アプリケーションは、Foundry でホストされる Web サイトと、許可リストによって制限された認証不要のオントロジー API を組み合わせたもので、どちらも Foundry のサブドメインから提供されます。公開アプリケーションを使用すると、開発者は外部のホスティングプラットフォームにデータをエクスポートすることなく、インターネット向けのサービスを Foundry 上で直接構築できます。公開アプリケーションのエンドユーザーは Foundry にログインしないため、サブドメインにアクセスできる人であれば誰でも Web サイトを読み込み、公開されている限られた認証不要のオントロジー操作を呼び出せます。Foundry は、アプリケーションが管理するサービスユーザーを通じて、エンドユーザーに代わって認証を処理します。
このページでは、Developer Console から提供されるオントロジー SDK ベースの公開アプリケーションについて説明します。Slate ベースの公開フォームによるアップロードワークフローについては、公開アプリケーション用のデータをアップロードするを参照してください。
公開アプリケーションは、Foundry アカウントを持たず、持つべきでもない一般の人々をエンドユーザーとするワークフローをサポートします。一般的なパターンには次のものがあります。
Foundry の公開アプリケーションは、顧客から見える次の3つの部分で構成されます。
公開アプリケーションは、認証不要の Web サイトのみで構成することも、認証不要の Web サイトと認証不要の API プロキシの組み合わせで構成することもできます。
公開アプリケーションは、すべてのリクエストをアプリケーションのサービスユーザーとして実行します。そのため、Developer Console で設定される公開アプリケーションのリソース制限と、サービスユーザーが閲覧できるリソースによって、公開できるデータの最大範囲が決まります。
Foundry は、エンロールメントのイングレスポリシーに従って公開アプリケーションを公開します。このポリシーでは、認証なしでインターネット全体からアクセスを許可する場合もあるため、Foundry はデフォルトでいくつかの保護を適用します。これらのデフォルトの保護は、エンロールメントの安定性を確保し、潜在的な悪用を制限するためのものであり、開発者が設定することはできません。
公開アプリケーションから呼び出せるのは、オントロジー操作のごく一部のみです。Foundry は、関数、関数ベースのアクション、検索、集計、周辺検索など、一定量ではない計算処理を発生させる操作を、呼び出し元ユーザーの権限にかかわらずプロキシ層でブロックします。ブロックされる操作の完全なリストについては、現在サポートされている機能のドキュメントを確認してください。
Foundry は、認証の切り替えを行う前に、認証不要のトラフィックに対してアプリケーションごとのレート制限を適用します。これにより、公開インターネット上の悪用からプラットフォームのほかの部分を保護し、1個のアプリケーションのトラフィックが別のアプリケーションの処理容量を使い尽くさないようにします。
公開アプリケーションのサブドメインは、親エンロールメントドメインのイングレスポリシーを継承します。エンロールメントが特定のリージョンやネットワークに制限されている場合(たとえば、米国のみ)、公開アプリケーションにも同じ制限が適用されます。すべてのリクエストは、Foundry に到達する前にエンロールメントの WAF を通過します。Foundry では、公開アプリケーションにエンロールメントよりも広い範囲からのアクセスを許可するイングレスポリシーを適用できるように、アプリケーションごとのイングレスポリシー設定を提供しています。
アプリケーションは、Foundry が管理するサービスユーザーとして実行されます。公開アプリケーションにはエンドユーザーごとの属性がないため、Foundry は、たとえば書き込みを一般の特定の個人に帰属させることができません。エンドユーザーごとの属性を必要とするワークフローには、公開アプリケーションを使用しないでください。サービスユーザーとクライアント資格情報グラントの背景については、OAuth2 クライアントのドキュメントを確認してください。
公開アプリケーションにリソースを追加できるのは、そのリソースに適用されているすべてのマーキングと組織マーキングを外す権限がある場合のみです。その権限がない場合、Foundry はアプリケーションのアクセス可能なリソース範囲への追加をブロックします。
このエクスポート制御モデルにより、リソースが公開インターネットからアクセス可能になるのは、データの各制限を解除する権限をすでに持つ人が、明示的かつ監査される意思決定プロセスを通じて判断した場合のみとなります。
公開アプリケーションは、インターネット上の誰もが認証なしでアクセスできるように設定できます。そのため、アプリケーション開発者は、上記の Foundry が管理する保護に加えて、以下のセクションで説明するリスク軽減策を実施する責任があります。
公開アプリケーションから提供されるものには、URL にアクセスでき、エンロールメントのイングレスポリシーを満たす人であれば誰でもアクセスできます。URL 内の識別子が推測できないもの(たとえば、ランダムに生成された UUID)であることを確認してください。公開することを意図したデータのみをアクセス可能な範囲に含めてください。
関数を使用するワークフローは、エンロールメントを計算コスト攻撃にさらすおそれがあるため、現在ブロックされています。ワークフローで負荷の高い処理が必要な場合は、Foundry 内部で非同期に実行してください。たとえば、公開アプリケーションからオンデマンドで実行しようとするのではなく、アプリケーションがすでに書き込んだデータに対して自動化を設定します。
公開アプリケーションにリソースを追加すると、そのリソースは公開インターネットからアクセス可能になります。追加するリソースが一般公開を意図したものであることを確認し、追加するたびにエクスポートの判断として扱う責任があります。
すべてのパブリックアプリケーションは、有効化する前に、エンロールメント内の情報セキュリティ責任者によるユースケースのレビューが必要です。情報セキュリティ責任者は、次の事項を確認する責任を負います。
このレビューは、パブリックアプリケーションのセットアッププロセスの一環として、同じロールが Control Panel で行う標準的なサブドメインの承認に加えて実施されます。承認者が判断に必要なコンテキストを把握できるよう、サブドメインを申請する前に、承認済みのユースケースを文書化してください。
パブリックアプリケーションとは何か、また Foundry の外部でユーザーがどのように操作するかを理解したところで、最初のパブリックアプリケーションを作成し、そのサブドメインを設定できます。