Включение распространения доверенности SAP для потоков данных OData в реальном времени, используя Power Query.

Пропагация субъекта SAP — это механизм, который сопоставляет удостоверение Microsoft Entra пользователя с пользователем SAP-системы, чтобы каждый запрос данных обеспечивал правильную авторизацию SAP. При использовании данных SAP с помощью Power Query в Microsoft Excel или Power BI обычно требуется активные, обновляемые потоки данных OData, а не статический экспорт данных. Передача учетных записей SAP гарантирует, что эти активные потоки данных соблюдают пользовательские авторизации SAP.

В этой статье описывается настройка управления API Azure, шлюза SAP и сервера SAP OAuth 2.0 для включения распространения субъектов SAP для веб-каналов OData с помощью Power Query.

Необходимые условия

Внимание

Распространение учетной записи SAP обеспечивает сопоставление пользователей с лицензированным именованным пользователем SAP. Для вопросов, связанных с лицензией SAP, обратитесь к представителю SAP.

Просмотр продуктов Майкрософт с помощью интеграции SAP

Интеграция между продуктами SAP и портфелем Microsoft 365 от пользовательского кода и надстроек партнеров до полностью настраиваемых продуктов Office. В следующем списке показаны некоторые примеры:

Механизм, описанный в этой статье, использует стандартные встроенные возможности OData Power Query и фокусируется на ландшафтах SAP, развернутых в Azure. Для локальных ландшафтов используйте самостоятельно организованный шлюз управления API Azure.

Дополнительные сведения о том, какие продукты Майкрософт поддерживают Power Query, см. в документации по Power Query.

Планирование установки

Пользователи могут выбирать между локальными настольными или веб-клиентами (например, Excel или Power BI). Рассмотрим среду выполнения клиента для сетевого пути между клиентским приложением и целевой рабочей нагрузкой SAP. Решения для доступа к сети, такие как VPN, не являются областью действия приложений, таких как Excel для Интернета.

Azure Управление API отражает потребности локальной и веб-среды с различными режимами развертывания, которые можно применять к ландшафтам Azure (внутренним или внешним). Internal относится к экземплярам, которые полностью ограничены частной виртуальной сетью, в то время как External сохраняет общедоступный доступ к управлению API Azure. Для локальных установок требуется гибридное развертывание, чтобы применить подход так же, как и при использовании самостоятельно размещенного шлюза управления API Azure.

Для Power Query требуется соответствующий URL-адрес службы API и URL-адрес идентификатора приложения Microsoft Entra. Настройте личный домен для Azure Управление API в соответствии с требованиями.

Настройте шлюз SAP для предоставления требуемых целевых служб OData. Для обнаружения и активации доступных служб используйте транзакционный код SAP /IWFND/MAINT_SERVICE. Дополнительные сведения см. в конфигурации OData SAP.

Настройка личного домена управления API Azure

На следующем снимке экрана показан пример конфигурации в службе управления API, которая использует личный домен api.custom-apim.domain.com с управляемым сертификатом и доменом службы приложений Azure. Чтобы ознакомиться с дополнительными параметрами сертификатов домена, обратитесь к документации по Azure API Management.

Снимок экрана: конфигурация личного домена в Azure Управление API.

Выполните настройку личного домена в соответствии с требованиями к домену. Дополнительные сведения см. в документации по пользовательскому домену. Чтобы подтвердить владение доменным именем и предоставить доступ к сертификату, добавьте записи DNS в домен custom-apim.domain.com службы приложений Azure, как показано на следующем снимке экрана:

Снимок экрана, показывающий сопоставление пользовательского домена с доменом Azure API Management.

На следующем снимке экрана показана регистрация приложения Microsoft Entra для клиента управления API Azure.

Снимок экрана, демонстрирующий регистрацию приложения для Azure API Management в Microsoft Entra ID.

Примечание.

Если личный домен для управления API Azure не является вариантом для вас, используйте настраиваемый соединитель Power Query .

Проектирование политики управления API Azure для Power Query

