ROOM64 / KNOWLEDGE / N8N

จัดเตรียมการลงทะเบียนแอป SharePoint ด้วย Azure CLI

Provision a SharePoint app registration with the Azure CLI — สร้างการลงทะเบียนแอป Microsoft Entra ที่ต่ำสุดพิเศษสำหรับ node Microsoft SharePoint ใน n8n โดยใช้อนุญาตที่ชัดเจนและคัดลอกคำสั่ง Azure CLI

อ่านต้นฉบับที่ n8n Official Docs ↗
คำแปลอัตโนมัติภาษาไทย แปลด้วย Google Translate / M2M100 จากเอกสาร n8n ณ วันที่ 2026-09-28 ยังไม่ได้ตรวจทานทางเทคนิคทุกหน้า โค้ดและ expression คงตามต้นฉบับ ชื่อ node เมนู และศัพท์เทคนิคคงภาษาอังกฤษเพื่อเทียบกับหน้าจอ n8n

Credentials · ตั้งค่าการเชื่อมต่อ · Provision a SharePoint app registration with the Azure CLI

← Credentials

สารบัญในหน้านี้

สร้างการลงทะเบียนแอป Microsoft Entra ที่ต่ำสุดพิเศษสำหรับ node Microsoft SharePoint ใน n8n โดยใช้อนุญาตที่ชัดเจนและคัดลอกคำสั่ง Azure CLI

หน้านี้ใช้ผู้เช่าใหม่ของ Microsoft 365 สำหรับการลงทะเบียนแอป Microsoft SharePoint สามารถลงชื่อเข้าสู่ระบบโดยใช้ Microsoft Entra Service Principal credentials มันให้คุณอนุญาตให้ปลั๊กที่แสดงให้เห็นที่จะติดสคริปต์ที่จะทำงานและข้อเสนอต่อเว็บไซต์ที่ตั้งค่าส่วนใหญ่หายไป

มันเขียนไว้สำหรับผู้ดูแลระบบที่ยอมรับและสร้างการลงทะเบียนแอป หากทีมความปลอดภัยของคุณตรวจสอบคำขออนุญาตส่วนที่ชัดเจนและตารางอนุญาตเป็นสิ่งที่พวกเขาต้องการที่จะเห็น

ปุ่ม Microsoft SharePoint สนับสนุนการเข้าถึง app-only จากรุ่น 2 ของปุ่ม

ก่อนที่คุณเริ่ม

คุณต้องการ:

  • ที่ อะซูอรี CLI ติดตั้ง, เข้าร่วมกับ az login --tenant <your-tenant-id>.
  • บัญชีที่สามารถสร้างการลงทะเบียนแอปและให้ความยินยอมของผู้ดูแลระบบ ความยินยอมของผู้ดูแลระบบต้องการบทบาทของผู้ดูแลระบบระดับโลกหรือผู้ดูแลระบบบทบาทพิเศษ
  • ที่อยู่ของแต่ละเว็บไซต์ SharePoint ที่การทำงานจะใช้เช่น https://contoso.sharepoint.com/sites/mysite.

เลือกระดับอนุญาต

ทั้งสามตัวเลือกคือ Microsoft Graph Application การอนุญาตที่ได้รับอนุญาตด้วยชื่อเดียวกันเป็นอนุญาตที่แตกต่างกันและไม่ใช้สำหรับการเข้าถึงแอปเท่านั้น

อนุญาต สิ่งที่แอปสามารถเข้าถึงได้ เลือกมันเมื่อ
Sites.Selected เท่านั้นเว็บไซต์ที่คุณให้มันด้วยบทบาทที่คุณให้แต่ละ ปพลิเคชันเริ่มต้นด้วยการเข้าถึงอะไรดังนั้นทีมรักษาความปลอดภัยสามารถอนุมัติได้โดยไม่ต้องอนุมัติผู้เช่าทั้งหมด
Sites.Read.All ทุกเว็บไซต์ในผู้เช่าอ่านเพียง workflow อ่านจากเว็บไซต์จำนวนมากหรือคุณต้องการค้นหาเว็บไซต์ของ node
Sites.ReadWrite.All ทุกเว็บไซต์ในผู้เช่าอ่านและเขียน workflow เขียนไปยังเว็บไซต์จำนวนมากหรือคุณต้องการค้นหาเว็บไซต์ของ node

