Можно использовать @ azure / msal-browser с веб-страницы, используя как перенаправление, так и всплывающие формы проверки подлинности, но когда веб-страница отображается внутри области задач надстройки Office, он всегда открывает окно браузера по умолчанию вместо того, чтобы оставаться внутри панели задач.
@ azure / msal-browser - это MSAL версии 2.0, которая поддерживает PKCE.
Было опубликовано несколько сообщений и вопросы, касающиеся OAuth с надстройками Office, но все они были в контексте неявного потока, а не PKCE.
Почему OAuth 2.0, PKCE по-прежнему не работают для надстроек Office?
// pseudo-code
import * as msal from '@azure/msal-browser';
(() => {
Office.initialize = () => {
const config: msal.Configuration = {
auth: {
clientId: 'fc19440a-334e-471e-af53-a1c1f53c9226',
authority: 'https://login.microsoftonline.com/5b19b8a0-c013-999a-8ab1-74aff33d287e',
redirectUri: 'https://websitename.com/singlepageapp.html'
},
cache: {
cacheLocation: 'sessionStorage',
storeAuthStateInCookie: false
}
};
const publicClientApp = new msal.PublicClientApplication(config);
publicClientApp.handleRedirectCallback(authCallback);
const request: msal.AuthenticationParameters = {
scopes: ['user.read', 'files.read.all'],
};
// calling
publicClientApp.acquireTokenRedirect(request);
// calling
publicClientApp.loginRedirect(request);
};
// calling
publicClientApp.GetAllAccounts()
})();
Ссылки:
https://github.com/OfficeDev/PnP-OfficeAddins/tree/master/Samples/auth/Office-Add-in-Microsoft-Graph-React
https://docs.microsoft.com/en-us/azure/active-directory/develop/tutorial-v2-javascript-auth-code