Включение единого входа для надстроек Office (тестовый режим)Enable single sign-on for Office Add-ins (preview)

Пользователи входят в Office (в Интернете, на мобильных устройствах и настольных компьютерах), используя личную учетную запись Майкрософт либо рабочую или учебную учетную запись (Office 365).Users sign in to Office (online, mobile, and desktop platforms) using either their personal Microsoft account or their work or school (Office 365) account. Вы можете использовать эту возможность и использовать единый вход для авторизации пользователя в вашей надстройке, при этом пользователю не потребуется входить повторно.You can take advantage of this and use single sign-on (SSO) to authorize the user to your add-in without requiring the user to sign in a second time.

Изображение, иллюстрирующее процесс входа в надстройку

Предварительный просмотр состоянияPreview Status

API единого входа в настоящее время поддерживается только для предварительного просмотра.The Single Sign-on API is currently supported in preview only. Также оно доступно для разработчиков для целей экспериментирования; но его нельзя использовать в рабочей надстройке.It is available to developers for experimentation; but it should not be used in a production add-in. Кроме того, надстройки, которые используют единый вход, не допускаются к использованию в AppSource.In addition, add-ins that use SSO are not accepted in AppSource.

Для единого входа требуется Office 365 (версия Office, распространяемая по подписке).SSO requires Office 365 (the subscription version of Office). Следует использовать последнюю версию для текущего месяца и сборку из канала для участников программы предварительной оценки.You should use the latest monthly version and build from the Insiders channel. Чтобы получить эту версию, необходимо быть участником программы предварительной оценки Office.You need to be an Office Insider to get this version. Дополнительные сведения см. на странице Примите участие в программе предварительной оценки Office.For more information, see Be an Office Insider. Обратите внимание на то, что когда сборка будет готова для выпуска на канале Semi-annual channel, поддержка функций предварительного просмотра, включая единый вход, отключается для этой сборки.Please note that when a build graduates to the production semi-annual channel, support for preview features, including SSO, is turned off for that build.

Не все приложения Office поддерживают предварительный просмотр единого входа.Not all Office applications support the SSO preview. Эта возможность доступна в Word, Excel, Outlook и PowerPoint.It is available in Word, Excel, Outlook, and PowerPoint. Дополнительные сведения о текущей поддержке API единого входа см. в статье Наборы обязательных элементов API идентификации.For more information about where the Single Sign-on API is currently supported, see IdentityAPI requirement sets.

Рекомендации и требованияRequirements and Best Practices

Примечание

Чтобы использовать эту функцию, необходимо использовать предварительную версию библиотеки JavaScript для Office в сети CDN Office. js.To use this feature, you must use the preview version of the Office JavaScript library from the Office.js CDN. Файл определения типа для компиляции TypeScript и IntelliSense находится в сети CDN и DefinitelyTyped.The type definition file for TypeScript compilation and IntelliSense is found at the CDN and DefinitelyTyped. Вы можете установить эти типы с npm install --save-dev @types/office-js-previewпомощью.You can install these types with npm install --save-dev @types/office-js-preview.

Если вы работаете с надстройкой Outlook, обязательно включите современную проверку подлинности для клиента Office 365.If you are working with an Outlook add-in, be sure to enable Modern Authentication for the Office 365 tenancy. Сведения о том, как это сделать, см. в статье Exchange Online: как включить в клиенте современную проверку подлинности.For information about how to do this, see Exchange Online: How to enable your tenant for modern authentication.

Вам не следует опираться на функцию единого в качестве единого способа проверки подлинности вашей надстройки.You should not rely on SSO as your add-in's only method of authentication. Вам следует внедрить альтернативную систему проверки подлинности, на которую ваша надстройка может опираться при определенных ошибках.You should implement an alternate authentication system that your add-in can fall back to in certain error situations. Вы можете использовать систему таблиц пользователя и проверки подлинности, либо вы можете выделить одну из систем входа с использованием социальных сервисов.You can use a system of user tables and authentication, or you can leverage one of the social login providers. Дополнительные сведения о том, как это сделать с помощью надстройки Office см. в статье Авторизация внешних служб в надстройке Office.For more information about how to do this with an Office add-in, see Authorize external services in your Office Add-in. Для Outlook, существует рекомендуемая система возврата.For Outlook, there is a recommended fall back system. Дополнительные сведения см. в статье Сценарий: реализация единого входа для службы в надстройке Outlook.For more information, see Scenario: Implement single sign-on to your service in an Outlook add-in.

