Я использую 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);
Пожалуйста, позвольте мне знать, безопасен ли вышеуказанный метод чтения сертификата клиента для получения токена доступа или мне нужно что-то здесь изменить?
Пожалуйста, помогите. Заранее спасибо