分離された Web パーツIsolated web parts

この機能を使用すると、ページ上の他のコンポーネントやテナント内のスクリプトにも、アクセス トークンを公開せずに、Azure AD でセキュリティで保護された API と安全に通信する Web パーツをビルドすることができます。Using this capability you can build web parts that securely communicate with APIs secured with Azure AD without exposing the access token to other components on the page or even scripts in the tenant.

重要

この機能は現在プレビュー段階であり、変更される可能性があります。This feature is currently in preview and is subject to change. 運用環境での使用は、現在サポートされていません。It is not currently supported for use in production environments. SharePoint 開発ドキュメントの問題リストを使用して、この機能に関するフィードバックやご意見をお寄せください。Your feedback and input around this capability is welcome using the SharePoint Dev Docs issue list.

Web パーツを分離させる理由Why isolated web parts

SharePoint Framework ソリューションが Azure AD でセキュリティで保護された API に安全にアクセスできるようにするには、API 管理を使用して、テナント内のスクリプトによってアクセス可能な API およびアクセス許可を指定できます。To allow your SharePoint Framework solutions to securely access APIs secured with Azure AD, you can use the API management to specify which APIs can be accessed by scripts in your tenant and with which permissions. 次に、SharePoint Framework を使用して、特定の API のアクセス トークンを簡単に取得できます。Next, using the SharePoint Framework, you can easily retrieve an access token for the specific API. Azure AD でセキュリティ保護された API との通信を大幅に簡素化しますが、特定の SharePoint Framework ソリューションだけでなく、すべてのスクリプトが、承認された API のアクセス トークンを取得できるようにします。While it significantly simplifies communicating with APIs secured with Azure AD, it allows all scripts, not just specific SharePoint Framework solutions, to obtain an access token for any of the approved APIs. テナントで使用するスクリプトのいずれかが悪用された場合、現在のユーザーの代わりに、承認された API のいずれかにアクセスできます。If one of the scripts you use in your tenant was exploited, then it could access any of the approved APIs on behalf of the current user.

分離された Web パーツでは、Azure AD でセキュリティ保護された API へのアクセスを分離させる新しい方法を導入し、特定の SharePoint Framework の Web パーツのみが特定の API のアクセス トークンを取得するよう許可されるようにします。Isolated web parts introduce a new way to isolate access to APIs secured with Azure AD and ensure that only specific SharePoint Framework web parts are allowed to obtain an access token for the particular API.

分離された Web パーツの機能How isolated web parts work

重要

分離された Web パーツ機能は、SharePoint Framework v1.7.0 以降でのみ使用可能です。The isolated web parts capability is available only in SharePoint Framework v1.7.0 and later.

分離された Web パーツの機能を示すアーキテクチャの概要

分離された Web パーツ機能を使用するソリューションには、.sppkg ファイルのプロジェクト メタデータに特定のフラグ セットが含まれています。Solutions using the isolated web parts capability, have a specific flag set in the project metadata in the .sppkg file. アプリ カタログにこれらのソリューションを展開する場合、すべての API のアクセス許可要求は、分離されたものとして指定されます。When deploying these solutions to the app catalog, all API permission requests are specified as isolated. 分離された API のアクセス許可要求が承認された後、Office 365 のテナントにリンクされた Azure AD で独立した Azure AD アプリケーションが作成されます。After approving an isolated API permission request, SharePoint will create a separate Azure AD application in the Azure AD linked to the Office 365 tenant. この Azure AD アプリケーションは、API のアクセス許可を要求した SharePoint Framework ソリューションに固有のものであり、そのソリューションで要求された OAuth アクセス許可が設定されます。This Azure AD application is specific to the SharePoint Framework solution that requested API permissions and will have set OAuth permissions as requested by that solution. OAuth 暗黙的フローによって使用される、その Azure AD アプリケーションの戻り先 URL は、その特定の SharePoint Framework アプリケーションに関連付けられている一意のドメインに設定されます。The return URL of that Azure AD application, which is used by the OAuth implicit flow, will be set to a unique domain that is tied to that specific SharePoint Framework application. 分離されたアクセス許可を使用しているソリューションからのすべての Web パーツは、ページに追加されると、特定の SharePoint Framework ソリューションに関連付けられている一意のドメインを指す IFrame を使用して表示されます。All web parts from solutions using isolated permissions, when added to a page, will be displayed using an iframe pointing to a unique domain tied to the particular SharePoint Framework solution. この方法により、SharePoint Framework で一意の API のアクセス許可を実行でき、テナント内の他のソリューションやスクリプトがこれらの API へのアクセス トークンを取得できなくなります。This way, SharePoint Framework is able to enforce unique API permissions and ensure that no other solution or script in the tenant can obtain an access token to these APIs.

分離されたアクセス許可を使用するプロジェクトのスキャフォールディングScaffolding a project that uses isolated permissions

新しい SharePoint Framework プロジェクトをスキャフォールディングする場合、SharePoint Framework Yeoman ジェネレーターから、分離する必要があり、他のコンポーネントに使用できない API のアクセス許可がソリューションで必要かどうかを尋ねるメッセージが表示されます。When you scaffold a new SharePoint Framework project, the SharePoint Framework Yeoman generator will prompt you, if the solution requires API permissions that should be isolated and not available to other components.

プロジェクトで分離されたアクセス許可を使用しているかどうかを尋ねる SharePoint Framework Yeoman ジェネレーターからのメッセージの表示

