Microsoft.AspNetCore.DataProtection 用 Azure Storage BLOB キー ストア
パッケージをAzure.Extensions.AspNetCore.DataProtection.Blobs
使用すると、ASP.NET Core DataProtection キーをAzure Blob Storageに格納できます。 キーは、Web アプリの複数のインスタンス間で共有できます。 アプリは、複数のサーバー間で認証 Cookie または CSRF 保護を共有できます。
作業の開始
パッケージをインストールする
NuGet を使用してパッケージをインストールします。
dotnet add package Azure.Extensions.AspNetCore.DataProtection.Blobs
前提条件
このパッケージを使用するには、 Azure サブスクリプション、 ストレージ アカウント 、 ストレージ コンテナー が必要です。
新しいストレージ アカウントを作成するには、Azure Portal、Azure PowerShell、または Azure CLI を使用できます。 Azure CLI を使う例を次に示します。
az storage account create --name <storage-account> --resource-group <resource-group> --location westus --sku Standard_LRS
az storage container create --account-name <storage-account> -n <container>
# Give write access to a user
az role assignment create --role "Storage Blob Data Contributor" --assignee <your_email> --scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>/blobServices/default/containers/<container>"
# OR give write access to a service principal (application)
az role assignment create --role "Storage Blob Data Contributor" --assignee-object-id <application_id> --scope "/subscriptions/<subscription>/resourceGroups/<resource-group>/providers/Microsoft.Storage/storageAccounts/<storage-account>/blobServices/default/containers/<container>"
主要な概念
スレッド セーフ
すべてのクライアント インスタンス メソッドがスレッド セーフであり、相互に独立していることを保証します (ガイドライン)。 これにより、クライアント インスタンスの再利用に関する推奨事項は、スレッド間でも常に安全になります。
その他の概念
クライアント オプション | 応答 | へのアクセス実行時間の長い操作 | エラーの | 処理診断 | あざける | クライアントの有効期間
例
Azure Blob Storageにキーの永続化を有効にするには、 メソッドをPersistKeysToAzureBlobStorage
呼び出します。 提供される は Uri
、次の形式 https://{storage_account}.blob.core.windows.net/{container}/{blob}
の BLOB URI である必要があります。
public void ConfigureServices(IServiceCollection services)
{
services
.AddDataProtection()
.PersistKeysToAzureBlobStorage(new Uri("<full-blob-URI>"), new DefaultAzureCredential());
}
Azure Identity ライブラリは、認証に対する Azure Active Directory のサポートを簡単に提供します。
接続文字列を使用した認証
public void ConfigureServices(IServiceCollection services)
{
services
.AddDataProtection()
.PersistKeysToAzureBlobStorage("<connection string>", "<container name>", "<blob name>");
}
次の手順
詳細については、ASP.NET Coreの DataProtection に関するページを参照してください。
共同作成
このプロジェクトでは、共同作成と提案を歓迎しています。 ほとんどの共同作成では、共同作成者使用許諾契約書 (CLA) にご同意いただき、ご自身の共同作成内容を使用する権利を Microsoft に供与する権利をお持ちであり、かつ実際に供与することを宣言していただく必要があります。 詳細については、「 cla.microsoft.com」を参照してください。
このプロジェクトでは、Microsoft オープン ソースの倫理規定を採用しています。 詳しくは、「Code of Conduct FAQ (倫理規定についてよくある質問)」を参照するか、opencode@microsoft.com 宛てに質問またはコメントをお送りください。
Azure SDK for .NET