!OneDrive integration

__!!!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/onedrive/) during the upload.\\
\\
It is Microsoft Graph REST API based integration.\\
__Proxy__: If your server's internet connection uses 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/]\\
\\
__Application registration: __Go to the App registrations and click on New registration:\\
\\
[attachments|new_registration.png]\\
\\
Name it. Select the Multitenant and personal Microsoft accounts type. The redirect url must ends 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 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|permission_microsoft_graph.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:__\\
\\
__!!! CrushFTP admin page url must match with the redirect url.__ In our example: http://localhost:9090\\
\\
Select OneDrive 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): \\
\\
[attachments|remote_item_settings.png]\\
\\
Click on "OK" button, log in with your azure credentials, 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]\\
\\