다음을 통해 공유


서비스 SAS 예제

이 항목에서는 REST API와 함께 공유 액세스 서명을 사용하는 예를 보여 줍니다. 공유 액세스 서명을 사용하면 컨테이너 및 Blob, 테이블, 큐 또는 파일에 대한 액세스 권한을 제공할 수 있습니다. 공유 액세스 서명을 제공하여 지정된 기간 동안 특정 컨테이너, Blob, 큐, 테이블 또는 테이블 엔터티 범위에 대한 제한된 액세스 권한을 사용자에게 부여할 수 있습니다. 공유 액세스 서명 생성, 구문 분석 및 사용에 대한 자세한 내용은 공유 액세스 서명을 사용하여 액세스 위임을 참조하세요. .NET Storage 클라이언트 라이브러리를 사용하여 공유 액세스 서명을 만드는 방법에 대한 자세한 내용은 공유 액세스 서명 만들기 및 사용을 참조하세요.

Blob 예

이 섹션에는 Blob에 대한 REST 작업의 공유 액세스 서명을 보여주는 예가 포함되어 있습니다.

예: 컨테이너의 공유 액세스 서명을 사용하여 Blob 가져오기

2013-08-15 이전 버전

다음 예에서는 컨테이너에 대한 읽기 권한을 위해 공유 액세스 서명을 생성하는 방법을 보여 줍니다.

URL을 구성하는 서명된 서명 필드는 다음과 같습니다.

signedstart=2009-02-09  
signedexpiry=2009-02-10  
signedresource=c  
signedpermissions=r  
signature=dD80ihBh5jfNpymO5Hg1IdiJIEvHcJpCMiCMnN/RnbI=  
signedidentifier=YWJjZGVmZw==  
signedversion=2012-02-12  

서명은 다음과 같이 생성됩니다.

StringToSign = r + \n   
               2009-02-09 + \n  
               2009-02-10 + \n  
               /myaccount/pictures + \n  
               YWJjZGVmZw== + \n  
               2012-02-12  
  
HMAC-SHA256(URL.Decode(UTF8.Encode(StringToSign))) = dD80ihBh5jfNpymO5Hg1IdiJIEvHcJpCMiCMnN/RnbI=  

요청 URL은 지정된 간격 동안 컨테이너에 pictures 대한 읽기 권한을 지정합니다. 요청 URL로 표시되는 리소스는 Blob이지만 공유 액세스 서명은 컨테이너에 지정됩니다. Blob 자체에서 공유 액세스 서명을 지정할 수도 있습니다.

GET https://myaccount.blob.core.windows.net/pictures/profile.jpg?sv=2012-02-12&st=2009-02-09&se=2009-02-10&sr=c&sp=r&si=YWJjZGVmZw%3d%3d&sig=dD80ihBh5jfNpymO5Hg1IdiJIEvHcJpCMiCMnN%2fRnbI%3d   
HTTP/1.1  
Host: myaccount.blob.core.windows.net  
x-ms-date: <date>  
  

버전 2013-08-15 이상

다음 예에서는 저장소 서비스의 버전 2013-08-15를 사용하여 컨테이너에 대한 읽기 권한을 위해 공유 액세스 서명을 생성하는 방법을 보여 줍니다.

버전 2013-08-15에서는 요청을 실행하는 클라이언트에서 해당 공유 액세스 서명의 응답 헤더만 재정의할 수 있는 새로운 쿼리 매개 변수가 도입되었습니다.

응답 헤더와 해당하는 쿼리 매개 변수는 다음과 같습니다.

응답 헤더 이름 해당하는 SAS 쿼리 매개 변수
Cache-Control rscc
Content-Disposition rscd
Content-Encoding rsce
Content-Language rscl
Content-Type rsct

서명에 대한 서명할 문자열을 구성하는 필드는 다음과 같습니다.

signedstart=2013-08-16  
signedexpiry=2013-08-17  
signedresource=c  
signedpermissions=r  
signedidentifier=YWJjZGVmZw==  
signedversion=2013-08-15  
responsecontent-disposition=file; attachment  
responsecontent-type=binary  

