財務およびオペレーション ストレージ アカウントのセキュリティ更新
この記事では、財務およびオペレーション ストレージ アカウントの最新のセキュリティ強化について説明します。
よく寄せられる質問
開発者のコンピュータ/顧客がホストしているユーザーがホストしているユーザー環境:"有効な記憶域接続文字列のフェッチが無効になっています。" というエラーが表示されます。このエラーを修正するにはどのようにしますか。
The soft.Dynamics.Clx.ServicesConnectper.CloudIn::GetCsuStorageConnectionConnectionConnectionConnect() パブリック メソッドは廃止されています。 パブリックAPI GetCsuStorageConnectionConnectionを経由して記憶域アカウントの接続文字列を共有するサポートの 詳細を説明します。
フライトが既定で に設定されている場合、問題は、開発者環境または顧客がホストする環境 (CHEs) に変更を配置するときに発生します。 この場合、開発者コンピュータで次のエラーが発生します。
EnableSharingOfValidStorageConnectionConnectはfalseです。 有効な記憶域接続文字列のフェッチが無効になりました。
エラーが表示された場合は、次追従するを実行します。
では Microsoft SQL Server (何も指定) に、次のクエリを実行します。
declare @flightName NVARCHAR(100) = 'EnableSharingOfValidStorageConnectionString'; IF NOT EXISTS (SELECT TOP 1 1 FROM SysFlighting WHERE flightName = @flightName) INSERT INTO SYSFLIGHTING(FLIGHTNAME,ENABLED, FLIGHTSERVICEID,PARTITION) SELECT @flightName, 1, 12719367,RECID FROM DBO.[PARTITIONS]; ELSE UPDATE SysFlighting SET enabled = 1, flightServiceId = 12719367 WHERE flightName = @flightName; select * from SysFlighting where flightName = 'EnableSharingOfValidStorageConnectionString';
CHEで、Application Object Server (AOS) およびバッチ サービスを再起動します。
記憶域アカウントに対する接続接続に使用される管理対象IDは?
財務およびオペレーション 環境は、記憶域共有に保存するために使用される管理ID接続詳細には関連付けされません。 また、プラットフォームランタイムは、管理されたID情報にアクセスできます。
IDの変更が可能でなかった場合、接続 を使用して記憶域アカウントに管理IDを使用する方法は?
これらのサービスは、 TokenCredential オブジェクトとトークンの実装を、後で実行するサービスを使用して定期的に更新されます。
以前は、接続文字列に対して、記憶域アカウントに対するほとんどすべての操作の実行への無制限のアクセスが許可されています。 ロール ベースのアクセス制御 (何を置く) や管理権限を導入した後に、どのアクセス許可を制限または無効化するか。
データ 面内の操作を実行するために必要なすべてのアクセス許可を付与します。 また、通常、コントロール 飛行機のコンテナ、キュー、およびテーブルに関連するアクセス許可が提供されます。 ただし、記憶域アカウントのレベルのアクセス許可とネットワーク関連のアクセス許可の一部は制限されます。
EnableSharingOfValidStorageConnection 2を有効にした場合、CloudIntorstructure.GetCsuStorageConnectionConnectionConnect() はエラーを修正しますか。
はい。 GetCsuStorageConnectionConnect() APIを削除する予定です。 記憶域アカウントとの対話には、 ServiceAccount, BlserviceServiceClient または TableServiceClient オブジェクト SharedServiceUnitStorage を使用することをお勧めします。
SharedServiceUnitStorageでは次 APIを使用できます
public CloudStorageAccount GetSharedServiceUnitStorageAccount()
public TableServiceClient GetSharedServiceTableServiceClient()
public BlobServiceClient GetSharedServiceBlobServiceClient()
財務および運用管理の記憶域アカウントの接続文字列にアクセスするにはどのようにしますか。
接続文字列にアクセスできるすべてのAPI (例: GetCsuStorageConnectionConnectionConnect()) を削除する予定。 接続文字列の処理を取得する別の方法がある場合でも、これらのメソッドを無効にするための他の制限が設定されます。
将来、管理されたIDベースの統合を有効にすると、対話型AOS、バッチAOS、DI IDENTITY (Data Import/Export Framework) サービスなど、財務および工程プロセスの外部でAPIを通じて共有される接続文字列を使用して、記憶域アカウントに 接続 を適用することはできません。
記憶域アカウント レベルではアカウント アクセス キーを無効にしています。アカウント アクセス キーを使用するアクセス権は無効になります。
管理対象IDベースの統合が有効になっていると、環境でCloudIntorstructure.GetCsuStorageConnectionConnection() を呼び出すと、どのような処理が行えます。
管理対象IDベースの統合が有効な場合、無効な接続文字列が返されます。
無効な接続文字列を使用した場合、AOSプロセス領域内にアクセスする場合、既存のすべての構文は引き続き動作します。 例外は、GetSharedAccessSigna tureなど、アクセス キーと厳しく結合された構造です。
たとえば、次のコードは引き続きこのまま作業します。
String connectionString = CloudInfrastructure.GetCsuStorageConnectionString();
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(connectionString);
CloudBlobClient blobClient = cloudStorageAccount.CreateCloudBlobClient();
CloudBlobContainer blobContainer = blobClient.GetContainerReference(containerName);
AOSプロセス領域内で使用される無効な接続文字列をコードがどのように処理するのか。
これは、記憶域ソフトウェア開発キット (SDK) が行う発信HTTPS要求を処理し、Azureこれらの要求をクライアントが有効な接続文字列を使用してそれらを作成した場合と同様に処理するようにします。 この無効化により、管理されたIDベースの統合が原因で返された無効な接続文字列を使用した場合でも、操作が予期した通り処理されます。
GetSharedAccessSignature() が失敗した理由に関して、その他の構文は引き続き機能するのか。
GetSharedAccessSignature() を呼び出す場合は、URLに格納されたアカウント キーを使用して共有アクセス署名 (URL) URLまたはトークンがSDK内に生成されます SharedAccessCredential を署名します。
無効な を使用して、その 他の関連オブジェクトと他の関連オブジェクトが作成された場合、その無効なキーを使用して、URLに署名します。 トークン/URLは正常に生成できますが、接続 を使用して記憶域アカウントに対して実行しようとすると、署名が無効なので "403 (303 (分の部下)" というエラーが表示されます。
SharedServiceUnitStorageでGetFileLinkと他のAPIによって生成されたURLパターンが、何で2つの環境または異なる環境で異なるのか。
1つの方法で管理されたIDベースの統合が有効に設定されますが、環境は有効になっていないので、URLパターンが異なる場合があります。 管理対象ID接続して記憶域アカウントにコピーすると、接続文字列を使用して生成される、URL (または、ユーザーが委任した) URLではなく、ユーザー委任のURLが生成されます。
Windows大きな記憶域v9.3.3を使用して、ユーザー委任されたURLを生成できますか。
いいえ、この機能はサポートではないので、ユーザーが委任したURLを使用して、
Azure.Storage v12以降を使用して生成されたユーザー委任のURLは、WindowsUre.Storage v9.3.3を使用して作成されたコードベースで処理できますか。
はい、構造化を使用して生成されたユーザー委任のURL 、高い構造を持つ WindowsUre.Storage v9.3.3 を使用して生成されます。 内部ワークフローおよびさまざまなテスト コードを使用して、同じ方法で検証されます。
メモ
(新しいトークンに変わります and st など) さまざまなトークンを検索して手動で署名しない限り、OKを実行すると、URLのパターンが異なります。
使用される管理IDが以前のライブラリと互換性がない場合、既知の問題を確認してください。
- 管理IDで使用するライブラリに関係なく、
GetSharedAccessSignature() を使用してURLを生成することはできません。 - ユーザーが委任したURLを生成するには、 、Blure.Storage.Urls SDK (v12以降) を使用する必要があります。
- 現在、ユーザーが委任したACLをテーブルおよびキューに対して生成することはできません。 記憶域チームAzure、それらのリソースのサポートが展開されます。 一般提供日 (GA) の日付は2025年3月です。 この機能を使用するには、SDKをアップグレードする必要があります。
- ユーザーが委任したACLは、7日間を超える期間に対して生成されません。 この制限はハード 制限であり、制限を拡張する予定はありません。
- コンテナー レベルの属性を変更したり、コンテナーの存在を確認したりするために、コンテナー レベルでユーザー委任されたTHEを生成することもできます。
この変更は、財務と運用アプリ (AOS/Interactive AOSなど) からの顧客管理記憶域アカウントへの接続に影響しますか。
影響はありません。 また、これらのライブラリからの要求は変更されません。
プラットフォーム コードで使用できるコードまたはライブラリの使用に関して、何かガイドがありますか。
内部での使用のみを目的とし、内部での使用を目的とのためであり、 Microsoft.Dynamics.Clx.ServicesSpaceper.Infrastructure.Namespace で公開されるクラスまたはメソッドを使用する方法は変更されません。