Принцип работы единого входа во время выполненияHow SSO works at runtime

На приведенной ниже схеме показано, как работает единый вход.The following diagram shows how the SSO process works.

Схема единого входа

  1. В надстройке JavaScript вызывает новый API Office.js getAccessTokenAsync.In the add-in, JavaScript calls a new Office.js API getAccessTokenAsync. Он указывает ведущему приложению Office на то, что необходимо получить маркер доступа для надстройки.This tells the Office host application to obtain an access token to the add-in. См. Пример маркера доступа.See Example access token.
  2. Если вход в Office не выполнен, в ведущем приложении открывается всплывающее окно, в котором пользователю предлагается войти.If the user is not signed in, the Office host application opens a pop-up window for the user to sign in.
  3. Если пользователь запускает надстройку в первый раз, ему предлагается дать согласие.If this is the first time the current user has used your add-in, he or she is prompted to consent.
  4. Ведущее приложение Office запрашивает маркер надстройки у конечной точки Azure AD версии 2.0 для текущего пользователя.The Office host application requests the add-in token from the Azure AD v2.0 endpoint for the current user.
  5. Azure AD отправляет маркер надстройки ведущему приложению Office.Azure AD sends the add-in token to the Office host application.
  6. Ведущее приложение Office отправляет маркер надстройке в составе объекта результата, возвращенного при вызове метода getAccessTokenAsync.The Office host application sends the add-in token to the add-in as part of the result object returned by the getAccessTokenAsync call.
  7. JavaScript в надстройке может проанализировать маркер и извлечь данные, которые необходимы, например адрес электронной почты.JavaScript in the add-in can parse the token and extract the information it needs, such as the user's email address.
  8. Кроме того, надстройка может отправить HTTP-запрос на серверную часть для получения дополнительных данных о пользователе, например, настройки пользователя.Optionally, the add-in can send HTTP request to its server-side for more data about the user; such as the user's preferences. Кроме того маркер доступа сам может быть отправлен на серверную часть для анализа и проверки.Alternatively, the access token itself could be sent to the server-side for parsing and validation there.

Разработка надстройки с единым входомDevelop an SSO add-in

В этом разделе описаны задачи, необходимые для создания надстройки Office с единым входом. Эти задачи описываются независимо от языка и платформы. Подробные пошаговые инструкции см. в следующих статьях:This section describes the tasks involved in creating an Office Add-in that uses SSO. These tasks are described here in a language- and framework-agnostic way. For examples of detailed walkthroughs, see:

Создание приложения-службыCreate the service application

Зарегистрируйте надстройку на портале регистрации для конечной точки Azure версии 2.0. Этот процесс занимает 5–10 минут и включает следующие задачи:Register the add-in at the registration portal for the Azure v2.0 endpoint. This is a 5–10 minute process that includes the following tasks:

  • Получение идентификатора и секрета клиента для надстройки;Get a client ID and secret for the add-in.
  • Указание необходимых надстройке разрешений для конечной точки AAD в.Specify the permissions that your add-in needs to AAD v. 2.0 (и Microsoft Graph в качестве опции).2.0 endpoint (and optionally to Microsoft Graph). Разрешение «профиль» необходимо во всех случаях.The "profile" permission is always needed.
  • Предоставление надстройке доверия ведущего приложения Office;Grant the Office host application trust to the add-in.
  • Предварительная авторизация ведущего приложения Office для надстройки с помощью заданного по умолчанию разрешения access_as_user.Preauthorize the Office host application to the add-in with the default permission access_as_user.

Дополнительные сведения о данном процессе см. в статье Регистрация надстройки Office, использующей единый вход с конечной точкой Microsoft Azure AD версии 2.0.For more details about this process, see Register an Office Add-in that uses SSO with the Azure AD v2.0 endpoint.

Конфигурация надстройкиConfigure the add-in