ด้วย Sites.Selected อ่านและเขียนไม่ใช่ตัวเลือกที่ชัดเจน การลงทะเบียนแอปต้องการอนุญาตเดียวและคุณตัดสินใจที่จะอ่านหรือเขียนตามเว็บไซต์เมื่อคุณ ให้แอปเข้าถึงเว็บไซต์ .

ค้นหาเว็บไซต์ (น็อต) From List ตัวเลือกสำหรับ Site field) ต้องใช้ใบอนุญาตการอ่านที่ครอบคลุมด้วย Sites.Selected , ตั้งค่า Site ฟิลด์ถึง By URL หรือ By ID แทนไม่จำเป็นต้องค้นหา

การอนุญาตแสดงให้เห็น fragments

เก็บสิ่งนี้เป็น n8n-sharepoint-permissions.json มันขอให้ Sites.Selected จาก Microsoft Graph และไม่มีอะไรอื่น:

[
	{
		"resourceAppId": "00000003-0000-0000-c000-000000000000",
		"resourceAccess": [
			{
				"id": "883ea226-0bf2-4a8f-9f9d-92c9162a727d",
				"type": "Role"
			}
		]
	}
]

สำหรับใบอนุญาตที่ครอบคลุมแทนแทนการแทนที่ id ราคา :

ใบอนุญาตการใช้งาน id ราคา type
Sites.Selected 883ea226-0bf2-4a8f-9f9d-92c9162a727d Role
Sites.Read.All 332a536c-c7ef-4017-ab91-336970924f0d Role
Sites.ReadWrite.All 9492366f-7969-46a4-8d15-ed1a20078fff Role

resourceAppId เป็น Microsoft Graph. the SharePoint node calls Microsoft Graph, so a fragment that targets the older SharePoint Online API ( 00000003-0000-0ff1-ce00-000000000000 ) ให้แอพลิเคชันอะไรที่ node สามารถใช้ได้ type เป็นเสมอ Role: Role หมายถึงใบอนุญาตการสมัคร Scope ซึ่งหมายความว่าหนึ่งที่ได้รับอนุญาต

ใช้ไฟล์ในสองวิธี:

  • Azure CLI : ผ่านมันเป็น --required-resource-accesses @n8n-sharepoint-permissions.json เช่นเดียวกับสคริปต์ด้านล่าง
  • ไมโครซอฟต์แวร์เข้าศูนย์ admin (Microsoft Entra admin center) : เปิดการลงทะเบียนแอปของคุณเลือก Manifest , และใส่แร่เป็นค่าของ requiredResourceAccess.

ให้การลงทะเบียนแอปด้วย Azure CLI

การเรียกใช้คำสั่งเหล่านี้จากโฟลเดอร์ n8n-sharepoint-permissions.json พวกเขาสร้างการลงทะเบียนแอปและ Client Secret แล้วให้ความยินยอมของผู้ดูแลระบบซึ่งยังสร้างหลักการบริการของแอป:

# Create the app registration for this tenant only, with the permission already requested
APP_ID=$(az ad app create \
	--display-name "n8n SharePoint" \
	--sign-in-audience AzureADMyOrg \
	--required-resource-accesses @n8n-sharepoint-permissions.json \
	--query appId --output tsv)

# Create a client secret valid for one year, and print it once
az ad app credential reset \
	--id "$APP_ID" \
	--display-name "n8n credential" \
	--years 1 \
	--query password --output tsv

# Grant admin consent. This also creates the app's service principal in the tenant
az ad app permission admin-consent --id "$APP_ID"