서명할 문자열은 다음과 같이 생성됩니다.

StringToSign = r + \n   
               2013-08-16 + \n  
               2013-08-17 + \n  
               /myaccount/pictures + \n  
               YWJjZGVmZw== + \n  
               2013-08-15 + \n  
               + \n    
               file; attachment + \n  
               + \n  
               + \n  
               binary  
  
HMAC-SHA256(URL.Decode(UTF8.Encode(StringToSign))) = a39+YozJhGp6miujGymjRpN8tsrQfLo9Z3i8IRyIpnQ=  

공유 액세스 서명은 지정된 간격 동안 pictures 컨테이너에 대한 읽기 권한을 지정합니다. 요청 URL로 표시되는 리소스는 Blob이지만 공유 액세스 서명은 컨테이너에 지정됩니다. Blob 자체에서 공유 액세스 서명을 지정할 수도 있습니다.

GET https://myaccount.blob.core.windows.net/pictures/profile.jpg?sv=2013-08-15&st=2013-08-16&se=2013-08-17&sr=c&sp=r&rscd=file;%20attachment&rsct=binary &sig=YWJjZGVmZw%3d%3d&sig=a39%2BYozJhGp6miujGymjRpN8tsrQfLo9Z3i8IRyIpnQ%3d HTTP/1.1  
  

이 서명을 사용하여 요청하는 클라이언트의 경우 다음 조건이 충족되면 Blob 가져오기 작업이 실행됩니다.

  • 요청이 성공적으로 승인되었습니다.

  • 공유 액세스 서명에 지정된 기간 내에 요청이 수행됩니다.

  • 요청이 연결된 저장된 액세스 정책의 조건을 위반하지 않습니다.

  • 요청에 지정된 Blob(/myaccount/pictures/profile.jpg)이 서명된 리소스로 지정된 컨테이너(/myaccount/pictures) 내에 있습니다.

공유 액세스 서명에서 및 rscd=file; attachment 를 지정하면 rsct=binary 응답의 콘텐츠 형식 및 콘텐츠 처리 헤더가 각각 재정의됩니다.

이 공유 액세스 서명을 사용하여 수행된 요청에 대한 성공적인 응답은 다음과 유사합니다.

Status Response:  
HTTP/1.1 200 OK  
  
Response Headers:  
x-ms-blob-type: BlockBlob  
Content-Length: 11  
Content-Type: binary  
Content-Disposition: file; attachment  
ETag: "0x8CB171DBEAD6A6B"  
x-ms-version: 2013-08-15  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  

예: 컨테이너의 공유 액세스 서명을 사용하여 Blob 업로드

다음 예에서는 Blob을 쓰기 위해 공유 액세스 서명을 생성하는 방법을 보여 줍니다. 이 예에서는 컨테이너의 모든 Blob에 대한 쓰기 권한을 부여하는 서명을 생성한 후 해당 공유 액세스 서명을 사용하여 컨테이너의 Blob에 씁니다.

URL을 구성하는 서명된 필드는 다음과 같습니다.

  
signedstart=2015-07-01T08:49Z  
signedexpiry=2015-07-02T08:49Z  
signedresource=c  
signedpermissions=w  
signedidentifier=YWJjZGVmZw==  
signedversion=2015-02-21  
  

서명은 다음과 같이 생성됩니다.

  
StringToSign = w + \n   
               2015-07-01T08:49Z + \n  
               2015-07-02T08:49Z + \n  
               /myaccount/pictures + \n  
               YWJjZGVmZw== + \n  
               2013-08-15  
  
HMAC-SHA256(URL.Decode(UTF8.Encode(StringToSign))) = Rcp6gQRfV7WDlURdVTqCa+qEArnfJxDgE+KH3TCChIs=  
  

요청 URL은 지정된 간격 동안 컨테이너에 pictures 대한 쓰기 권한을 지정합니다. 요청 URL로 표시되는 리소스는 Blob이지만 공유 액세스 서명은 컨테이너에 지정됩니다. Blob 자체에서 공유 액세스 서명을 지정할 수도 있습니다.

