Я хочу использовать adal4j lib для задач, связанных с azure. Похоже, что он не поддерживает локальный кеш для токена доступа, не так ли? Существуют ли другие библиотеки, предоставляющие эту поддержку?Поддержка кеша ADAL4J отсутствует?
ответ
Большинство библиотек с открытым исходным кодом только обеспечивают реализацию протокола. ADAL4J не обеспечивает поддержку кеша (в отличие от других ADAL), но абстрагирует данные протокола от разработчика, чтобы они могли интегрироваться с Azure AD. Вы могли бы сэкономить AuthenticationResult самостоятельно и использовать токен обновления из результата, когда истекает токен доступа. Вы можете вызвать для этого метод purchaseTokenUsingRefreshToken.
Как сказано в сообщении KanishkPanwar-MSFT, ADAL4j не поддерживает механизм кэширования токена доступа.
Однако, как я уже знал, есть руководство показывает, как кэшировать токен доступа, который находится в разделе «Ключ доступа к кешу» статьи Best Practices for OAuth 2.0 in Azure AD
.
токены Cache Access
Для минимизации сетевых вызовов из клиентского приложения и связанной с ними задержки, клиентское приложение должны кэшировать маркеры доступа для маркеров жизни, который указан в OAuth 2.0 ответа. Чтобы определить время жизни токена, используйте значения параметра expires_in или expires_on.
Если ресурс веб-API возвращает код ошибки invalid_token, это может указывать на то, что ресурс определил, что токен истек. Если время работы клиента и ресурса различно (это называется «временным перекосом»), ресурс может считать, что токен истек, прежде чем токен будет удален из кеша клиента. Если это произойдет, очистите токен из кеша, даже если он все еще находится в пределах расчетного срока его службы.
Между тем, есть статья Caching access tokens in a multitenant application
, о которой я думаю, вы можете обратиться, включая пример кода .NET.
Желательно, чтобы api последовательно реализовывались на разных языках, что adal4j будет поддерживать локальный кеш так же, как node/.net. –