Получение значения утверждения аудита по умолчанию в токене доступа. Как я могу получить идентификатор клиента/идентификатор приложения uri в заявке на аудит?
Я создал регистрацию двух приложений в службе идентификации рекламы Azure. Первый как API (для API Web Rest), а второй как клиент (веб-приложение). Означает создание секретного ключа для клиента и создание URI идентификатора приложения для регистрации приложения API. Затем предоставлен доступ к API для регистрации клиентов. Я использовал вариант с одним арендатором и добавил идентификатор клиента в качестве известного клиента в манифест регистрации API.
https://login.microsoftonline.com/{tenant-id}/oauth2/v2.0/authorize?client_id=sample_client_id&response_type=code&redirect_uri=http://localhost/login/oauth2/code/azure&response_mode=query&scope=email openid offline_access
Когда я вызываю конечную точку авторизации (v2.0) с «clientid» и «scope(email, openid, offline_access)», то получаю временный код авторизации. Используя этот временный код, я запрашиваю токен доступа, используя конечную точку токена, используя тип гранта «Authorization_code» и передавая ту же область действия и идентификатор клиента.
Когда я отлаживаю этот токен доступа, я не получаю идентификатор клиента в утверждении аудита. Я хочу использовать этот токен для создания токена on_behalf_of для API, передав этот токен доступа в качестве утверждения в конечную точку токена. Я передаю аппидури в качестве области действия этого запроса обо. Чтобы я мог использовать этот недавно сгенерированный токен доступа для вызова API из клиентского приложения.
ConfidentialClientApplication clientApp = ConfidentialClientApplication
.builder(clientId, ClientCredentialFactory.createFromSecret(clientSecret)).authority(authority).build();
Set<String> scopes = new HashSet<>();
scopes.add(appIdUri + "/.default");
UserAssertion assertion = new UserAssertion(accessToken);
OnBehalfOfParameters params = OnBehalfOfParameters.builder(scopes, assertion).build();
CompletableFuture<IAuthenticationResult> result = clientApp.acquireToken(params);
String userInfoAccessToken = result.get().accessToken();
Я получаю сообщение об ошибке от конечной точки токена.
Для реализации я использую библиотеку Spring и msal Java.
Пожалуйста, помогите, как мне получить правильную заявку на аудит или сгенерировать токен обо для API.