# Print the two IDs you enter in n8n
echo "Application (client) ID: $APP_ID"
echo "Directory (tenant) ID: $(az account show --query tenantId --output tsv)"

คัดลอกความลับจากการส่งออกของคำสั่งที่สอง Microsoft แสดงมันเพียงครั้งเดียว

สิ่งบางอย่างที่จะมองเห็น:

  • ในการลงทะเบียนแอปที่มีอยู่เพิ่ม --append ถึง az ad app credential reset. ไม่มีมันคำสั่งจะลบความลับและใบรับรองที่อยู่ในแอปและบริการใด ๆ ที่ใช้พวกเขาจะหยุดทำงาน
  • ไม่ทำงาน az ad sp create ก่อนที่จะให้ความยินยอม az ad app permission admin-consent สร้างบริการหลักของตัวเอง หากหนึ่งมีอยู่แล้วความยินยอมผิดพลาดกับ Request_BadRequest และข้อความ “The <application-client-id> ชื่อหลักของบริการที่มีอยู่สำหรับผู้เช่า"
  • ความยินยอมของ Admin อาจล้มเหลวเมื่อคุณดำเนินการครั้งแรก (Admin consent can fail the first time you run it.) Microsoft Entra ใช้เวลาไม่กี่วินาทีเพื่อทำซ้ำการลงทะเบียนแอปใหม่ รายงานคำสั่ง Directory_ObjectNotFound ด้วย "ไม่สามารถอ่านข้อมูล บริษัท จากไดเรกทอรี" รอและเรียกใช้อีกครั้ง
  • หากความยินยอมของผู้ดูแลระบบยังคงไม่ประสบความสำเร็จให้มันอยู่ในพอร์ทัลแทน (If admin consent keeps failing, grant it in the portal instead.) az ad app permission admin-consent Calls a legacy Azure endpoint that doesn't work for each account. เปิดการลงทะเบียนแอป ใบอนุญาต API (API permissions) หน้าใน Microsoft เข้าสู่ศูนย์ดูแลระบบและเลือก อนุญาตให้ admin <your-tenant>.

อนุญาตให้แอปเข้าถึงเว็บไซต์

ลบส่วนนี้หากคุณเลือกใบอนุญาตที่ครอบคลุมผู้เช่า แอพลิเคชันที่มีเพียง Sites.Selected ไม่สามารถเข้าถึงเว็บไซต์ใด ๆ จนกระทั่งผู้ดูแลระบบจะให้การเข้าถึงเว็บไซต์หนึ่งในครั้งเดียว ขั้นตอนนี้ไม่มีหน้าในศูนย์ดูแลระบบ Microsoft Entra หรือศูนย์ดูแลระบบ SharePoint ซึ่งเป็นเหตุผลที่การตั้งค่าพลาดมัน จนกระทั่งคุณจะเสร็จสิ้นการดำเนินงานแต่ละครั้งจะล้มเหลวด้วยข้อผิดพลาด 403

เคล็ดลับ read สำหรับการทำงานของกระแสการอ่านเท่านั้นหรือ write สำหรับ workflow ที่อัปโหลดไฟล์หรือเปลี่ยนรายการรายการ

คุณต้องการ ID ของเว็บไซต์ โปรดสอบถามโดยที่อยู่:

GET https://graph.microsoft.com/v1.0/sites/contoso.sharepoint.com:/sites/mysite

PnP PowerShell

ผู้ดูแลระบบ SharePoint สามารถใช้ ปั๊ม PowerShell . เชื่อมต่อกับเว็บไซต์แล้วให้แอปเข้าถึงมัน:

Connect-PnPOnline -Url "https://contoso.sharepoint.com/sites/mysite" -Interactive -ClientId <pnp-app-client-id>

Grant-PnPEntraIDAppSitePermission -AppId <application-client-id> -DisplayName "n8n SharePoint" -Permissions Write

-Permissions ใช้ Read, Write, Manage หรือ FullControl หมายเลขรุ่น: node needs Read หรือ Write.

