Ich erstelle eine Angular 6-Anwendung, mit der der CRUD-Vorgang für Azure Blob Storage ausgeführt werden kann. Ich verwende jedoch Postman, um Anforderungen zu testen, bevor ich sie in die App implementiere und das Token kopiere das bekomme ich von Angular für diese Ressource.
Beim Versuch, eine Datei zu Testzwecken zu lesen, die sich im Speicher befindet, wird Folgendes angezeigt: <Code>AuthorizationPermissionMismatch</Code> <Message>This request is not authorized to perform this operation using this permission.
2018-03-28
weil das das neueste ist, was ich finden konnte und ich gerade das Speicherkonto erstellt habe.Ich habe festgestellt, dass es nicht ausreicht, die App und das Konto als Eigentümer hinzuzufügen. Ich gehe zu Ihrem Speicherkonto> IAM> Rolle hinzufügen und füge die spezielle Berechtigung für diese Art von Anforderung hinzu, STORAGE BLOB DATA CONTRIBUTOR (VORSCHAU).
Beachten Sie, dass das Anwenden der Rolle "STORAGE BLOB DATA XXXX" im Abonnementbereich nicht möglich ist, wenn Ihr Abonnement über Azure DataBricks-Namespaces verfügt:
Wenn Ihr Abonnement einen Azure DataBricks-Namespace enthält, werden Rollen, die im Abonnementbereich zugewiesen sind, daran gehindert, Zugriff auf Blob- und Warteschlangendaten zu gewähren.
Ich habe das gerade gelöst, indem ich die in der GetAccessTokenAsync-Methode angeforderte Ressource von " https://storage.Azure.com " in die URL meines Speicher-Blobs geändert habe, wie in diesem Snippet:
public async Task<StorageCredentials> CreateStorageCredentialsAsync()
{
var provider = new AzureServiceTokenProvider();
var token = await provider.GetAccessTokenAsync(AzureStorageContainerUrl);
var tokenCredential = new TokenCredential(token);
var storageCredentials = new StorageCredentials(tokenCredential);
return storageCredentials;
}
wobei AzureStorageContainerUrl auf https://xxxxxxxxx.blob.core.windows.net/ festgelegt ist