나는 클라이언트 번호별로 분류 된 blob이있는 Azure Blob 저장소가 있습니다. 따라서 각 고객에게는 여러 개의 PDF 보고서가 있습니다. 나는 클라이언트가 자신의 클라이언트 번호에 대한 얼룩에 액세스 할 수 있기를 원한다. (수 백명의 고객이 있습니다.)Azure Blob 저장 파일 수준 보안
나는 조사했지만 공유 액세스 서명 만 볼 수 있지만, 필자가 원하는 것처럼 보이지 않습니다.
나는 클라이언트 번호별로 분류 된 blob이있는 Azure Blob 저장소가 있습니다. 따라서 각 고객에게는 여러 개의 PDF 보고서가 있습니다. 나는 클라이언트가 자신의 클라이언트 번호에 대한 얼룩에 액세스 할 수 있기를 원한다. (수 백명의 고객이 있습니다.)Azure Blob 저장 파일 수준 보안
나는 조사했지만 공유 액세스 서명 만 볼 수 있지만, 필자가 원하는 것처럼 보이지 않습니다.
사용자가 이미 인증을받은 것처럼 들리며 어떤 pdfs가 해당 사용자인지 알 수 있습니다. 내 제안은 현재 응용 프로그램에 간단한 프록시를 추가하는 것입니다 (예를 들어, MVC 응용 프로그램이있는 경우 사용자를 대신하여 pdfs를 검색 할 새 컨트롤러와 작업 메서드를 추가 할 수 있습니다).
이렇게하면 공유 액세스 서명을 사용할 필요가 없으며 blob 컨테이너를 비공개로 유지할 수 있습니다. 컨트롤러/액션 메소드는 단순히 스토리지 SDK를 사용하여 BLOB를 검색합니다. 추가 보너스는 다른 사람의 파일 ID를 추측 할 경우 자신의 PDF 파일을 요청하고 요청을 거부하는지 확인할 수 있다는 것입니다.
고마워, 안드레즈. 그게 효과가 있을지도, 나는 그것을 시도해 볼게. – jaykzoo
앱에서 스트리밍하면이 프록시로 작동하는 앱의 CPU 및 네트워크 리소스를 사용하게됩니다. –
공유 액세스 서명 (및 정책) 이외의 사용자 수준 BLOB 권한은 없습니다.
특정 사용자 콘텐츠에 대한 액세스를 관리하는 것은 귀하와 귀하의 앱에 달려 있으며 사용자의 콘텐츠 메타 데이터를 관리하는 방법에 따라 관리해야합니다.
사용자 콘텐츠에 대한 링크를 제공 할 때 : 모든 콘텐츠가 항상 비공개로 간주되는 경우 요청시 주문형 SAS 링크를 만듭니다. SAS가 특정 URL을 대상으로하기 때문에 사용자가 SAS 링크를 수정하여 순차 번호를 추측하거나 인접한 개의 BLOB를 찾을 방법이 없습니다.
Andrés 씨가 제안했듯이 앱을 사용하여 BLOB 콘텐츠를 스트리밍하고 SAS에 대해 걱정할 필요가 없습니다. 그러나 이제는 웹 응용 프로그램 (네트워크, CPU, 메모리)의 리소스를 소비하게되며 이는 앱의 규모 요구 사항에 영향을 미칩니다. 이 서비스를 더 이상 스토리지 서비스로 오프로드 할 수 없게됩니다.
저장소 계정 ([storageaccount] .blob.core.windows.net)의 BLOB에 직접 링크를 제공해야하는지, 그렇지 않은 경우 프록시에서 사용되는 응용 프로그램을 만들어서 blob과 각 클라이언트는 고유 한 링크를 얻을 수 있습니다. 원하는 인증을 구현할 수 있습니다. –
예, 언급 했어야 할 점은 클라이언트가 보고서에 대한 링크 목록이있는 웹 페이지로 이동한다는 것입니다. 그래서 그들은 자신의 보고서를 클릭하고 볼 수 있어야합니다. 문제는 다른 클라이언트의 blob pdfs를보기 위해 URL을 추측하고 변경할 수 없도록하려는 것입니다. – jaykzoo