diff --git a/_locales/en/messages.json b/_locales/en/messages.json
index d1864f5c6..6d36bd739 100644
--- a/_locales/en/messages.json
+++ b/_locales/en/messages.json
@@ -321,6 +321,13 @@
"message": "Sign in",
"description": "Sign in to 3rd party storage services"
},
+ "sign_in_business": {
+ "message": "Sign in (Business)",
+ "description": "Sign in to 3rd party storage services"
+ },
+ "onedrive_business_perms": {
+ "message": "Why do business accounts require more permissions?"
+ },
"log_out": {
"message": "Logout",
"description": "Sign out of 3rd party storage services"
diff --git a/src/background.ts b/src/background.ts
index 2722816ea..1358c02df 100644
--- a/src/background.ts
+++ b/src/background.ts
@@ -331,7 +331,9 @@ function getBackupToken(service: string) {
redirUrl = encodeURIComponent(chrome.identity.getRedirectURL());
authUrl = `https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id=${
getCredentials().onedrive.client_id
- }&response_type=code&redirect_uri=${redirUrl}&scope=https%3A%2F%2Fgraph.microsoft.com%2FFiles.ReadWrite.AppFolder%20https%3A%2F%2Fgraph.microsoft.com%2FUser.Read%20offline_access&response_mode=query&prompt=consent`;
+ }&response_type=code&redirect_uri=${redirUrl}&scope=https%3A%2F%2Fgraph.microsoft.com%2FFiles.ReadWrite${
+ localStorage.oneDriveBusiness !== "true" ? ".AppFolder" : ""
+ }%20https%3A%2F%2Fgraph.microsoft.com%2FUser.Read%20offline_access&response_mode=query&prompt=consent`;
}
chrome.identity.launchWebAuthFlow(
{ url: authUrl, interactive: true },
@@ -459,7 +461,11 @@ function getBackupToken(service: string) {
xhr.send(
`client_id=${
getCredentials().onedrive.client_id
- }&grant_type=authorization_code&scope=https%3A%2F%2Fgraph.microsoft.com%2FFiles.ReadWrite.AppFolder%20https%3A%2F%2Fgraph.microsoft.com%2FUser.Read%20offline_access&code=${value}&redirect_uri=${redirUrl}&client_secret=${encodeURIComponent(
+ }&grant_type=authorization_code&scope=https%3A%2F%2Fgraph.microsoft.com%2FFiles.ReadWrite${
+ localStorage.oneDriveBusiness !== "true"
+ ? ".AppFolder"
+ : ""
+ }%20https%3A%2F%2Fgraph.microsoft.com%2FUser.Read%20offline_access&code=${value}&redirect_uri=${redirUrl}&client_secret=${encodeURIComponent(
getCredentials().onedrive.client_secret
)}`
);
diff --git a/src/components/Popup/OneDrivePage.vue b/src/components/Popup/OneDrivePage.vue
index 1fb2ad42e..80bf74472 100644
--- a/src/components/Popup/OneDrivePage.vue
+++ b/src/components/Popup/OneDrivePage.vue
@@ -26,6 +26,14 @@