PUT https://myaccount.blob.core.windows.net/pictures/photo.jpg?sv=2015-02-21&st=2015-07-01T08%3a49Z&se=2015-07-02T08%3a49Z&  
sr=c&sp=w&si=YWJjZGVmZw%3d%3d&sig=Rcp6gQRfV7WDlURdVTqCa%2bqEArnfJxDgE%2bKH3TCChIs%3d HTTP/1.1  
Host: myaccount.blob.core.windows.net  
  
Content-Length: 12  
  
Hello World.  
  

이 서명을 사용하면 다음 조건이 충족되면 Put Blob 이 호출됩니다.

  • 요청이 성공적으로 승인되었습니다.

  • 공유 액세스 서명에 지정된 기간 내에 요청이 수행됩니다.

  • 요청이 연결된 저장된 액세스 정책의 조건을 위반하지 않습니다.

  • 요청에 지정된 Blob(/myaccount/pictures/photo.jpg)이 서명된 리소스로 지정된 컨테이너(/myaccount/pictures) 내에 있습니다.

예: Blob의 공유 액세스 서명을 사용하여 Blob 삭제

다음 예에서는 Blob에 대한 삭제 권한을 부여하고 Blob을 삭제하는 공유 액세스 서명을 생성하는 방법을 보여 줍니다.

주의

DELETE 작업에 대한 공유 액세스 서명은 신중하게 배포되어야 합니다. 클라이언트에서 데이터를 삭제하도록 허용하면 의도하지 않은 결과가 발생할 수 있습니다.

URL을 구성하는 서명된 서명 필드는 다음과 같습니다.

  
signedstart=2015-07-01T08:49:37.0000000Z  
signedexpiry=2015-07-02T08:49:37.0000000Z  
signedresource=b  
signedpermissions=d  
signature=+SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=  
signedidentifier=YWJjZGVmZw==  
signedversion=2015-02-21  
  

서명은 다음과 같이 생성됩니다.

  
StringToSign = d + \n   
               2015-07-01T08:49:37.0000000Z + \n  
               2015-07-02T08:49:37.0000000Z + \n  
               blob/myaccount/pictures/profile.jpg + \n  
               YWJjZGVmZw==  
               2015-02-21  
  
HMAC-SHA256(URL.Decode(UTF8.Encode(StringToSign))) = +SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=  
  

요청 URL은 지정된 간격 동안 pictures 컨테이너에 대한 삭제 권한을 지정합니다. 요청 URL로 표시되는 리소스는 Blob이며 공유 액세스 서명은 해당 Blob에 지정됩니다. Blob의 컨테이너에서 공유 액세스 서명을 지정하여 컨테이너에 있는 임의의 Blob을 삭제할 수 있는 권한을 부여할 수도 있습니다.

  
DELETE https://myaccount.blob.core.windows.net/pictures/profile.jpg?sv=2015-02-21&st=2015-07-01T08%3a49%3a37.0000000Z&se=2015-07-02T08%3a49%3a37.0000000Z&sr=b&sp=d&si=YWJjZGVmZw%3d%3d&sig=%2bSzBm0wi8xECuGkKw97wnkSZ%2f62sxU%2b6Hq6a7qojIVE%3d HTTP/1.1  
Host: myaccount.blob.core.windows.net  
Content-Length: 0  
  

이 서명을 사용하면 다음 조건이 충족되면 Blob 삭제 가 호출됩니다.

  • 요청이 성공적으로 승인되었습니다.

  • 공유 액세스 서명에 지정된 기간 내에 요청이 수행됩니다.

  • 요청이 연결된 저장된 액세스 정책의 조건을 위반하지 않습니다.

  • 요청에 지정된 Blob(/myaccount/pictures/profile.jpg)이 서명된 리소스로 지정된 Blob과 일치합니다.

파일 예제

이 섹션에는 파일에 대한 REST 작업에 대한 공유 액세스 서명을 보여 주는 예제가 포함되어 있습니다.

예: 공유의 공유 액세스 서명을 사용하여 파일 가져오기

