Hello,
I’ve been trying to add a Microsoft provider to accounts-sso so I can make a OneDrive kio plugin.
Microsoft uses a fairly standard OAUTH2 flow for authentication, very similar to Google’s. It is documented here.
I tried to add this to /usr/share/accounts/providers/kde/:
<?xml version="1.0" encoding="UTF-8"?>
<provider id="microsoft">
<name>Microsoft</name>
<description>Includes Microsoft OneDrive</description>
<icon>im-google</icon>
<translations>kaccounts-providers</translations>
<domains>.*microsoftonline\.com|.*live\.com|.*microsoft\.com</domains>
<template>
<group name="auth">
<setting name="method">oauth2</setting>
<setting name="mechanism">web_server</setting>
<group name="oauth2">
<group name="web_server">
<setting name="Host">login.microsoftonline.com</setting>
<setting name="AuthPath">common/oauth2/v2.0/authorize?prompt=select_account</setting>
<setting name="TokenPath">common/oauth2/v2.0/token</setting>
<setting name="RedirectUri">http://localhost/oauth2callback</setting>
<setting name="ResponseType">code</setting>
<setting type="as" name="Scope">[
'files.readwrite.all',
'offline_access'
]</setting>
<setting type="as" name="AllowedSchemes">['https']</setting>
<setting name="ClientId">CLIENTID_OMITTED</setting>
<setting type="b" name="ForceClientAuthViaRequestBody">true</setting>
</group>
</group>
</group>
</template>
</provider>
An entry correctly appears in System Settings, and upon clicking, it does open a window, but the window is completely blank. Right-clicking only offers a “reload” button that briefly shows a spinning loading symbol then returns to the same blank screen.
Monitoring D-Bus using dbus-monitor, everything seems fine.