Как выполнить автоматический вход в статическое приложение Power BI HTML

Вопрос или проблема

Как автоматически войти в Power BI с использованием учетных данных LDAP (Active Directory). Используя Power BI JavaScript API. Я использую следующий код для встраивания. (Встраивание через iframe) Я хочу избежать кнопки входа и всплывающего окна.

url = "https://app.powerbi.com/reportEmbed?reportId=GUID&autoAuth=true&ctid=GUID"

document.write(
    "<iframe class="hero" title="Power BI Dashboard" id='myiframe'  src=""+ url +"" frameborder="0" allowFullScreen='true'></iframe>"
  )
  

вставьте описание изображения здесь

Ответ или решение

Чтобы осуществить автоматический вход в Power BI с использованием учетных данных LDAP (Active Directory) и API JavaScript Power BI, необходимо правильно настроить вашу интеграцию. Прежде всего, стоит отметить, что автоматический вход без интерактивного подтверждения со стороны пользователя может вызвать проблемы с безопасностью и не рекомендуется для продакшн-систем.

Тем не менее, если вы хотите реализовать такой подход в рамках вашего приложения, вот пример решения:

  1. Подготовка вашего веб-приложения: Убедитесь, что ваше приложение настроено для аутентификации через Active Directory. Для этого вам понадобятся необходимые библиотеки и возможно настроенные разрешения в Azure для вашей службы.

  2. Использование авторизации OAuth2: Вместо прямой работы с LDAP, лучше настроить OAuth2 с Azure Active Directory. Это более безопасно и интегрируется с Power BI API.

  3. Получение токена доступа: Используйте библиотеку для управления аутентификацией, такую как MSAL.js (Microsoft Authentication Library), для получения токена доступа на основе учетных данных пользователя.

Пример использования MSAL для автоматического получения токена и последующей вставки в iframe:

// Установите MSAL.js
const msalConfig = {
    auth: {
        clientId: "ВАШ_CLIENT_ID", // Идентификатор вашего приложения
        authority: "https://login.microsoftonline.com/ВАШ_TENANT_ID",
        redirectUri: "ВАШ_REDIRECT_URI",
    },
};

const msalInstance = new Msal.UserAgentApplication(msalConfig);

// Параметры доступа
const loginRequest = {
    scopes: ["https://analysis.windows.net/powerbi/api/.default"]
};

// Выполнение входа и получение токена
msalInstance.loginPopup(loginRequest).then(function (loginResponse) {
    return msalInstance.acquireTokenSilent(loginRequest);
}).then(function (tokenResponse) {
    const embedUrl = "https://app.powerbi.com/reportEmbed?reportId=GUID&autoAuth=true&ctid=GUID";
    const iframeHtml = `<iframe class="hero" title="Power BI Dashboard" id='myiframe' src="${embedUrl}&accessToken=${tokenResponse.accessToken}" frameborder="0" allowFullScreen='true'></iframe>`;

    document.write(iframeHtml);
}).catch(function (error) {
    console.error('Ошибка в процессе аутентификации:', error);
});

Важно:

  • Безопасность: Избегайте установки паролей и конфиденциальной информации непосредственно в коде. Следите за безопасностью токенов.
  • Конфигурация портала Azure: Убедитесь, что ваше приложение зарегистрировано в Azure Active Directory и имеет соответствующие разрешения для доступа к Power BI API.
  • Внедрение iframe: Убедитесь, что встроенный отчет имеет разрешения на это. Если у вас есть проблемы с настройками безопасности, возможно, вам потребуется изменить их в Power BI.

Заключение

Автоматический вход в Power BI с использованием учетных данных Active Directory возможен, но требует правильной настройки OAuth2 и правильного использования токенов доступа. Убедитесь, что вы понимаете все аспекты безопасности при такой реализации.

Оцените материал
Добавить комментарий

Капча загружается...