Azure Digital Twins の既知の問題

この記事では、Azure Digital Twins に関連する既知の問題について説明します。

Azure Digital Twins Explorer はプライベート エンドポイントをサポートしていません

問題の説明: Azure Digital Twins Explorer では、パブリック アクセスを無効にするために Private Link 使用する Azure Digital Twins インスタンスで使用しようとすると、エラーが表示されます。 "モデルのフェッチでエラーが発生した" というポップアップが表示される場合があります。

影響 原因 解決策
プライベート エンドポイントまたは Private Link で Azure Digital Twins を使用している場合、Azure Digital Twins Explorer でインスタンスを表示しようとすると、この問題の影響を受けます。 Azure Digital Twins Explorer はプライベート エンドポイントのサポートを提供していません。 独自のバージョンの Azure Digital Twins Explorer コードベースをクラウドにプライベートにデプロイできます。 これを行う方法については、「 Azure Digital Twins Explorer: クラウドでの実行」を参照してください。 あるいは、代わりに API と SDK を使用して Azure Digital Twins インスタンスを管理できます。

Cloud Shell の "400 Client Error: Bad Request"

問題の説明: https://shell.azure.com で実行されている Cloud Shell のコマンドが断続的に失敗して、エラー "400 Client Error: Bad Request for url: http://localhost:50342/oauth2/token" を受け取り、その後で完全なスタック トレースが示される場合があります。

影響 原因 解決策
この問題は、Azure Digital Twins では次のコマンド グループに影響します。

az dt route

az dt model

az dt twin
これは、Cloud Shell での既知の問題の結果です。Cloud Shell からトークンを取得すると、400 Client Erro: Bad Request で断続的に失敗します

これは、Azure Digital Twins インスタンスの認証トークンと、Cloud Shell の既定のマネージド ID ベースの認証に問題があることを示しています。

これは、az dt または az dt endpoint コマンド グループからの Azure Digital Twins コマンドには影響しません。なぜなら、これらのコマンドでは別の種類の認証トークン (Azure Resource Manager ベース) を使用し、Cloud Shell のマネージド ID 認証でも問題が発生しないからです。
この問題を解決するための 1 つの方法は、Cloud Shell で az login コマンドを再実行し、その後のログイン手順を完了することです。 このアクションにより、マネージド ID 認証からセッションが切り替わり、根本的な問題が回避されます。 その後、コマンドを再実行できます。

または、Azure portal の [Cloud Shell] ペインを開き、そこから Cloud Shell 作業を完了することができます。
Azure portal のアイコン バーにある Cloud Shell アイコンのスクリーンショット。

最終的には、別の解決策として、コンピューターに Azure CLI をインストールして、Azure CLI コマンドをローカルで実行できるようにします。 ローカル CLI ではこの問題は発生しません。

Azure.Identity 1.2.0 での対話型ブラウザーの認証に関する問題

問題の説明: Azure.Identity ライブラリのバージョン 1.2.0 を使用して Azure Digital Twins アプリケーションで認証コードを記述すると、InteractiveBrowserCredential メソッドで問題が発生することがあります。 この問題により、ブラウザー ウィンドウで認証を試みるときに "Azure.Identity.AuthenticationFailedException" というエラー応答が表示されます。 ブラウザー ウィンドウが完全に起動できなくなるか、一見ユーザーが正常に認証されたかのように見せてクライアント アプリケーションがエラーで失敗します。

影響 原因 解決策
影響を受けるメソッドは、次の記事で使用されています。

クライアント アプリをコーディングする

アプリ認証コードを作成する

Azure Digital Twins API および SDK
一部のユーザーは、Azure.Identity ライブラリのバージョン 1.2.0 でこの問題に直面しています。 解決するには、Azure.Identity新しいバージョンを使用するようにアプリケーションを更新します。 ライブラリのバージョンを更新すると、ブラウザーが想定どおりに読み込まれ、認証されるはずです。

Azure.Identity 1.3.0 での既定の Azure 資格情報認証に関する問題

問題の説明: Azure.Identity ライブラリのバージョン 1.3.0 を使用して認証コードを記述している場合、一部のユーザーに、これらの Azure Digital Twins ドキュメントを通じて多くのサンプルで使用される DefaultAzureCredential メソッドで問題が発生しています。この問題は、コードが認証を試みたときに "Azure.Identity.AuthenticationFailedException: SharedTokenCacheCredential 認証が失敗しました" というエラー応答として表示されます。

影響 原因 解決策
DefaultAzureCredential は、認証を含むこのサービスのドキュメント例のほとんどで使用されます。 Azure.Identity ライブラリのバージョン 1.3.0 で DefaultAzureCredential を使用して認証コードを記述し、このエラー メッセージが表示される場合は、この問題の影響を受けます。 Azure.Identity ライブラリと DefaultAzureCredential (その認証クラス) に関するいくつかの構成の問題が原因である可能性があります。 このクラスは、順番に試行されるいくつかの資格情報の種類を含むラッパーです。 この問題は、認証フローが SharedTokenCacheCredential 型に達したときに発生する可能性があります。 この問題を解決する方法の 1 つは、現在 Azure.Identity に対して開かれているこの DefaultAzureCredential イシューで説明されているように、ご利用の資格情報から SharedTokenCacheCredential を除外することです。 次の省略可能なパラメーターを使用して DefaultAzureCredential クラスをインスタンス化することによって、SharedTokenCacheCredential を資格情報から除外できます。new DefaultAzureCredential(new DefaultAzureCredentialOptions { ExcludeSharedTokenCacheCredential = true });
別の方法として、バージョン 1.2.3 など、以前のバージョンの Azure.Identity を使用するようにアプリケーションを変更することもできます。 以前のバージョンの使用は、Azure Digital Twins に機能的な影響を与えないため、ソリューションとして受け入れることができます。

次のステップ

Azure Digital Twins のセキュリティとアクセス許可の詳細を確認します。