Получение токена доступа Microsoft Graph с использованием клиентского сертификата - PullRequest
0 голосов
/ 03 августа 2020

Я использую Microsoft Graph Apis для получения сведений о календарях пользователей. Теперь для получения токена доступа я использую класс MSAL JAR com.microsoft.aad.msal4j.IClientCredential. Я хотел бы знать, безопасен ли метод, который я использую для получения токена доступа, с точки зрения сети (вызовы HTTP и другие меры безопасности).

Ниже мой код:

public String getTokenUsingGraphCertificate(String clientId, String tenantId, String certificatePath, String certificatePassword) throws Exception {
        
        String authority = MessageFormat.format(AUTHORITY_URL, tenantId);
        IClientCredential credential = ClientCredentialFactory.createFromCertificate(
                new FileInputStream(new File(certificatePath)), certificatePassword);
        ConfidentialClientApplication cca = ConfidentialClientApplication.builder(clientId, credential)
                .authority(authority)
                // .setTokenCacheAccessAspect(tokenCacheAspect)
                .build();

        IAuthenticationResult result;
        try {
            SilentParameters silentParameters = SilentParameters.builder(SCOPE).build();
            result = cca.acquireTokenSilently(silentParameters).join();
        } catch (Exception ex) {
            if (ex.getCause() instanceof MsalException) {

                ClientCredentialParameters parameters = ClientCredentialParameters.builder(SCOPE).build();
                result = cca.acquireToken(parameters).join();
            } else {
                log.error("Exception occurred while fetching access token using getTokenUsingGraphCertificate. ERROR is : {}",ex);
                throw ex;
            }
        }
        return result.accessToken();
    }

Примечание. В приведенном выше методе получения объекта com.microsoft.aad.msal4j.IClientCredential я напрямую читаю сертификат клиента из его доступного пути как новый файл.

IClientCredential credential = ClientCredentialFactory.createFromCertificate(
                new FileInputStream(new File(certificatePath)), certificatePassword);

Пожалуйста, позвольте мне знать, безопасен ли вышеуказанный метод чтения сертификата клиента для получения токена доступа или мне нужно что-то здесь изменить?

Пожалуйста, помогите. Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...