다음 예제에서는 공유에 대한 읽기 액세스에 대한 공유 액세스 서명을 생성하는 방법을 보여줍니다.

클라이언트가 이 공유 액세스 서명에 대한 응답 헤더를 재정의하도록 요청을 실행할 수 있는 쿼리 매개 변수는 거의 없습니다.

응답 헤더와 해당하는 쿼리 매개 변수는 다음과 같습니다.

응답 헤더 이름 해당하는 SAS 쿼리 매개 변수
Cache-Control rscc
Content-Disposition rscd
Content-Encoding rsce
Content-Language rscl
Content-Type rsct

서명에 대한 서명할 문자열을 구성하는 필드는 다음과 같습니다.

signedstart=2015-07-01T08:49Z  
signedexpiry=2015-07-02T08:49Z  
signedresource=c  
signedpermissions=r  
signature=dD80ihBh5jfNpymO5Hg1IdiJIEvHcJpCMiCMnN/RnbI=  
signedidentifier=YWJjZGVmZw==  
signedversion=2015—02-21  
responsecontent-disposition=file; attachment  
responsecontent-type=binary  

서명할 문자열은 다음과 같이 생성됩니다.

StringToSign = r + \n   
               2015-07-01T08:49Z + \n  
               2015-07-02T08:49Z + \n  
               file/myaccount/pictures + \n  
               YWJjZGVmZw== + \n  
               2015—02-21 + \n  
               + \n    
               file; attachment + \n  
               + \n  
               + \n  
               binary  
  
HMAC-SHA256(URL.Decode(UTF8.Encode(StringToSign))) = a39+YozJhGp6miujGymjRpN8tsrQfLo9Z3i8IRyIpnQ=  

공유 액세스 서명은 지정된 간격 동안 공유에 pictures 대한 읽기 권한을 지정합니다. 요청 URL로 표시되는 리소스는 파일이지만 공유 액세스 서명은 공유에 지정됩니다. 파일 자체에 지정할 수도 있습니다.

GET https://myaccount.file.core.windows.net/pictures/profile.jpg?sv=2015-02-21&st=2015-07-01T08:49Z&se=2015-07-02T08:49Z&sr=c&sp=r&rscd=file;%20attachment&rsct=binary&sig=YWJjZGVmZw%3d%3d&sig=a39%2BYozJhGp6miujGymjRpN8tsrQfLo9Z3i8IRyIpnQ%3d  
  

이 서명을 사용하여 요청하는 클라이언트의 경우 다음 조건이 충족되면 파일 가져오기 작업이 실행됩니다.

  • 요청이 성공적으로 승인되었습니다.

  • 공유 액세스 서명에 지정된 기간 내에 요청이 수행됩니다.

  • 요청이 연결된 저장된 액세스 정책의 조건을 위반하지 않습니다.

  • 요청에 의해 지정된 파일 (/myaccount/pictures/profile.jpg)은 서명된 리소스 (/myaccount/pictures)로 지정된 공유 내에 있습니다.

공유 액세스 서명에서 및 rscd=file; attachment 를 지정하면 rsct=binary 응답의 content-typecontent-disposition 헤더가 각각 재정의됩니다.

이 공유 액세스 서명을 사용하여 수행된 요청에 대한 성공적인 응답은 다음과 유사합니다.

Status Response:  
HTTP/1.1 200 OK  
  
Response Headers:  
Content-Length: 11  
Content-Type: binary  
Content-Disposition: file; attachment  
ETag: "0x8CB171DBEAD6A6B"  
x-ms-version: 2015-02-21  
Server: Windows-Azure-Blob/1.0 Microsoft-HTTPAPI/2.0  

예: 공유에서 공유 액세스 서명을 사용하여 파일 업로드

다음 예제에서는 파일을 작성하기 위해 공유 액세스 서명을 생성하는 방법을 보여 있습니다. 이 예제에서는 공유의 모든 파일에 대한 쓰기 권한을 부여하는 서명을 생성합니다. 그런 다음 공유 액세스 서명을 사용하여 공유의 파일에 씁니다.