Используйте политику управления API Azure для обработки запросов доступа Power Query для целевого API OData для поддержки потока проверки подлинности Power Query. В следующем фрагменте кода выделен механизм проверки подлинности. Идентификатор клиента Power Query см. в разделе "Проверка подлинности соединителя Power Query".

<!-- if empty Bearer token supplied assume Power Query sign-in request as described [here:](/power-query/connectorauthentication#supported-workflow) -->
<when condition="@(context.Request.Headers.GetValueOrDefault("Authorization","").Trim().Equals("Bearer"))">
    <return-response>
        <set-status code="401" reason="Unauthorized" />
        <set-header name="WWW-Authenticate" exists-action="override">
            <!-- Check the client ID for Power Query [here:](/power-query/connectorauthentication#supported-workflow) -->
            <value>Bearer authorization_uri=https://login.microsoftonline.com/{{AADTenantId}}/oauth2/authorize?response_type=code%26client_id=a672d62c-fc7b-4e81-a576-e60dc46e951d</value>
        </set-header>
    </return-response>
</when>

Помимо потока входа в учетную запись организации политика поддерживает перезапись URL-ответов OData так как целевой сервер отвечает с оригинальными URL-адресами. Следующий фрагмент из политики показывает перезапись URL-адресов:

<!-- URL rewrite in body only required for GET operations -->
<when condition="@(context.Request.Method == "GET")">
    <!-- ensure downstream API metadata matches Azure API Management caller domain in Power Query -->
    <find-and-replace from="@(context.Api.ServiceUrl.Host +":"+ context.Api.ServiceUrl.Port + context.Api.ServiceUrl.Path)" to="@(context.Request.OriginalUrl.Host + ":" + context.Request.OriginalUrl.Port + context.Api.Path)" />
</when>

Примечание.

Дополнительные сведения о безопасном доступе к SAP из Интернета и сети периметра SAP см. в статье SAP Internet inbound and outbound design. Сведения о защите API SAP с помощью Azure см. в статье "Предоставление оркестрации процессов SAP в Azure".

Проверка подлинности SAP OData с помощью Power Query в Excel Desktop

Благодаря этой конфигурации встроенный механизм проверки подлинности Power Query становится доступным для предоставляемых API OData. Добавьте новый источник OData на лист Excel на ленте Данных (Получить данные>Из других источников>Из канала OData). Введите URL-адрес целевой службы. В следующем примере используется демонстрационная служба шлюза SAP GWSAMPLE_BASIC. Обнаружение или активация с помощью транзакции /IWFND/MAINT_SERVICESAP. Затем добавьте его в службу управления API Azure с помощью официального руководства по импорту OData.

Снимок экрана, показывающий, как обнаружить URL-адрес OData в Azure API Management.

Получите базовый URL-адрес и вставьте его в целевое приложение. В следующем примере показана интеграция с Excel Desktop.

Снимок экрана: мастер настройки OData в Excel Desktop.

Переключите метод входа в учетную запись организации и выберите "Войти". Укажите учетную запись Microsoft Entra, сопоставленную с именем пользователя SAP на шлюзе SAP, с помощью распространения идентификатора пользователя SAP. Дополнительные сведения о конфигурации см. в учебном пособии Microsoft по SSO для SAP NetWeaver. Дополнительные сведения о распространении полномочий SAP см. в статье сообщества SAP в Службе приложений Azure с помощью шлюза SAP OData и видео-серии о распространении полномочий SAP.

Затем выберите, на каком уровне Power Query в Excel следует применить параметры проверки подлинности. В следующем примере показан параметр, который будет применяться ко всем службам OData, размещенным в целевой системе SAP (не только к примеру службы GWSAMPLE_BASIC).

Примечание.

Параметр области авторизации на уровне URL-адреса на следующем снимке экрана не зависит от фактических авторизации в серверной части SAP. Шлюз SAP остается окончательным валидатором каждого запроса и связанных авторизаций сопоставленного пользователя SAP.

Снимок экрана, показывающий процесс входа в Excel с опцией для учетной записи организации.

Внимание

В предыдущем руководстве основное внимание сосредоточено на процессе получения допустимого токена аутентификации из Microsoft Entra ID с помощью Power Query. Данный токен требует дальнейшей обработки для распространения идентификатора SAP.

Настройка распространения учетных данных SAP с помощью управления API Azure

Используйте политику SAP OAuth2 токенов для управления API Azure, чтобы завершить настройку распространения учетных данных SAP на среднем уровне. Дополнительные сведения о настройке серверной части SAP-шлюза см. в руководстве Microsoft по SAP NetWeaver SSO.

Примечание.

Дополнительные сведения о распространении полномочий SAP см. в статье сообщества SAP в Службе приложений Azure с помощью шлюза SAP OData и видео-серии о распространении полномочий SAP.

Схема, показывающая регистрации приложений Microsoft Entra, участвующих в этой статье.

Политика зависит от установленной настройки единого входа (SSO) между Microsoft Entra ID и шлюзом SAP (используйте SAP NetWeaver из галереи Microsoft Entra). В следующем примере используется демонстрационный пользователь Adele Vance. Сопоставление пользователей между идентификатором Microsoft Entra ID и системой SAP основано на имени пользователя (UPN) в качестве уникального идентификатора пользователя.

Снимок экрана, показывающий UPN пользователя демонстрации в Microsoft Entra ID.

Снимок экрана, показывающий конфигурацию SAML2 для шлюза SAP с утверждением имени пользователя (UPN).

Сопоставление UPN поддерживается в серверной части SAP с помощью транзакции SAML2.

Снимок экрана: режим сопоставления электронной почты в транзакции SAP SAML2.

В данной конфигурации заданные пользователи SAP сопоставляются с соответствующими пользователями Microsoft Entra. На следующем снимка экрана показан пример конфигурации из серверной части SAP с помощью кода транзакции SU01.

Снимок экрана: именованный пользователь SAP в транзакции SU01 с сопоставленным адресом электронной почты.

Дополнительные сведения о требуемом сервере SAP OAuth 2.0 с конфигурацией AS ABAP см. в руководстве Майкрософт по единому входу в SAP NetWeaver с помощью OAuth.

При использовании описанных политик управления API Azure любой продукт с поддержкой Power Query может вызывать размещенные в SAP службы OData, соблюдая правила сопоставления именованных пользователей SAP.

Снимок экрана: ответ OData в Excel Desktop.

Доступ к SAP OData с помощью других приложений и служб с поддержкой Power Query

В предыдущем примере показан процесс excel Desktop, но подход применяется к любому продукту Майкрософт с поддержкой Power Query OData. Дополнительные сведения о соединителе OData Power Query и о том, какие продукты поддерживают его, см. в документации по соединителям Power Query. Дополнительные сведения о продуктах, поддерживающих Power Query, см. в документации по Power Query.

Популярными потребителями являются Power BI, Excel для Интернета, Power Apps (потоки данных) и службы Analysis Services.

Управление процессами обратной записи данных в SAP с помощью Power Automate

Описанный подход также применяется к сценариям обратной записи. Например, Power Automate можно использовать для обновления делового партнера в SAP с помощью OData с соединителями с поддержкой HTTP (или используйте RFCs или BAPIs). На следующем снимке экрана показан пример панели мониторинга службы Power BI , подключенной к Power Automate с помощью оповещений на основе значений и кнопки (выделенная на снимке экрана). Дополнительные сведения о активации потоков из отчетов Power BI см. в документации по Power Automate.

Снимок экрана, показывающий панель мониторинга службы Power BI с поддержкой потоков.

Выделенная кнопка активирует поток, который перенаправит запрос OData PATCH на шлюз SAP, чтобы изменить роль бизнес-партнера.

Примечание.

Используйте политику управления API Azure для SAP, чтобы управлять проверкой подлинности, токенами обновления, токенами CSRF и общим кэшированием токенов вне основного потока.

Снимок экрана: поток в Power Automate, запрашивающий изменение бизнес-партнера в серверной части SAP.