Больше подробностей .

ользую adal4j (версия 1.2.0) из серверного приложения для получения токена доступа, чтобы иметь возможность использовать API-интерфейсы PowerBI REST для встраивания отчетов (более конкретно, метод GenerateToken). Я зарегистрировал собственное приложение в Azure и предоставил ему необходимые разрешения. Я могу получить токен доступа, используя комбинацию имени пользователя и пароля следующим образом:

AuthenticationContext ac = new AuthenticationContext("https://login.windows.net/TENANT_ID/oauth2/authorize", false, es);
Future<AuthenticationResult> f = ac.acquireToken("https://analysis.windows.net/powerbi/api", CLIENT_ID, USERNAME, PASSWORD, null);

А затем используйте токен для успешной аутентификации в API и, в конечном итоге, для отображения встроенного отчета. Однако в моем случае я бы хотел использовать учетные данные клиента (идентификатор клиента, секрет клиента) вместо учетной записи пользователя. Я могу получить токен снова следующим образом:

AuthenticationContext("https://login.windows.net/TENANT_ID/oauth2/authorize", false, es);
ClientCredential cc = new ClientCredential(CLIENT_ID, CLIENT_SECRET);
Future<AuthenticationResult> f = ac.acquireToken("https://analysis.windows.net/powerbi/api", cc,null);

Идентификатор клиента - это идентификатор зарегистрированного собственного приложения, а секрет клиента определяется путем добавления ключа к приложению.Опять же, я получаю токен, но теперь я больше не могу использовать его для аутентификации по API. (HTTP 403, без каких-либо дополнительных подробностей).

Поэтому мой вопрос заключается в том, является ли это действительным сценарием, который должен работать в первую очередь, и / или я просто упускаю часть технической информации в Azure или с помощью adal4j?

Редактировать: Ниже приведен скриншот делегированных разрешений приложения.

Ответы на вопрос(1)

Ваш ответ на вопрос