Добавьте новую разметку в манифест надстройки:Add new markup to the add-in manifest:

  • WebApplicationInfo — родительский элемент для указанных ниже элементов.WebApplicationInfo - The parent of the following elements.
  • Id - Идентификатор клиента надстройки. Это идентификатор приложения, который вы получаете в процессе регистрации надстройки.Id - The client ID of the add-in This is an application ID that you obtain as part of registering the add-in. См. Регистрация надстройки Office, использующей единый вход с конечной точкой Microsoft Azure AD версии 2.0.See Register an Office Add-in that uses SSO with the Azure AD v2.0 endpoint.
  • Resource — URL-адрес надстройки;Resource - The URL of the add-in. Это тот же URI (включая протокол api:), который вы использовали при регистрации надстройки и в AAD.This is the same URI (including the api: protocol) that you used when registering the add-in in AAD. Доменная часть данного URI должна соответствовать домену, в том числе поддомену, используемом в URL-адресах в части<Resources> манифеста настройки.The domain part of this URI should match the domain, including any subdomains, used in the URLs in the <Resources> section of the add-in's manifest.
  • Scopes — родительский элемент одного или нескольких элементов Scope;Scopes - The parent of one or more Scope elements.
  • Scope — указывает разрешение, необходимое надстройке для работы с AAD.Scope - Specifies a permission that the add-in needs to AAD. Разрешение profile требуется во всех случаях, и оно может быть единственным необходимым разрешением, если ваша надстройка не имеет доступ к Microsoft Graph.The profile permission is always needed and it may be the only permission needed, if your add-in does not access Microsoft Graph. В противном случае вам также могут потребоваться элементы типа Область для необходимым разрешений Microsoft Graph; например, User.Read, Mail.Read.If it does, you also need Scope elements for the required Microsoft Graph permissions; for example, User.Read, Mail.Read. Библиотеки, которые вы используете в коде, чтобы получить доступ к Microsoft Graph, могут потребовать дополнительные разрешения.Libraries that you use in your code to access Microsoft Graph may need additional permissions. Например, библиотека проверки подлинности Microsoft (MSAL) для .NET требует разрешения offline_access.For example, Microsoft Authentication Library (MSAL) for .NET requires offline_access permission. Дополнительные сведения см. в статье Авторизация в Microsoft Graph для надстройки Office.For more information, see Authorize to Microsoft Graph from an Office Add-in.

Для всех ведущих приложений, кроме Outlook, добавьте разметку в конец раздела <VersionOverrides ... xsi:type="VersionOverridesV1_0">. Для Outlook добавьте разметку в конец раздела <VersionOverrides ... xsi:type="VersionOverridesV1_1">.For Office hosts other than Outlook, add the markup to the end of the <VersionOverrides ... xsi:type="VersionOverridesV1_0"> section. For Outlook, add the markup to the end of the <VersionOverrides ... xsi:type="VersionOverridesV1_1"> section.

Ниже приведен пример разметки:The following is an example of the markup:

<WebApplicationInfo>
    <Id>5661fed9-f33d-4e95-b6cf-624a34a2f51d</Id>
    <Resource>api://addin.contoso.com/5661fed9-f33d-4e95-b6cf-624a34a2f51d</Resource>
    <Scopes>
        <Scope>user.read</Scope>
        <Scope>files.read</Scope>
        <Scope>profile</Scope>
    </Scopes>
</WebApplicationInfo>

Добавьте код для клиентаAdd client-side code

Добавьте в надстройку код JavaScript для:Add JavaScript to the add-in to:

  • Вызова getAccessTokenAsyncCall getAccessTokenAsync.

  • Выполните анализ маркера доступа или передайте его в код надстройки на стороне сервера.Parse the access token or pass it to the add-in’s server-side code.

Вот простой пример вызова для getAccessTokenAsync.Here's a simple example of a call to getAccessTokenAsync.

Примечание

В этом примере обрабатывается только один тип ошибки явным образом.This example handles only one kind of error explicitly. Примеры более сложной обработки ошибок см. в статье Home.js в Office-Add-in-ASPNET-SSO и program.js в Office-Add-in-NodeJS-SSO.For examples of more elaborate error handling, see Home.js in Office-Add-in-ASPNET-SSO and program.js in Office-Add-in-NodeJS-SSO. См. также Устранение ошибок единого входа.And see Troubleshoot error messages for single sign-on (SSO).

Office.context.auth.getAccessTokenAsync(function (result) {
    if (result.status === "succeeded") {
        // Use this token to call Web API
        var ssoToken = result.value;
        ...
    } else {
        if (result.error.code === 13003) {
            // SSO is not supported for domain user accounts, only
            // work or school (Office 365) or Microsoft Account IDs.
        } else {
            // Handle error
        }
    }
});

