605475 ランダム
 HOME | DIARY | PROFILE 【フォローする】 【ログイン】

「東雲 忠太郎」の平凡な日常のできごと

「東雲 忠太郎」の平凡な日常のできごと

【毎日開催】
15記事にいいね!で1ポイント
10秒滞在
いいね! --/--
おめでとうございます!
ミッションを達成しました。
※「ポイントを獲得する」ボタンを押すと広告が表示されます。
x
2024.02.18
XML
カテゴリ:REST API


SharePoint REST APIを使用して通常のフォルダにアクセス許可を付与する方法は、次の手順に従います。


認証: 最初に、REST APIを呼び出すために必要な認証を行います。通常、OAuth認証が使用されますが、サーバー側のコードで認証情報をハードコードする場合は、別の認証方法を使用することもできます。


フォルダーの情報を取得: アクセス許可を変更したいフォルダーの情報を取得します。これには、フォルダーのIDやURLなどの識別子が含まれます。


アクセス許可を変更する: 取得したフォルダーの情報を使用して、アクセス許可を変更します。これには、REST APIの breakroleinheritance エンドポイントを使用して、フォルダーの親から継承されたアクセス許可を切り離し、独自のアクセス許可を設定します。次に、roleassignments/addroleassignment エンドポイントを使用して、ユーザーやグループに対する新しいアクセス許可を追加します。


以下は、Pythonを使用してSharePoint REST APIを呼び出してアクセス許可を設定する簡単な例です。


python

Copy code

import requests

from requests.auth import HTTPBasicAuth


# SharePointのURLと認証情報

site_url = "https://your-sharepoint-site.com"

username = "your_username"

password = "your_password"


# フォルダーのURL

folder_url = "https://your-sharepoint-site.com/sites/your-site/Shared Documents/Your Folder"


# 認証情報の設定

auth = HTTPBasicAuth(username, password)


# アクセス許可を変更するためのREST APIエンドポイント

break_role_inheritance_url = f"{site_url}/_api/web/GetFolderByServerRelativeUrl('{folder_url}')/breakroleinheritance(copyRoleAssignments=true, clearSubscopes=true)"

add_role_assignment_url = f"{site_url}/_api/web/GetFolderByServerRelativeUrl('{folder_url}')/roleassignments/addroleassignment(principalid=<principal_id>,roledefid=<role_definition_id>)"


# フォルダーのアクセス許可を変更する

response = requests.post(break_role_inheritance_url, auth=auth)

if response.status_code == 200:

    print("Inheritance broken successfully.")

    # ロール定義IDとプリンシパルIDを使用して、アクセス許可を追加

    add_role_assignment_url = add_role_assignment_url.replace("<principal_id>", "<your_principal_id>").replace("<role_definition_id>", "<your_role_definition_id>")

    response = requests.post(add_role_assignment_url, auth=auth)

    if response.status_code == 200:

        print("Role assignment added successfully.")

    else:

        print("Failed to add role assignment.")

else:

    print("Failed to break inheritance.")

このコードでは、breakroleinheritance エンドポイントを使用してフォルダーのアクセス許可の継承を切り離し、roleassignments/addroleassignment エンドポイントを使用して新しいアクセス許可を追加しています。<principal_id>と<role_definition_id>は、それぞれユーザーやグループのIDとアクセス許可のロール定義のIDに置き換える必要があります。






お気に入りの記事を「いいね!」で応援しよう

Last updated  2024.02.18 09:07:12



© Rakuten Group, Inc.