2017-05-08 8 views
2

azureノードSDKで共有アクセスシグネチャを生成しようとしていますが、返されたトークンが機能していないか、いくつかのパラメータがありません。でトークンを作成ノードazure blobService.generateSharedAccessSignature()は不正なトークンを返します

イム:

app.get('/node-api/get-azure-token', (req, res, next) => { 
    var blobService = azure.createBlobService(myStorageAccount, myAccessKey); 
    var container = 'my-azure-container-name'; 
    var startDate = new Date(); 
    var expiryDate = new Date(startDate); 
    expiryDate.setMinutes(startDate.getMinutes() + 10); 
    startDate.setMinutes(startDate.getMinutes() - 5); 

    var sharedAccessPolicy = { 
    AccessPolicy: { 
     ServiceVersion: '2016-05-31', 
     Permissions: azure.BlobUtilities.SharedAccessPermissions.READ + azure.BlobUtilities.SharedAccessPermissions.WRITE + azure.BlobUtilities.SharedAccessPermissions.DELETE + azure.BlobUtilities.SharedAccessPermissions.LIST + azure.BlobUtilities.SharedAccessPermissions.ADD + azure.BlobUtilities.SharedAccessPermissions.CREATE, 
     Start: startDate, 
     Expiry: expiryDate, 
     Protocols: 'https,http' 
    } 
}; 

    const key = blobService.generateSharedAccessSignature(container, req.query.bloburi, sharedAccessPolicy); 

    res.send(key); 
}); 

エラー「サーバーは、要求の認証に失敗しました。 Authorizationヘッダーの値が署名を含めて正しく形成されていることを確認してください。生成されたsasトークンを使用するとスローされます。

誰もがこの問題に遭遇しましたか?

+0

返される共有アクセス署名は共有できますか? 'req.query.bloburi'で何を送っていますか?それは完全なBLOB URIですか? –

+1

@GauravMantri私は実際にそれを考え出した!私は間違った順序で権限を持っていました。これらは、ここに示す順序である必要があります(https://docs.microsoft.com/en-us/rest/api/storageservices/Constructing-a-Service-SAS-redirectedfrom=MSDN)。これはドキュメントではあまり明確ではありません! – Tlouth19

+0

恐ろしい!あなたはそれを答えとして置いてもいいですか**確かに**他の人を助けますか? –

答えて

関連する問題