Вот простой пример передачи маркера надстройки стороне сервера.Here's a simple example of passing the add-in token to the server-side. Маркер включается в виде заголовка Authorization при отправке запроса назад стороне сервера.The token is included as an Authorization header when sending a request back to the server-side. В этом примере представлена отправка данных JSON, поэтому в нем используется метод POST, но GET достаточно для отправки маркера доступа, когда запись не осуществляется на сервере.This example envisions sending JSON data, so it uses the POST method, but GET is sufficient to send the access token when you are not writing to the server.

$.ajax({
    type: "POST",
    url: "/api/DoSomething",
    headers: {
        "Authorization": "Bearer " + ssoToken
    },
    data: { /* some JSON payload */ },
    contentType: "application/json; charset=utf-8"
}).done(function (data) {
    // Handle success
}).fail(function (error) {
    // Handle error
}).always(function () {
    // Cleanup
});

Когда вызывать методWhen to call the method

Если надстройка не может работать, когда ни один пользователь не выполнил вход в Office, тогда необходимо вызывать метод getAccessTokenAsync при запуске надстройки.If your add-in cannot be used when no user is logged into Office, then you should call getAccessTokenAsync when the add-in launches.

Если ряд функций надстройки может работать без входа пользователя в систему, вы вызываете getAccessTokenAsync *, когда пользователь выполняет действие, для которого необходимо выполнить вход *.If the add-in has some functionality that doesn't require a logged in user, then you call getAccessTokenAsync when the user takes an action that requires a logged in user. Производительность не снижается при повторяющихся вызовах getAccessTokenAsync, так как Office кэширует маркер доступа и использует его, пока не истечет срок его действия, не вызывая конечную точку AAD в.There is no significant performance degradation with redundant calls of getAccessTokenAsync because Office caches the access token and will reuse it, until it expires, without making another call to the AAD v. 2.0 при каждом вызове getAccessTokenAsync.2.0 endpoint whenever getAccessTokenAsync is called. Поэтому вызовы getAccessTokenAsync можно добавлять во все функции и обработчики, которые инициируют действие, где нужен маркер.So you can add calls of getAccessTokenAsync to all functions and handlers that initiate an action where the token is needed.

Добавление серверного кодаAdd server-side code

В большинстве случаев практически нет смысла получать маркер доступа, если надстройка не передает его на сторону сервера и не использует его там.In most scenarios, there would be little point to obtaining the access token, if your add-in does not pass it on to a server-side and use it there. Некоторые задачи на стороне сервера, которые может выполнять ваша надстройка:Some server-side tasks your add-in could do:

  • Создание одного или нескольких методов Web API, которые используют сведения о пользователе, извлеченные из маркера, например, метод, который выполняет поиск параметров пользователя в вашей базе данных.Create one or more Web API methods that use information about the user that is extracted from the token; for example, a method that looks up the user's preferences in your hosted data base. (См. Использование маркера единого входа в качестве удостоверения ниже) В зависимости от языка и платформы, могут быть доступны библиотеки, который упростят создание нужного кода.(See Using the SSO token as an identity below.) Depending on your language and framework, libraries might be available that will simplify the code you have to write.

  • Получение данных Microsoft Graph.Get Microsoft Graph data. Ваш серверный код должен выполнять следующее:Your server-side code should do the following:

    • Проверка маркера доступа (см. статью Проверка маркер доступа ниже).Validate the access token (see Validate the access token below).
    • Запуск потока "от имени" с помощью вызова конечной точки Microsoft Azure AD версии 2.0, включающего маркер доступа, некоторые метаданные пользователя и учетные данные надстройки (идентификатор и секрет).Initiate the “on behalf of” flow with a call to the Azure AD v2.0 endpoint that includes the access token, some metadata about the user, and the credentials of the add-in (its ID and secret). В этом контексте маркер доступа вызывается маркером начальной загрузки.In this context, the access token is called the bootstrap token.
    • Кэширование нового маркера доступа, полученного из потока «от-имени».Cache the new access token that is returned from the on-behalf-of flow.
    • Получение данных из Microsoft Graph с помощью нового маркера.Get data from Microsoft Graph by using the new token.

