Получение значения утверждения аудита по умолчанию в токене доступа. Как я могу получить идентификатор клиента/идентификатор приложения 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.

0 ответов

Другие вопросы по тегам