Как обслуживать клиентский запрос для хранилища BLOB-объектов после ротации ключей в Azure
У меня есть хранилище BLOB-объектов с некоторыми ресурсами. Я предоставляю токены SAS клиентам, и каждый токен создается только для определенного большого двоичного объекта для клиента. Через некоторое время я хочу повернуть ключи своей учетной записи, поэтому все текущие токены клиентов будут признаны недействительными (у клиентов нет ключа учетной записи, у них есть только токен).
Мне было интересно, если у кого-то был похожий случай, когда при использовании REST API для хранилища Azure приходится предоставлять новые маркеры SAS клиентам после ротации ключей. Я знаю, что в этой ситуации клиент получит 403 Unauthorize, поэтому один из вариантов - отправить другой запрос на новый токен, а затем повторить запрос на ресурс.
Или, может быть, я мог бы отправить обратно код 301 Moved http и ссылку для конечной точки REST, которая генерирует новый токен, таким образом, клиенту не нужно было бы иметь дополнительные знания о другой конечной точке.
У кого-нибудь есть опыт вращения токенов?
1 ответ
Как упоминалось в комментарии, поскольку ваши клиенты имеют прямой доступ к BLOB-объекту, вы не узнаете, получили ли они ошибку 403, если не сообщат вам об этом.
Если это приемлемо, вы можете взглянуть на Авторизовать доступ к BLOB-объектам и очередям Azure, используя Azure Active Directory, когда он настроен, даже если вы поворачиваете ключи учетной записи, клиент также может получить доступ к хранилищу. Но эта функция может быть применима как минимум к уровню контейнера, а не к уровню BLOB-объекта, не уверен, что это приемлемо.