การลงทะเบียนแบบอินเทอร์เน็ตต้องมีการลงทะเบียนแอพของตัวเองสำหรับ PnP PowerShell ซึ่ง Register-PnPEntraIDAppForInteractiveLogin การสร้าง ID ของแอปเช่นนี้ -ClientId.

Microsoft Graph

ส่งคำขอหนึ่งต่อเว็บไซต์เป็นผู้ดูแลระบบ Sites.FullControl.All ใบอนุญาต :

POST https://graph.microsoft.com/v1.0/sites/<site-id>/permissions
Content-Type: application/json

{
	"roles": ["write"],
	"grantedToIdentities": [
		{
			"application": {
				"id": "<application-client-id>",
				"displayName": "n8n SharePoint"
			}
		}
	]
}

เครื่องตรวจจับกราฟ สามารถส่งได้ เปิด การเปลี่ยนแปลงอนุญาต (Modify permissions) และยินยอมที่จะ Sites.FullControl.All ครั้งแรก. หมายถึง ให้สิทธิ์การเข้าถึงต่อไซต์ สำหรับสิ่งที่ 403 ในคำขอนี้หมายถึง

ทำไม Azure CLI ไม่สามารถทำขั้นตอนนี้ (Why the Azure CLI can't do this step)

az rest --method POST เมื่อเทียบกับจุดสิ้นสุดเดียวกัน 403 จะกลับมาแม้แต่สำหรับผู้ดูแลระบบระดับโลก Azure CLI จะลงทะเบียนเป็นแอพลิเคชันของ Microsoft ของตัวเองและแอพลิเคชันนี้ไม่ถือ Sites.FullControl.All การยอมรับอนุญาตในการลงทะเบียนแอปของคุณเองไม่เปลี่ยนแปลงสิ่งที่ token ของ Azure CLI มี ใช้ PnP PowerShell หรือ Graph Explorer แทน

เสร็จสิ้นการตั้งค่าใน n8n

  1. สร้างก Microsoft Entra Service Principal credentials โดยป้อน Directory (tenant) ID, Application (client) ID และ Client Secret ที่สคริปต์แสดงผล หมายถึง Microsoft Entra Service Principal credentials สำหรับตัวเลือกใบรับรองและสำหรับคลาวด์สวีเดน
  2. ใน node Microsoft SharePoint, set Authentication ถึง Microsoft Entra Service Principal (App-Only) และเลือกใบรับรอง
  3. ตั้งค่า Site ฟิลด์ถึง By URL และแทรกที่อยู่ของเว็บไซต์ที่คุณให้การเข้าถึงแอป
  4. ปลั๊ก Node

จาก n8n 2.40.0 การทดสอบการเชื่อมต่อของใบรับรองเท่านั้นที่ตรวจสอบว่าแอปสามารถลงทะเบียนได้ ใบอนุญาตที่หายไป, การอนุญาตที่หายไป, หรือใบอนุญาตที่หายไปต่อเว็บไซต์ผ่านการทดสอบและล้มเหลวเมื่อจุดทำงาน, ด้วยข้อผิดพลาด 403 ที่เรียกว่าใบอนุญาตการดำเนินงานที่จำเป็น

ทรัพยากรที่เกี่ยวข้อง

เอกสารและภาพต้นฉบับ © n8n GmbH · คำแปล คู่มือประกอบ และภาพแนวคิดเพิ่มเติมโดย Room64 · เว็บไซต์นี้ไม่ใช่เอกสารทางการของ n8n · Apache 2.0 พร้อม Commons Clause

มีงานที่อยากให้ Software, AI หรือ Automation ช่วยอยู่ไหม?

เล่า workflow หรือปัญหาที่ทีมกำลังเจอ เราช่วยดูได้ว่าควรใช้ระบบสำเร็จรูป เชื่อมเครื่องมือเดิม หรือพัฒนาเพิ่มเฉพาะส่วนไหน

คุยกับเราทาง LINEhello@room64.net