Дополнительные сведения о получении авторизованного доступа к данным Microsoft Graph пользователя см. в статье Авторизация в Microsoft Graph для надстройки Office.For more details about getting authorized access to the user's Microsoft Graph data, see Authorize to Microsoft Graph in your Office Add-in.

Проверка маркера доступаValidate the access token

Когда Web API получит маркер доступа, этот токен необходимо проверить перед использованием.Once the Web API receives the access token, it must validate it before using it. Это маркер JSON Web Token (JWT), то есть его проверка выполняется так же, как и в большинстве стандартных потоков OAuth.The token is a JSON Web Token (JWT), which means that validation works just like token validation in most standard OAuth flows. Доступно множество библиотек, которые могут выполнять проверку JWT, основные их действия:There are a number of libraries available that can handle JWT validation, but the basics include:

  • проверяют правильность формата маркера;Checking that the token is well-formed
  • проверяют, выдан ли маркер нужным центром сертификации;Checking that the token was issued by the intended authority
  • проверяют, предназначен ли маркер для веб-API.Checking that the token is targeted to the Web API

При проверке маркера учитывайте приведенные ниже рекомендации.Keep in mind the following guidelines when validating the token:

  • Действительные маркеры единого входа выдает центр сертификации Azure, https://login.microsoftonline.com.Valid SSO tokens will be issued by the Azure authority, https://login.microsoftonline.com. Утверждение iss в маркере должно начинаться с этого значения.The iss claim in the token should start with this value.
  • Параметру aud маркера будет присвоено значение идентификатора приложения с портала регистрации.The token's aud parameter will be set to the application ID of the add-in's registration.
  • Для параметра scp маркера будет задано значение access_as_user.The token's scp parameter will be set to access_as_user.

Использование маркера единого входа в качестве удостоверенияUsing the SSO token as an identity

Если приложению необходимо проверить удостоверение пользователя, то маркер единого входа содержит сведения, с помощью которых можно определить его.If your add-in needs to verify the user's identity, the SSO token contains information that can be used to establish the identity. Ниже перечислены утверждения из маркера, связанные с удостоверениями.The following claims in the token relate to identity.

  • name — Отображаемое имя пользователя.name - The user's display name.
  • preferred_username — Электронный адрес пользователя.preferred_username - The user's email address.
  • oid — GUID, предоставляющий ИД пользователя в Azure Active Directory.oid - A GUID representing the ID of the user in the Azure Active Directory.
  • tid — GUID, предоставляющий ИД организации пользователя в Azure Active Directory.tid - A GUID representing the ID of the user's organization in the Azure Active Directory.

Значения name и preferred_username могут меняться, мы рекомендуем использовать значения oid и tid, чтобы связать удостоверение с внутренней службой авторизации.Since the name and preferred_username values could change, we recommend that the oid and tid values be used to correlate the identity with your back-end's authorization service.

Например, если служба может форматировать эти значения вместе (в виде {oid-value}@{tid-value}), то их следует хранить в качестве значения в записи пользователя во внутренней базе данных пользователей.For example, your service could format those values together like {oid-value}@{tid-value}, then store that as a value on the user's record in your internal user database. При последующих запросах удостоверение пользователя можно будет получать с помощью того же значения, а доступ к определенным ресурсам может предоставляться в соответствии с действующими механизмами управления доступом.Then on subsequent requests, the user could be retrieved by using the same value, and access to specific resources could be determined based on your existing access control mechanisms.

Пример маркера доступаExample access token

Ниже приведен типичная раскодированная нагрузка маркера доступа.The following is a typical decoded payload of an access token. Сведения о свойствах см. в статье Справочные материалы для маркеров в Azure Active Directory 2.0.For information about the properties, see Azure Active Directory v2.0 tokens reference.