URL을 구성하는 서명된 서명 필드는 다음과 같습니다.

signedstart=2015-07-01T08:49Z  
signedexpiry=2015-07-02T08:49Z  
signedresource=c  
signedpermissions=w  
signature=Rcp6gQRfV7WDlURdVTqCa+qEArnfJxDgE+KH3TCChIs=  
signedidentifier=YWJjZGVmZw==  
signedversion=2015-02-21  

서명은 다음과 같이 생성됩니다.

StringToSign = w + \n   
               2015-07-01T08:49Z + \n  
               2015-07-02T08:49Z + \n  
               file/myaccount/pictures + \n  
               YWJjZGVmZw== + \n  
               2015-02-21  
  
HMAC-SHA256(URL.Decode(UTF8.Encode(StringToSign))) = Rcp6gQRfV7WDlURdVTqCa+qEArnfJxDgE+KH3TCChIs=  

요청 URL은 지정된 간격 동안 컨테이너에 pictures 대한 쓰기 권한을 지정합니다. 요청 URL로 표시되는 리소스는 Blob이지만 공유 액세스 서명은 컨테이너에 지정됩니다. Blob 자체에서 공유 액세스 서명을 지정할 수도 있습니다.

PUT https://myaccount.file.core.windows.net/pictures/photo.jpg?sv=2015-02-21&st=2015-07-01T08%3a49Z&se=2015-07-01T08%3a49Z&  
sr=c&sp=w&si=YWJjZGVmZw%3d%3d&sig=Rcp6gQRfV7WDlURdVTqCa%2bqEArnfJxDgE%2bKH3TCChIs%3d HTTP/1.1  
Host: myaccount.blob.core.windows.net  
Content-Length: 12  
  
Hello World.  

이 서명을 사용하면 다음 조건이 충족되면 파일 만들기 가 호출됩니다.

  • 요청이 성공적으로 승인되었습니다.

  • 공유 액세스 서명에 지정된 기간 내에 요청이 수행됩니다.

  • 요청이 연결된 저장된 액세스 정책의 조건을 위반하지 않습니다.

  • 요청에 의해 지정된 파일(/myaccount/pictures/photo.jpg)은 서명된 리소스(/myaccount/pictures)로 지정된 공유에 있습니다.

예: 파일의 공유 액세스 서명을 사용하여 파일 삭제

다음 예제에서는 파일에 대한 삭제 권한을 부여한 다음 공유 액세스 서명을 사용하여 파일을 삭제하는 공유 액세스 서명을 생성하는 방법을 보여 줍니다.

주의

클라이언트가 데이터를 삭제하도록 허용하면 의도하지 않은 결과가 발생할 수 있으므로 DELETE 작업에 대한 공유 액세스 서명은 신중하게 배포해야 합니다.

URL을 구성하는 서명된 서명 필드는 다음과 같습니다.

signedstart=2015-07-01T08:49:37.0000000Z  
signedexpiry=2015-07-02T08:49:37.0000000Z  
signedresource=b  
signedpermissions=d  
signature=+SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=  
signedidentifier=YWJjZGVmZw==  
signedversion=2015-02-21  

서명은 다음과 같이 생성됩니다.

StringToSign = d + \n   
               2015-07-01T08:49:37.0000000Z + \n  
               2015-07-02T08:49:37.0000000Z + \n  
               file/myaccount/pictures/profile.jpg + \n  
               YWJjZGVmZw==  
               2015-02-21  
  
HMAC-SHA256(URL.Decode(UTF8.Encode(StringToSign))) = +SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=  

요청 URL은 지정된 간격 동안 그림 공유에 대한 삭제 권한을 지정합니다. 요청 URL로 표시되는 리소스는 파일이며 공유 액세스 서명은 해당 파일에 지정됩니다. 파일 공유에 지정하여 공유의 파일을 삭제할 수 있는 권한을 부여할 수도 있습니다.

