Поделиться через


Использование единого входа (SSO) или совместного доступа к ресурсам между источниками (CORS) в надстройке Office на основе событий или рассылки нежелательной почты

Когда надстройка реализует активацию на основе событий или интегрированные отчеты о нежелательной почте, события выполняются в отдельной среде выполнения. Чтобы настроить единый вход (SSO) или запросить внешние данные через общий доступ к ресурсам между источниками (CORS) в этих надстройках, необходимо настроить хорошо известный URI. С помощью этого ресурса Office сможет определить надстройки, включая файлы JavaScript, которые поддерживают единый вход или запросы CORS.

Примечание.

Действия, описанные в этой статье, применяются только к надстройкам, работающим в Excel, PowerPoint или Word в Windows или классической версии Outlook в Windows. Это связано с тем, что они используют файл JavaScript, в то время как эти приложения на Mac, в Интернете и outlook в Windows используют HTML-файл, который ссылается на тот же файл JavaScript. Дополнительные сведения см. в разделах Активация надстроек с помощью событий и Реализация интегрированной надстройки, сообщающей о спаме.

Перечисление разрешенных надстроек в хорошо известном URI

Чтобы получить список надстроек, которым разрешено работать с единым входом или CORS, создайте JSON-файл, определяющий каждый файл JavaScript для каждой надстройки. Затем разместите этот JSON-файл по хорошо известному URI. Хорошо известный универсальный код ресурса (URI) позволяет определить все размещенные JS-файлы, которым разрешено получать маркеры для текущего источника веб-сайта. Это гарантирует, что владелец источника имеет полный контроль над тем, какие размещенные файлы JavaScript предназначены для использования в надстройке, а какие нет, предотвращая, например, уязвимости системы безопасности, связанные с олицетворением.

В следующем примере показано, как настроить единый вход или CORS для двух надстроек (основной и бета-версии). В зависимости от количества предоставленных на веб-сервере надстроек можно перечислить любое количество надстроек.

{
    "allowed":
    [
        "https://addin.contoso.com:8000/main/js/autorun.js",
        "https://addin.contoso.com:8000/beta/js/autorun.js"
    ]
}

Разместите JSON-файл в расположении .well-known в URI в корне источника. Например, если источником является https://addin.contoso.com:8000/, то хорошо известным URI является https://addin.contoso.com:8000/.well-known/microsoft-officeaddins-allowed.json. Для уточнения этот файл должен размещаться в веб-надстройке Office, а не на веб-сервере, на который вы пытаетесь выполнить запрос CORS. Пример использования рекомендуемого расположения см. в примере outlook-add-in-SSO-events .

Источник ссылается на шаблон схемы + поддомен + домен + порт. Имя расположения должно быть .well-known, а имя файла ресурсов microsoft-officeaddins-allowed.json. Этот файл должен содержать объект JSON с атрибутом с именем , allowed значением которого является массив всех файлов JavaScript, авторизованных для единого входа для соответствующих надстроек.

После настройки известного URI, если надстройка реализует единый вход, можно вызвать API getAccessToken() для получения маркера доступа с удостоверением пользователя.

Важно!

Хотя OfficeRuntime.auth.getAccessToken и Office.auth.getAccessToken выполняют те же функции получения маркера доступа, мы рекомендуем вызывать OfficeRuntime.auth.getAccessToken в надстройке на основе событий или отчетов о спаме. Этот API поддерживается во всех клиентских версиях, поддерживающих активацию на основе событий, интегрированные отчеты о спаме и единый вход. С другой стороны, Office.auth.getAccessToken поддерживается только в классической версии Outlook для Windows, начиная с версии 2111 (сборка 14701.20000).

См. также