Add new attachment

Only authorized users are allowed to upload new attachments.

List of attachments

Kind Attachment Name Size Version Date Modified Author Change note
png
app_inv_permission.png 64.3 kB 1 05-Dec-2023 05:32 krivacsz
png
app_permission_admin_consent.p... 85.3 kB 1 05-Dec-2023 05:32 krivacsz
png
app_permission_vfs_item.png 111.7 kB 3 01-May-2025 02:48 krivacsz
png
app_reg_new.png 57.5 kB 1 05-Dec-2023 05:32 krivacsz
png
app_reg_new_success.png 58.7 kB 1 05-Dec-2023 05:32 krivacsz
png
client_id.png 93.9 kB 1 05-Dec-2023 05:32 krivacsz
png
ms_graph_app_permission.png 85.0 kB 1 01-May-2025 02:20 krivacsz
png
new_registration.png 83.3 kB 3 05-Dec-2023 05:32 krivacsz
png
new_secret.png 81.9 kB 2 05-Dec-2023 05:32 krivacsz
png
permission_final.png 165.2 kB 1 05-Dec-2023 05:32 krivacsz
png
permission_microsoft_graph.png 182.9 kB 1 05-Dec-2023 05:32 krivacsz
png
register_app.png 230.6 kB 1 05-Dec-2023 05:32 krivacsz
png
remote_item_done.png 92.4 kB 1 05-Dec-2023 05:32 krivacsz
png
remote_item_settings.png 107.4 kB 2 01-May-2025 05:18 krivacsz
png
remote_item_sharepoint_specifi... 22.8 kB 1 05-Dec-2023 05:32 krivacsz
png
secret_value.png 88.6 kB 2 03-May-2025 02:37 krivacsz
png
sharepoint2_refresh_token_vfs_... 203.1 kB 1 01-May-2025 15:04 krivacsz
png
sharepoint2_vfs.png 165.8 kB 1 05-Dec-2023 05:32 krivacsz

This page (revision-249) was last changed on 13-Jun-2025 01:53 by krivacsz

This page was created on 05-Dec-2023 05:32 by krivacsz

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Difference between version and