{
    aud: "2c3caa80-93f9-425e-8b85-0745f50c0d24",
    iss: "https://login.microsoftonline.com/fec4f964-8bc9-4fac-b972-1c1da35adbcd/v2.0",
    iat: 1521143967,
    nbf: 1521143967,
    exp: 1521147867,
    aio: "ATQAy/8GAAAA0agfnU4DTJUlEqGLisMtBk5q6z+6DB+sgiRjB/Ni73q83y0B86yBHU/WFJnlMQJ8",
    azp: "e4590ed6-62b3-5102-beff-bad2292ab01c",
    azpacr: "0",
    e_exp: 262800,
    name: "Mila Nikolova",
    oid: "6467882c-fdfd-4354-a1ed-4e13f064be25",
    preferred_username: "milan@contoso.com",
    scp: "access_as_user",
    sub: "XkjgWjdmaZ-_xDmhgN1BMP2vL2YOfeVxfPT_o8GRWaw",
    tid: "fec4f964-8bc9-4fac-b972-1c1da35adbcd",
    uti: "MICAQyhrH02ov54bCtIDAA",
    ver: "2.0"
}

С использованием единого входа с надстройкой OutlookUsing SSO with an Outlook add-in

Существует ряд небольшие, но важных различий при использовании единого входа в надстройке Outlook и его использования в надстройках Excel, PowerPoint или Word.There are some small, but important differences in using SSO in an Outlook add-in from using it in an Excel, PowerPoint, or Word add-in. Обязательно ознакомьтесь с содержанием статей Выполнение проверки подлинности пользователя с маркером единого входа в надстройке Outlook и Сценарий: Реализация единого входа для вашей службы в надстройке Outlook.Be sure to read Authenticate a user with a single sign-on token in an Outlook add-in and Scenario: Implement single sign-on to your service in an Outlook add-in.

Справочные материалы по API единого входаSSO API reference

getAccessTokenAsyncgetAccessTokenAsync

В пространстве имен Office Auth (Office.context.auth) имеется метод getAccessTokenAsync, который позволяет узлу Office получать маркер доступа для веб-приложения надстройки.The Office Auth namespace, Office.context.auth, provides a method, getAccessTokenAsync that enables the Office host to obtain an access token to the add-in's web application. Косвенно это также дает возможность надстройке получать доступ к данным Microsoft Graph пользователя, вошедшего в систему, не требуя от пользователя еще раз выполнить вход в систему.Indirectly, this also enables the add-in to access the signed-in user's Microsoft Graph data without requiring the user to sign in a second time.

getAccessTokenAsync(options?: AuthOptions, callback?: (result: AsyncResult<string>) => void): void;

Метод вызывает конечную точку Azure Active Directory версии 2.0, чтобы получить маркер доступа к вашей надстройке в веб-приложении.The method calls the Azure Active Directory V 2.0 endpoint to get an access token to your add-in's web application. Это позволяет надстройкам идентифицировать пользователей.This enables add-ins to identify users. Код на стороне сервера может использовать этот маркер для доступа к Microsoft Graph, чтобы добавить веб-приложение надстройки с помощью потока OAuth "от имени пользователя".Server side code can use this token to access Microsoft Graph for the add-in's web application by using the "on behalf of" OAuth flow.

Примечание

В Outlook эта API не поддерживается, если надстройка загружается в почтовый ящик Outlook.com или Gmail.In Outlook, this API is not supported if the add-in is loaded in an Outlook.com or Gmail mailbox.

УзлыHosts Excel, OneNote, Outlook, PowerPoint и Word.Excel, OneNote, Outlook, PowerPoint, Word
Наборы требованийRequirement sets IdentityAPIIdentityAPI

ПараметрыParameters

options - Опционально.options - Optional. Принимает объект AuthOptions (см. ниже) для определения поведения при входе.Accepts an AuthOptions object (see below) to define sign-on behaviors.

callback - Опционально.callback - Optional. Принимает метод обратного вызова, который может выполнить анализ маркера для идентификатора пользователя или использовать маркер в потоке «от имени ваших», чтобы получать доступ к Microsoft Graph.Accepts a callback method that can parse the token for the user's ID or use the token in the "on behalf of" flow to get access to Microsoft Graph. Если AsyncResult .status был выполнен «успешно», тогда AsyncResult.value представляет собой необработанный маркер доступа AADIf AsyncResult.status is "succeeded", then AsyncResult.value is the raw AAD v. версии 2.0.2.0-formatted access token.

Интерфейс AuthOptions предоставляет опции для взаимодействия с пользователем, когда Office получает маркер доступа для надстройки из AAD версииThe AuthOptions interface provides options for the user experience when Office obtains an access token to the add-in from AAD v. 2.0 с методом getAccessTokenAsync.2.0 with the getAccessTokenAsync method.