DELETE https://myaccount.file.core.windows.net/pictures/profile.jpg?sv=2015-02-21&st=2015-07-01T08%3a49%3a37.0000000Z&se=2015-07-02T08%3a49%3a37.0000000Z&sr=b&sp=d&si=YWJjZGVmZw%3d%3d&sig=%2bSzBm0wi8xECuGkKw97wnkSZ%2f62sxU%2b6Hq6a7qojIVE%3d HTTP/1.1  
Host: myaccount.blob.core.windows.net  
Content-Length: 0  

이 서명을 사용하면 다음 조건이 충족되면 파일 삭제 가 호출됩니다.

  • 요청이 성공적으로 승인되었습니다.

  • 공유 액세스 서명에 지정된 기간 내에 요청이 수행됩니다.

  • 요청이 연결된 저장된 액세스 정책의 조건을 위반하지 않습니다.

  • 요청에 의해 지정된 파일(/myaccount/pictures/profile.jpg)은 서명된 리소스로 지정된 파일과 일치합니다.

큐 예

이 섹션에는 큐에 대한 REST 작업의 공유 액세스 서명을 보여주는 예가 포함되어 있습니다. 이러한 예에서 큐 서비스 작업은 다음 조건에 해당하는 경우에만 실행됩니다.

  • 요청이 성공적으로 승인되었습니다.

  • 공유 액세스 서명에 지정된 기간 내에 요청이 수행됩니다.

  • 요청이 연결된 저장된 액세스 정책의 조건을 위반하지 않습니다.

  • 요청에 지정된 큐가 공유 액세스 서명으로 승인된 동일한 큐입니다.

예: 공유 액세스 서명을 사용하여 메시지 검색

다음 예에서는 큐에서 메시지를 검색하기 위해 공유 액세스 서명을 생성하는 방법을 보여 줍니다. 이 서명은 큐에 대한 메시지 처리 권한을 부여합니다. 마지막으로, 이 예에서는 공유 액세스 서명을 사용하여 큐에서 메시지를 검색합니다.

서명된 서명 필드, 문자열 간 생성 및 요청 권한이 부여된 후 메시지 가져오기 작업을 호출하는 URL 생성을 검사합니다.

signedstart=2015-07-01T08:49Z  
signedexpiry=2015-07-02T08:49Z  
signedpermissions=p  
signature=+SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=  
signedidentifier=YWJjZGVmZw==   
signedversion=2015-02-21  
  
StringToSign = p + \n   
               2015-07-01T08:49Z + \n  
               2015-07-02T08:49Z + \n  
               queue/myaccount/myqueue + \n  
               YWJjZGVmZw== + \n  
               2015-02-21  
  
GET https://myaccount.queue.core.windows.net/myqueue/messages?visibilitytimeout=120&sv=2015-02-21&st=2015-07-01T08%3a49Z&se=2015-07-02T08%3a49Z&sp=p&si=YWJjZGVmZw%3d%3d&sig=jDrr6cna7JPwIaxWfdH0tT5v9dc%3d HTTP/1.1  
Host: myaccount.queue.core.windows.net  
  

예: 공유 액세스 서명을 사용하여 메시지 추가

다음 예에서는 큐에 메시지를 추가하기 위해 공유 액세스 서명을 생성하는 방법을 보여 줍니다. 이 서명은 큐에 대한 추가 권한을 부여합니다. 마지막으로, 이 예에서는 서명을 사용하여 메시지를 추가합니다.

서명된 서명 필드, StringToSign 문자열 생성 및 요청 권한이 부여된 후 메시지 저장 작업을 호출하는 URL 생성을 검사합니다.

signedstart=2015-07-01T08:49Z  
signedexpiry=2015-07-02T08:49Z  
signedpermissions=a  
signature= +SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=  
signedidentifier=YWJjZGVmZw==
signedversion=2015-02-21  
  
StringToSign = a + \n
               2015-07-01T08:49Z + \n  
               2015-07-02T08:49Z + \n  
               queue/myaccount/myqueue + \n  
               YWJjZGVmZw== + \n  
               2015-02-21  
  