At line 1 changed one line
!!!1. Sharepoint Microsoft Graph REST API based integration.\\
!!!1. Sharepoint Microsoft Graph REST API-based integration.\\
At line 3 changed one line
__!!!Constraint:__ Microsoft Graph REST API does not support stream upload. In order to integrate with CrushFTP the files are temporary stored as local file (CrushFTP install folder/sharepoint/) during the upload.\\
More info about Microsft Graph REST API: [https://learn.microsoft.com/en-us/graph/api/resources/onedrive?view=graph-rest-1.0}]\\
At line 5 changed one line
Go to the the Microsoft azure portal: [https://azure.microsoft.com/en-us/features/azure-portal]/\\
__Remote item name:__ Sharepoint\\
At line 7 added 4 lines
__Proxy__: If your server's internet connection uses a proxy server. You need to whitelist domains: login.microsoftonline.com, graph.microsoft.com\\
\\
Go to the Microsoft Azure portal: [https://azure.microsoft.com/en-us/features/azure-portal]/\\
\\
At line 11 changed one line
Name it. Select the Multitenant and personal Microsoft accounts type. The redirect url must ends with :register_microsoft_graph_api/. Then click on register.\\
Name it. Select the Multitenant and personal Microsoft accounts type. The redirect URL must end with "register_microsoft_graph_api/". Then click on register.\\
At line 13 changed one line
[attachments|register_app.png]
{{{
http://localhost:9090/register_microsoft_graph_api/
}}}
At line 15 changed one line
__API permission :__ You also need to provide permission for the Microsoft Graph. Go to the Api permission. Click on Add permission, select Microsoft Graph. Choose Delegated permission and add the "Files.ReadWrite.All" permission:\\
[attachments|register_app.png]\\
At line 23 added 40 lines
Under the redirect URL enable the __Access Token__ to be issued by the authorization endpoint:\\
\\
[attachments|SMTP Microsoft Graph XOAUTH 2 Integration/enable_access_token.png]\\
\\
__API permission:__ You must also provide permission for the Microsoft Graph. Go to the Api permission. Click on Add Permission, and select Microsoft Graph. About __Microsoft Graph Permission__ see more details at [https://learn.microsoft.com/en-us/graph/permissions-overview?tabs=http] (it explains Application Permission and Delegated Permission).\\
\\
!!!1.1 Application Permission:\\
\\
It permits a Server to __server-to-server__ authentication. Add __Files.REadWriteAll__ permission.\\
\\
[OneDriveSetup/ms_graph_app_permission.png]\\
\\
Grant __Admin consent__ on the added permission.\\
\\
[attachments|app_permission_admin_consent.png]\\
\\
__Client id : __ You can find it at Azure portal -> App Registration -> Overview:\\
\\
[attachments|client_id.png]\\
\\
__Secret key:__ A new client secret needs to be created as well. Go to the "Certificate & secrets" and generate a new secret key. Click on New client secret.\\
\\
[attachments|new_secret.png]\\
\\
[attachments|secret_value.png]\\
\\
__Authentication related settings:__\\
\\
__User name:__ Itt must start with "app_permission", then the Client ID separated with tilda.\\
{{{
app_permission~<<Client ID>>
}}}\\
__Password:__ Client Secret.\\
__Tennant:__ The tenant id. Tenant: See your App registration -> Overview -> EndPoints. Based on the App Registration Account type it can be an ID, common, or consumer.\\
Provide the SharePoint-specific settings. See under the __1.3.Sharepoint-specific settings.__ ( Link: [https://www.crushftp.com/crush10wiki/Wiki.jsp?page=SharePoint%20Integration#section-SharePoint+Integration-1.3.SharepointSpecificSettings]\\
\\
[attachments|app_permission_vfs_item.png]\\
\\
!!!1.2 Delegated Permission:\\
\\
At line 24 changed one line
__Secret key :__ A new client secret needs to be created as well. Go to the "Certificate & secrets" and generate a new secret key. Click on New client secret:\\
__Secret key:__ A new client secret needs to be created as well. Go to the "Certificate & secrets" and generate a new secret key. Click on New client secret.\\
At line 74 added 2 lines
[attachments|secret_value.png]\\
\\
At line 30 changed one line
__!!! CrushFTP admin page url must match with the redirect url.__ In our example : http://localhost:9090\\
__!!! The CrushFTP admin page URL must match the redirect URL.__ In our example : http://localhost:9090\\
At line 32 changed one line
Select SharePoint item type click on "Get Refresh Token" button. Provide the Client ID and Client Secret, and Tenant (in almost all case it is just :common) : \\
Select the SharePoint item type and click on the "Get Refresh Token" button. Provide the Client ID and Client Secret Value (not ID, see the screenshot), and Tenant (in almost all cases it is just: common).\\
At line 36 changed one line
Click on "OK" button, log in with your azure credentials, allow CrushFTP to have access to your SharePoint files. After that the form will disappear and the username and password will be filled. Done.\\
Click on the "OK" button, log in with your Azure credentials, and allow CrushFTP to have access to your SharePoint files. After that the form will disappear and the username and password will be filled. Done.\\
At line 88 added 81 lines
!!!1.3.Sharepoint-specific settings:__\\
\\
[attachments|remote_item_sharepoint_specific_settings.png]\\
\\
__Site id__ : The SharePoint domain name.\\
__Site Path__: The path of the SharePoint site. It should start and end with a slash.\\
__Drive name__: Each SharePoint site has a document library where the site-related files are stored. See [https://support.microsoft.com/en-us/office/what-is-a-document-library-3b5976dd-65cf-4c9e-bf5a-713c10ca2872] Provide its name.\\
__Folder__: Relative path of the document library of the SharePoint site.\\
__Conflict Behaviour__: \\
- __Rename__ the file/folder if already exits\\
- __Replace__ the file/folder if already exits\\
- __Fail__ if the file/folder already exists\\
\\
!!! 2. SharePoint REST service API-based integration\\
__Remote item name:__ Sharepoint2\\
\\
More info : [https://docs.microsoft.com/en-us/sharepoint/dev/sp-add-ins/get-to-know-the-sharepoint-rest-service?tabs=csom]\\
__!!!Constraint:__ On newer Sharepoint (after 2019) Grant App permission as it is disabled by default. To enable Custom Application APP Authentication run the following PowerShell commands:\\
{{{
Install-Module -Name Microsoft.Online.SharePoint.PowerShell
$adminUPN="<SharePoint administrator account>"
$orgName="<name of your Office 365 organization>"
$userCredential = Get-Credential -UserName $adminUPN -Message "Type the password."
Connect-SPOService -Url https://$orgName-admin.sharepoint.com -Credential $userCredential
get-spotenant | Select DisableCustomAppAuthentication
set-spotenant -DisableCustomAppAuthentication $false
}}}\\
Or
\\
{{{
$creds = Get-Credential
$orgName="<name of your Office 365 organization>"
Connect-SPOService -Url https://$orgName-admin.sharepoint.com -Credential $creds
get-spotenant | Select DisableCustomAppAuthentication
set-spotenant -DisableCustomAppAuthentication $false
}}}
\\
__Advantage(Compared with MSGraph API Delegated Permission)__: Stream upload supported. There is no temporarily stored local file during the upload.\\
\\
__1. Register Add-In__\\
Navigate and log in to the SharePoint online site. Got to the Register Add-In page by entering the URL as: \\
{{{https://<sitename>.sharepoint.com/<<site path>>/_layouts/15/appregnew.aspx}}}\\
\\
Click the Generate button.\\
\\
[attachments|app_reg_new.png]\\
\\
Store the __Client ID__ and __Client Secret__ and click on __Create__ button.\\
\\
[attachments|app_reg_new_success.png]\\
\\
__2. Grant Permissions to Add-In__\\
\\
Navigate to: \\
{{{
https://<sitename>.sharepoint.com/<<site path>>/_layouts/15/appinv.aspx
}}}\\
\\
This will redirect to the Grant permission page. Enter the __Client ID__(generated earlier), in the __AppId__ textbox and click the Lookup button.\\
Provide the permission Request xml and click on __Create__ button.\\
\\
Permission Request XML content: \\
{{{
<AppPermissionRequests AllowAppOnlyPolicy="true">
<AppPermissionRequest Scope="http://sharepoint/content/sitecollection/web" Right="FullControl"/></AppPermissionRequests>}}}\\
\\
[attachments|app_inv_permission.png]
\\
__SharePoint2 remote item settings:__\\
\\
__User name__ : The created __Client ID__\\
__Password__ : The created __Client Secret__\\
__Site id__ : The sharepoint domain name.\\
__Site Path__: The path of the SharePoint site. It should start and end with a slash.\\
__Drive name__: Each SharePoint site has a document library where the site-related files are stored. See [https://support.microsoft.com/en-us/office/what-is-a-document-library-3b5976dd-65cf-4c9e-bf5a-713c10ca2872] Provide its name\\
__Folder__: Relative path of the document library of the sharepoint site.\\
\\
[attachments|sharepoint2_vfs.png]\\
\\
Version Date Modified Size Author Changes ... Change note
249 13-Jun-2025 01:53 19.117 kB krivacsz to previous
248 13-Jun-2025 01:50 19.044 kB krivacsz to previous | to last
247 09-Jun-2025 02:37 18.971 kB krivacsz to previous | to last
246 09-Jun-2025 02:27 18.887 kB krivacsz to previous | to last
245 09-Jun-2025 02:26 18.889 kB krivacsz to previous | to last
244 09-Jun-2025 02:21 18.891 kB krivacsz to previous | to last
243 09-Jun-2025 02:19 18.86 kB krivacsz to previous | to last
242 09-Jun-2025 02:17 18.773 kB krivacsz to previous | to last
241 09-Jun-2025 02:15 18.69 kB krivacsz to previous | to last
« This page (revision-249) was last changed on 13-Jun-2025 01:53 by krivacsz
G’day (anonymous guest)
CrushFTP11 | What's New
JSPWiki