Sharepoint の使用方法(アプリケーション)
メモ:Adobeの Sharepoint を使用しているプロジェクトの場合は続行してください こちら.
SharePointをコンテンツソースとして使用する場合、AEMは登録済みのMicrosoft Azure アプリケーションを使用してコンテンツにアクセスします。 このアプリケーションには 代理権限 ユーザーの代わりにサービスがSharePointにアクセスできるようにする定義。 このユーザーは、SharePointを使用しているプロジェクトに登録されている必要があります。
または、サービスがアプリケーションとして認証を行い、を使用することもできます。 アプリケーションの権限 サイトにアクセスする。 これには、アプリケーションの権限を付与できるSharePoint サイト管理者による追加の設定が必要です。
を使用する設定をお勧めします アプリケーションの権限 これにより、サービスが特定のSharePoint サイトに対して持つアクセスが絞り込まれ、テクニカルユーザーのシークレットを共有する必要がなくなります。 また、パスワードのローテーションに関する問題も軽減されます。
の設定方法を次に説明します アプリケーションの権限 (プロジェクト用)。 技術ユーザーを設定する場合は、続行してください こちら.
SharePointを設定するには、次の手順を実行します。
- ドキュメント ベース オーサリングのサイトとして機能する SharePoint サイトを作成または特定します
- SharePoint内に、web サイトのルートとなるフォルダーを作成します。
- の設定
fstab.yaml
各フォルダーを使用 - 登録ポータルへのアクセス
- アプリケーションの登録
- を適用
sites.selected
SharePointサイトに対する権限
1. SharePoint サイトを作成または特定する
IT 部門に問い合わせて、ドキュメントベースのオーサリングに使用する SharePoint サイトを特定または作成します。 1 つのサイトで複数の web サイト(プロジェクト)を「ホスト」できます。 このサイトは後で各権限を受け取り、発行サービスがアクセスできるようになります。
2. web サイトのルートフォルダーを作成する
上記で作成または特定したSharePoint サイト内の目的の場所に移動し、web サイトのルートになるルートフォルダーを作成します。 作成者が販促物ドキュメント(ドラフトフォルダーやオーサリング方法ドキュメントなど)を配置できる共有スペースが確保されるように、SharePointのリストルートを直接使用しないことをお勧めします。
ファイル構造の例は、次のようになります。 website
フォルダーをルートとして:
3. fstab.yaml の設定
次の手順では、にマウントポイントを設定します。 fstab.yaml
を Web サイトのルートに指定します。 通常は以下のような形をしている:
https://<tenant>.SharePoint.com/sites/<sp-site>/Shared%20Documents/website
ただし、SharePoint サイトおよびリストの作成方法によって異なる場合があります。 URL を取得する最も簡単な方法は、ブラウザーアドレスから最初の部分をコピーして通過させることです。以下に例を示します。
その後、残りのリンクを手動で追加します(UI を介して共有リンクをコピーすると、不要な情報が追加されるので、URL の正規の表現を使用することをお勧めします)。 URL を作成したら、ブラウザーでもう一度入力してテストできます。 最終的に、web サイトのルートのフォルダービューに移動します。
その後、を更新します fstab.yaml
その通り。
次に例を示します。
mountpoints:
/: https://adobeenterprisesupportaem.SharePoint.com/sites/hlx-test-project/Shared%20Documents/website
設定を完了するには、をコミットします。 fstab.yaml
メインブランチに戻ります。
4.登録ポータルにアクセスする
概要
AEM サービスが作成したコンテンツにアクセスするには、いくつかの情報と設定が必要です。 AEM サービス(クラウド関数)は、 MS Graph API アプリケーション(または設定済みユーザー)に代わって。 これを行うには、最初にのコンテキストで認証を行う必要があります。 用途. アプリケーションに指定されるスコープが MS Graph API に対するサービスの権限を定義するので、これは重要です。 例えば、ドキュメントの読み取りと書き込みは許可されますが、アクセス制御を変更することはできません。
アプリケーションは、テナントの各 Active Directory で「エンタープライズアプリケーション」として表されます。 エンタープライズアプリケーションに付与される権限によって、そのテナントのリソースでサービスがアクセスできる項目が最終的に定義されます。 ユーザーがアプリケーションを使用できるようにするには、Active Directory 管理者が特定のアクセス許可を承認する必要があります。 このいわゆる「管理者の同意」とは、アプリが持てる権限を検証し、制御するメカニズムです。 これは、疑わしいアプリがユーザーを騙して、公式ではないアプリを信頼させるのを防ぐためです。 管理者の同意手順を追加すると、IT セキュリティによって、従業員が使用できるアプリを制御できます。
1.登録ポータルへのログイン
MSGraph または Powershell を使用したアプリケーションの作成
または、MSGraph または Powershell を使用して Enterprise アプリケーションを作成することもできます。
Azure UI で表示されるようにするには、を追加する必要もあります。 WindowsAzureActiveDirectoryIntegratedApp
タグ。 これは、アプリケーションの作成時に直接実行できます。
グラフエクスプローラーの使用:
POST https://graph.microsoft.com/v1.0/servicePrincipals
Content-type: application/json
{
"appId": "e34c45c4-0919-43e1-9436-448ad8e81552",
"tags": [
"WindowsAzureActiveDirectoryIntegratedApp"
]
}
Powershell の使用:
PS> connect-MgGraph -Scopes "Application.ReadWrite.All"
PS> New-MgServicePrincipal -AppId e34c45c4-0919-43e1-9436-448ad8e81552 -Tags WindowsAzureActiveDirectoryIntegratedApp
アプリケーション権限を持つ Franklin サービスの追加
上記と同じ、のエンタープライズアプリケーション Franklin Service (83ab2922-5f11-4e4d-96f3-d1e0ff152856)
は、まだ Azure に存在しません。
追加するには、Graph Explorer または PowerShell を使用して追加します。
グラフエクスプローラーの使用:
POST https://graph.microsoft.com/v1.0/servicePrincipals
Content-type: application/json
{
"appId": "83ab2922-5f11-4e4d-96f3-d1e0ff152856",
"tags": [
"WindowsAzureActiveDirectoryIntegratedApp"
]
}
Powershell の使用:
PS> connect-MgGraph -Scopes "Application.ReadWrite.All"
PS> New-MgServicePrincipal -AppId 83ab2922-5f11-4e4d-96f3-d1e0ff152856 -Tags WindowsAzureActiveDirectoryIntegratedApp
関連トピック:
Powershell または Graph エクスプローラーを使用したアプリケーションの役割の追加
または、アプリの役割を追加するには、次の手順を実行します。
- エンタープライズアプリケーションのサービスプリンシパル(
principalId
)に設定します。 これは上で作成したものです。 - Microsoft Graph API のサービスプリンシパルを検索します(
resourceId
) - の ID の検索
Sites.Selected
アプリケーションの役割(appRoleId
) - アプリケーションの役割を管理 ID (エンタープライズアプリケーション)に割り当てます
使用 powershell これは、次の方法で行うことができます。
$ObjectId = "abcdef-1234-49b6-b660-cc85b34fe516" <<------ replace with your enterprise app id
$AAD_SP = Get-AzureADServicePrincipal -SearchString "Microsoft Graph";
$AAD_SP
$MSI = Get-AzureADServicePrincipal -ObjectId $ObjectId
if($MSI.Count -gt 1)
{
Write-Output "More than 1 principal found, please find your principal and copy the right object ID. Now use the syntax $MSI = Get-AzureADServicePrincipal -ObjectId <your_object_id>"
Exit
}
$AAD_AppRole = $AAD_SP.AppRoles | Where-Object {$_.Value -eq "Sites.Selected"}
New-AzureADServiceAppRoleAssignment -ObjectId $MSI.ObjectId -PrincipalId $MSI.ObjectId -ResourceId $AAD_SP.ObjectId[0] -Id $AAD_AppRole.Id
使用 グラフエクスプローラー 手順が増えます。
- エンタープライズアプリケーションのプリンシパルを検索します。
GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=appId eq '83ab2922-5f11-4e4d-96f3-d1e0ff152856'
...
"value": [
{
"id": "6761ada0-733b-4a02-98b2-3db970834fe0",
...
これが私たちになります principalId
- Microsoft Graph API のサービスプリンシパルを検索します
GET https://graph.microsoft.com/v1.0/servicePrincipals?$filter=appId eq '00000003-0000-0000-c000-000000000000'
...
"value": [
{
"id": "5159db96-7193-414e-9730-b1d1e4448443",
...
これはです resourceId
. (アプリケーションロールを定義するリソース)
- アプリケーションロールの ID を検索します。
GET https://graph.microsoft.com/v1.0/servicePrincipals/5159db96-7193-414e-9730-b1d1e4448443/appRoles
...
{
"allowedMemberTypes": [
"Application"
],
"description": "Allow the application to access a subset of site collections without a signed in user. The specific site collections and the permissions granted will be configured in SharePoint Online.",
"displayName": "Access selected site collections",
"id": "883ea226-0bf2-4a8f-9f9d-92c9162a727d",
"isEnabled": true,
"origin": "Application",
"value": "Sites.Selected"
},
...
この ID は appRoleId
- アプリケーションの役割を管理対象 ID に割り当てます。 リクエストの形式は次のとおりです。
POST https://graph.microsoft.com/v1.0/servicePrincipals/${principalId}/appRoleAssignedTo
Content-Type: application/json
{
"principalId": "${principalId}",
"resourceId": "${resourceId}",
"appRoleId": "${appRoleId}"
}
https://graph.microsoft.com/v1.0/servicePrincipals/6761ada0-733b-4a02-98b2-3db970834fe0/appRoleAssignedTo
Content-type: application/json
{
"principalId": "6761ada0-733b-4a02-98b2-3db970834fe0",
"resourceId": "5159db96-7193-414e-9730-b1d1e4448443",
"appRoleId": "883ea226-0bf2-4a8f-9f9d-92c9162a727d"
}
Sharepoint サイトへのアクセス許可の追加
SharePoint サイトにアクセス許可を追加するには、 SiteId
.
これは、グラフエクスプローラーを再度使用して行うことができます。
GET https://graph.microsoft.com/v1.0/sites/{host-name}:/{server-relative-path}
例:
GET https://graph.microsoft.com/v1.0/sites/adobeenterprisesupportaem.sharepoint.com:/sites/hlx-test-project
{
...
"id": "adobeenterprisesupportaem.sharepoint.com,03cc3587-0e4d-405e-b06c-ffb0a622b7ac,5fbc1df5-640c-4780-8b59-809e3193c043",
...
}
使用, Id
次の権限を設定できます。
POST https://graph.microsoft.com/v1.0/sites/adobeenterprisesupportaem.sharepoint.com,03cc3587-0e4d-405e-b06c-ffb0a622b7ac,5fbc1df5-640c-4780-8b59-809e3193c043/permissions
Content-type: application/json
{
"roles": [
"write"
],
"grantedToIdentities": [
{
"application": {
"id": "83ab2922-5f11-4e4d-96f3-d1e0ff152856",
"displayName": "Franklin Service"
}
}
]
}