答えが_はい_である場合、ジェネレーターにより、isDomainIsolated プロパティが true に設定されて、config/package-solution.json ファイルのプロジェクトの構成にフラグが追加されます。If you answer Yes, then the generator will add a flag to your project's configuration in the config/package-solution.json file, by setting the isDomainIsolated property to true. 分離された Web パーツ機能は Web パーツにのみ適用されるため、ジェネレーターでは、プロジェクト内の Web パーツの作成のみが許可されます。Because the isolated web parts capability applies only to web parts, the generator will only allow you to create web parts in your project.

SharePoint Framework Yeoman ジェネレーターでは、分離されたアクセス許可を使用するプロジェクトの Web パーツのみの作成が許可される

重要

理論上は、分離されたアクセス許可を使用するプロジェクトの SharePoint Framework 拡張機能を手動で作成することができます。Theoretically, you could manually create a SharePoint Framework extension in a project that uses isolated permissions. ただし、これは得策とは言えないため、決して実行しないでください。This is however a bad idea and something you should never do. 追加した拡張機能が、Azure AD でセキュリティで保護された API と通信した場合、独立した方法でアクセス トークンを取得できなくなり、実行時に失敗します。If the extension you have added communicated with APIs secured with Azure AD, it wouldn't be able to retrieve the access token in an isolated way and would fail on runtime.

API との通信中Communicating with APIs

分離されたアクセス許可を使用する Web パーツにもかかわらず、コードを使用して、Azure AD でセキュリティ保護された API へのアクセス トークンを取得する方法に固有のものは何もありません。Despite the web part using isolated permissions, there is nothing specific to how you obtain an access token to an API secured with Azure AD in your code. さらに、実行時に分離された Web パーツが一意のドメインを指す IFrame 内で読み込まれるとしても、分離されていない Web パーツの場合と同じ方法で SharePoint REST API と通信できます。Additionally, even though on runtime isolated web parts will be loaded inside an iframe pointing to a unique domain, you can communicate with SharePoint REST API, the same way as you would in non-isolated web parts.

分離された Web パーツを含むソリューションの展開Deploying solutions with isolated web parts

分離された Web パーツを含むソリューションは、通常の SharePoint Framework のソリューションと同じ方法で展開されます。Solutions with isolated web parts are deployed the same way as regular SharePoint Framework solutions. 唯一の違いは、API のアクセス許可要求が分離されたものとして展開されることです。The only difference is, that the API permission requests are deployed as isolated. これは API の管理ページで明確に表示されており、API のアクセス許可要求は適用対象のソリューションごとにグループ化されています。This is clearly visible on the API management page, where the API permission requests are grouped per solution to which they apply.

テナントレベルで与えられる API アクセス許可は、すべての SharePoint Framework ソリューションまたはテナントのスクリプトの一部で使用できます。API permissions granted on the tenant-level can be used by any SharePoint Framework solution or piece of script on the tenant. 一方、分離されたアクセス許可は、それらを要求したソリューションでのみ使用できます。Isolated permissions on the other hand, can only be used by the solution that requested them.

分離された Web パーツの使用Using isolated web parts

ページに追加されると、分離された Web パーツは、IFrame を使用して表示されます。When added to the page, isolated web parts are displayed using an iframe. この IFrame は、Web パーツが配置されている SharePoint Framework ソリューションに割り当てられている一意のドメインを指します。This iframe points to a unique domain assigned to the SharePoint Framework solution where the web part is located. このドメインは、特定の SharePoint Framework ソリューションの分離されたアクセス許可をホストするために作成された Azure AD アプリケーションの戻り先 URL でも参照されています。This domain is also referenced in the return URL of the Azure AD application created to host the isolated permissions for the particular SharePoint Framework solution. 一意のドメインを使用して、特定の SharePoint Framework ソリューションの Web パーツのみが、分離された一連のアクセス許可のアクセス トークンを取得できるようにします。Using the unique domain allows to ensure, that only web parts from the particular SharePoint Framework solution are able to obtain an access token for the isolated set of permissions.

分離されたアクセス許可を使用する既存のプロジェクトのアップグレードUpgrading existing project to use isolated permissions

既存の SharePoint Framework プロジェクトを v1.7.0 にアップグレードして、分離されたアクセス許可機能を使用するには、config/package-solution.json ファイルで、isDomainIsolated プロパティを true に設定します。If you're upgrading an existing SharePoint Framework project to v1.7.0 and want to use the isolated permissions capability, you can do it, by setting in the config/package-solution.json file, the isDomainIsolated property to true. プロジェクトに Web パーツだけが含まれていることを確認する必要があります。You should ensure, that your project contains only web parts.

分離されたアクセス許可を使用するようプロジェクトを変更した後、プロジェクトを再展開する必要があります。After changing the project to use isolated permissions, you should redeploy your project. これにより、ソリューションに分離された新しい API アクセス許可要求が発行されます。これにはテナント管理者による承認が必要です。This will issue new API permission requests, isolated to your solution, which will need to be approved by the tenant admin.

分離されたアクセス許可を含むソリューションの削除Removing solutions with isolated permissions

分離された API アクセス許可を承認する場合、SharePoint では、アクセス許可を要求した SharePoint Framework ソリューションに固有の専用 Azure AD アプリケーションが作成されます。When approving isolated API permissions, SharePoint creates a dedicated Azure AD application specific for the SharePoint Framework solution that requested permissions. SharePoint Framework ソリューションが、アプリ カタログから削除されるとき、API アクセス許可および Azure AD アプリケーションは削除されません。When the SharePoint Framework solution is removed from the app catalog, the API permissions as well as the Azure AD application are not removed.