!OneDrive integration
\\
It is Microsoft Graph REST API-based integration.\\
__Proxy__: If your server's internet connection uses a proxy server. You need to whitelist domains: login.microsoftonline.com, graph.microsoft.com\\
\\
You will start at the Microsoft Azure portal:\\
[https://azure.microsoft.com/en-us/features/azure-portal/]\\
\\
__Ondrive Personal__ and __OneDrive Business__ have different settings.\\
\\
__Application registration: __Go to the App registrations and click on New registration:\\
\\
Name it. Select the Microsoft account types. The redirect URL must end with register_microsoft_graph_api/. Then click on register.\\
\\
[attachments|register_app.png]\\
\\
Under the redirect URL configuration 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. Choose Delegated permission and add the "Files.ReadWrite.All" permission:\\
\\
[attachments|permission_microsoft_graph.png]\\
\\
!!!1. OneDrive Business Type\\
\\
__Available on Version 10.5.1 Build : 14+__\\
\\
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).\\
\\
[attachments|ms_graph_app_permission.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]\\
\\
__OneDrive remote item 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.\\
__User id or User principal name:__ Provide the user's Id or the user's principal name.\\ 
\\
[attachments|remote_item_app_permission.png]\\
\\
!!!2 Ondrive Personal Type\\
\\
__!!!Constraint:__ Microsoft Graph REST API does not support stream upload. In order to integrate with CrushFTP the files are temporarily stored as a local file (CrushFTP install folder/onedrive/) during the upload.\\
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).\\
\\
[attachments|ms_graph_delegated.png]\\
\\
[attachments|permission_final.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]\\
\\
__OneDrive remote item settings:__\\
\\
__!!! The CrushFTP admin page URL must match the redirect URL.__ In our example: http://localhost:9090\\
\\
Select the OneDrive item type and click on the "Get Refresh Token" button. Provide the Client ID, Client Secret, and Tenant. Tenant: See your App registration -> Overview -> EndPoints. Based on the App Registration Account type it can be an id, common, or consumer.\\
\\
[attachments|remote_item_settings.png]\\
\\
Click on the "OK" button, log in with your Azure credentials, and allow CrushFTP to have access to your OneDrive files. After that the form will disappear and the username and password will be filled. Done.\\
\\
[attachments|remote_item_done.png]\\
\\