POST https://myaccount.queue.core.windows.net/myqueue/messages?visibilitytimeout=120&sv=2015-02-21&st=2015-07-01T08%3a49Z&se=2015-07-02T08%3a49Z&sp=a&si=YWJjZGVmZw%3d%3d&sig=jDrr6cna7JPwIaxWfdH0tT5v9dc%3d HTTP/1.1  
Host: myaccount.queue.core.windows.net  
Content-Length: 100  
  
<QueueMessage>  
<MessageText>PHNhbXBsZT5zYW1wbGUgbWVzc2FnZTwvc2FtcGxlPg==</MessageText>  
</QueueMessage>  
  

예: 공유 액세스 서명을 사용하여 메시지 피킹 및 메시지 가져오기

다음 예에서는 큐의 다음 메시지를 보고 큐의 메시지 수를 검색하기 위해 공유 액세스 서명을 생성하는 방법을 보여 줍니다. 이 서명은 큐에 대한 읽기 권한을 부여합니다. 마지막으로, 이 예에서는 공유 액세스 서명을 사용하여 메시지를 본 다음 메시지 수가 포함된 큐 메타데이터를 읽습니다.

서명된 서명 필드, 문자열 간 생성 및 메시지 피킹큐 메타데이터 가져오기 작업을 호출하는 URL 생성을 검사합니다.

signedstart=2015-07-01T08:49Z  
signedexpiry=2015-07-02T08:49Z  
signedpermissions=r  
signature=+SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=  
signedidentifier=YWJjZGVmZw==
signedversion=2015-02-21  
  
StringToSign = r + \n
               2015-07-01T08:49Z + \n  
               2015-07-02T08:49Z + \n  
               queue/myacccount/myqueue + \n  
               YWJjZGVmZw== + \n  
               2015-02-21  
  
GET https://myaccount.queue.core.windows.net/myqueue/messages?peekonly=true&sv=2015-02-21&st=2015-07-01T08%3a49Z&se=2015-07-02T08%3a49Z&sp=r&si=YWJjZGVmZw%3d%3d&sig=jDrr6cna7JPwIaxWfdH0tT5v9dc%3d HTTP/1.1  
Host: myaccount.queue.core.windows.net  
  
GET https://myaccount.queue.core.windows.net/myqueue?comp=metadata&sv=2015-02-21&st=2015-07-01T08%3a49Z&se=2015-07-01T08%3a49Z&sp=r&si=YWJjZGVmZw%3d%3d&sig=jDrr6cna7JPwIaxWfdH0tT5v9dc%3d HTTP/1.1  
Host: myaccount.queue.core.windows.net  
  

테이블 예

이 섹션에는 테이블에 대한 REST 작업의 공유 액세스 서명을 보여주는 예가 포함되어 있습니다. 이러한 예에서 테이블 서비스 작업은 다음 조건에 해당하는 경우에만 실행됩니다.

  • 요청이 성공적으로 승인되었습니다.

  • 공유 액세스 서명에 지정된 기간 내에 요청이 수행됩니다.

  • 요청이 연결된 저장된 액세스 정책의 조건을 위반하지 않습니다.

  • 요청에 지정된 큐가 공유 액세스 서명으로 승인된 동일한 큐입니다.

예: 공유 액세스 서명을 사용하여 테이블 쿼리

다음 예에서는 테이블에서 엔터티를 쿼리하기 위해 공유 액세스 서명을 생성하는 방법을 보여 줍니다. 서명은 테이블의 특정 범위에 대한 쿼리 권한을 부여합니다. 마지막으로, 이 예에서는 공유 액세스 서명을 사용하여 범위 내에서 엔터티를 쿼리합니다.

아래의 서명된 서명 필드, 생성된 StringToSign 문자열 및 Query Entities 작업을 호출하는 생성된 URL을 살펴보십시오. 이 Query Entities 작업의 결과에는 startpk, startrk, endpkendrk로 정의된 범위의 엔터티만 포함됩니다.

signedstart=2015-07-01T08:49Z  
signedexpiry=2015-07-02T08:49Z  
signedpermissions=r  
signature= +SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=  
signedidentifier=YWJjZGVmZw==
signedversion=2015-02-21  
startpk="Coho Winery"  
startrk="Auburn"  
endpk="Coho Winery"  
endrk="Seattle"  
  
