注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
プラットフォームでの関数の開発と実行には、さまざまな種類の権限チェックが適用されます。このセクションでは、把握しておくべき権限の種類と、よく発生する問題の概要を説明します。
関数リポジトリには、次の操作に必要な適切な権限を付与する必要があります。
リポジトリの権限は明示的に付与する必要があり、ユーザーアカウントに付与された権限とは異なります。そのため、リポジトリを含むプロジェクトにオブジェクトタイプ、リンクタイプ、元データソースをインポートするには、所定の手順を実行する必要があります。
これらの手順のチュートリアルについては、このセクションを参照してください。以下では、インポートされる具体的なリソースと、それらのリソースに付与される権限について説明します。
リポジトリでチェックが実行されるか、Code Assist が起動するたびに、関数プラグインはリポジトリの権限に基づいて最新のオントロジーを読み込み、読み込んだすべてのオブジェクトタイプとリンクタイプのコードバインディングを生成します。読み込まれるオブジェクトタイプとリンクタイプは、次の種類のリソースのインポート状況によって決まります。
関数リポジトリで、設定 > オントロジーに移動すると、必要なオントロジーリソースをインポートできます。このインターフェースでは、プロジェクトにインポートするオブジェクトタイプとリンクタイプを選択できます。

ユーザーアカウントが複数のオントロジーにアクセスできる場合は、使用するオントロジーも選択できます。現在、1つのプロジェクトへの複数のオントロジーのインポートはサポートされていません。

上記のインターフェースは関数リポジトリ内に表示されますが、インポートするオントロジー、オブジェクトタイプ、リンクタイプはすべてプロジェクトレベルで追加されます。つまり、1つのリポジトリでインポートを変更すると、同じプロジェクト内のほかのリポジトリにも影響する可能性があります。異なるオントロジーリソースに依存する2つのリポジトリを使用する場合は、それぞれ別のプロジェクトに分けてください。
リポジトリ内の関数ヘルパーでは、公開済みの関数を実行する方法と、ライブプレビューでコードを実行する方法の2つの方法で関数を実行できます。ライブプレビューで実行する場合、関数コードは Code Assist でコンパイルおよび実行されます。Code Assist は、コードの開発者が迅速に試行錯誤できるように設計されたインフラストラクチャです。
Code Assist はリポジトリに紐付いているため、前述のコード生成と同じ権限要件が適用されます。つまり、ライブプレビューで関数を実行する場合、使用する各オブジェクトタイプの元データソースをプロジェクトにインポートする必要があります。
関数ヘルパーでは、対応するデータソースをインポートせずにオブジェクトタイプをプロジェクトにインポートしている場合、ライブプレビューにインポートの更新を促す警告が表示されます。

ほとんどのオブジェクトタイプでは、元データソースをインポートダイアログで Foundry データセットのインポートが求められます。行レベルのセキュリティが有効なオブジェクトタイプでは、制限付きビューのインポートが求められます。
関数を公開すると、より幅広い対象ユーザーが利用できるようになり、Workshop や Actions などのアプリケーションで実行するように設定できます。ただし、公開済みの関数を実行するための権限については、引き続き留意すべき点があります。
関数を実行するには、その関数が公開されたリポジトリに対する閲覧者ロールをユーザーが持っている必要があります。通常、関数リポジトリは、そのリポジトリ内の関数に依存するエンドユーザー向けアプリケーションと同じプロジェクトに配置することを推奨します。これは、アプリケーションの作成に Workshop、Slate、またはほかのツールのいずれを使用する場合も同様です。関数の読み取り権限がないことを示すエラー (ReadFunctionsPermissionDenied) が発生した場合は、そのユーザーにリポジトリへの読み取りアクセス権があるかを確認してください。リソースの移動と共有について詳しくはこちら。
一方、コードが FunctionRegistry:ReadOntologyFunctionPermissionDenied の PERMISSION_DENIED エラーは、通常、フォルダーレベルの権限の問題ではなく、関数が Developer Console に登録されていないか、利用可能でないことを意味します。フォルダーとリポジトリの権限だけでは関数を実行できるようにならないため、Developer Console で関数を追加して登録します。
アクセス権をより広範に確認するには、サイドバーのアクセスを確認パネルを使用して、依存する関数へのアクセス権を含め、特定のユーザーの Workshop または Slate アプリケーションへのアクセス権を確認します。詳細については、権限を確認するを参照してください。
関数ベースのアクションは例外であり、エンドユーザーは、関数を使用するアクションを適用するために、必ずしもその関数への読み取りアクセス権を持つ必要はありません。管理ユーザーがアクションで関数を使用するように設定する際は、その関数への読み取りアクセス権が必要です。設定後、ユーザーは関数へのアクセス権に関係なく、アクションレベルの権限に基づいてアクションを適用できます。
関数がパラメーターとして、またはオブジェクト検索を通じてオブジェクトデータを読み込む場合、読み込まれるオブジェクトは、関数を実行するエンドユーザーの権限によって決まります。行レベルの権限で保護されているオブジェクトタイプでは、異なるユーザーが同じ関数を実行すると、異なる結果が返される場合があります。これは意図された動作です。ユーザーにはアクセス権があるオブジェクトのみが表示されるべきであり、この動作によって、個々のオブジェクトへのアクセス権が異なるユーザーに対しても、1つの関数を使用できます。
行と列のアクセス制御(制限付きビュー、オブジェクトセキュリティポリシー、プロパティセキュリティポリシーを含む)は、関数の実行時にユーザーが読み取れるデータを絞り込みます。これらの制御は、関数の出力には適用されません。下流に渡されるデータを引き続き保護するには、これらの制御をマーキングまたは機密情報区分に基づくアクセス制御と組み合わせます。モデル全体については、アクセス制御の伝播を参照してください。
管理者は、Control Panel の関数の設定で拡張実行機能を制御します。これらの機能により、関数内からアクションを呼び出したり、有効期間(TTL)が最長4時間の認証トークンを取得したりするなど、より高い権限でのアクセスが可能になります。
拡張機能を持つ関数を公開、実行、またはインストールするには、管理者が適切な許可リストを設定する必要があります。
拡張機能を持つ関数の公開、実行、または Marketplace からのインストールで権限エラーが返された場合は、該当する許可リストを確認するよう管理者に依頼してください。