String-To-Sign = r + \n
                 2015-07-01T08:49Z + \n  
                 2015-07-02T08:49Z + \n  
                 table/myaccount/mytable + \n  
                 YWJjZGVmZw==  + \n  
                 2015-02-21 + \n  
                 Coho Winery + \n  
                 Auburn + \n  
                 Coho Winery + \n  
                 Seattle  
  
GET https://myaccount.table.core.windows.net/MyTable?$filter=PartitionKey%20eq%20'Coho%20Winery'&sv=2015-02-21&tn=MyTable&st=2015-07-01T08%3a49Z&se=2015-07-02T08%3a49Z&sp=r&si=YWJjZGVmZw%3d%3d&sig=jDrr6cna7JPwIaxWfdH0tT5v9dc%3d&spk=Coho%20Winery&srk=Auburn&epk=Coho%20Winery&erk=Seattle HTTP/1.1  
Host: myaccount.table.core.windows.net  
DataServiceVersion: 3.0;NetFx  
MaxDataServiceVersion: 3.0;NetFx  
  

예: 공유 액세스 서명을 사용하여 테이블 업데이트

다음 예에서는 테이블에서 엔터티를 업데이트하기 위해 공유 액세스 서명을 생성하는 방법을 보여 줍니다. 서명은 특정 범위의 엔터티에 대한 업데이트 권한을 부여합니다. 마지막으로, 이 예에서는 공유 액세스 서명을 사용하여 범위에 포함된 엔터티를 업데이트합니다.

아래의 서명된 서명 필드, 생성된 StringToSign 문자열 및 Update Entity 작업을 호출하는 생성된 URL을 살펴보십시오. Update Entity 작업은 startpkendpk로 정의된 파티션 범위 내의 엔터티만 업데이트할 수 있습니다.

signedstart=2015-07-01T08:49Z  
signedexpiry=2015-07-02T08:49Z  
signedpermissions=u  
signature= +SzBm0wi8xECuGkKw97wnkSZ/62sxU+6Hq6a7qojIVE=  
signedidentifier=YWJjZGVmZw==   
signedversion=2015-02-21  
startpk="Coho Winery"  
endpk="Coho Winery"  
  
String-To-Sign = u + \n   
                 2015-07-01T08:49Z + \n  
                 2015-07-02T08:49Z + \n  
                 table/myaccount/mytable + \n  
                 YWJjZGVmZw== + \n  
                 2015-02-21 + \n  
                 Coho Winery + \n  
                 + \n  
                 Coho Winery + \n  
  
MERGE https://myaccount.table.core.windows.net/MyTable(PartitionKey='Coho%20Winery',RowKey='Seattle')?sv=2015-02-21&tn=MyTable&st=2015-07-01T08%3a49Z&se=2015-07-02T08%3a49Z&sp=u&si=YWJjZGVmZw%3d%3d&sig=jDrr6cna7JPwIaxWfdH0tT5v9dc%3d&spk=Coho%20Winery&epk=Coho%20Winery HTTP/1.1  
Host: myaccount.table.core.windows.net  
DataServiceVersion: 3.0;NetFx  
MaxDataServiceVersion: 3.0;NetFx  
If-Match: *  
Content-Type: application/atom+xml  
Content-Length: 696  
  
<?xml version="1.0" encoding="utf-8" standalone="yes"?>  
<entry xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xmlns="http://www.w3.org/2005/Atom">  
  <title />  
  <author>  
    <name />  
  </author>  
  <id>https://myaccount.table.core.windows.net/MyTable(PartitionKey='Coho Winery',RowKey='Seattle')</id>  
  <content type="application/xml">  
    <m:properties>  
      <d:PartitionKey>P</d:PartitionKey>  
      <d:RowKey>R</d:RowKey>  
      <d:Timestamp m:type="Edm.DateTime">0001-01-01T00:00:00</d:Timestamp>  
    </m:properties>  
  </content>  
</entry>  
  

참고 항목

공유 액세스 서명을 사용하여 액세스 위임
서비스 SAS 만들기