次の方法で共有


Azure Digital Twins でのロール ベースのアクセス制御

重要

Azure Digital Twins サービスの新しいバージョンがリリースされました。 新しいサービスの拡張された機能に照らして、元の Azure Digital Twins サービス (このドキュメント セットで説明) は廃止されました。

新しいサービスのドキュメントを表示するには、アクティブな Azure Digital Twins のドキュメントを参照してください

Azure Digital Twins では、空間グラフ内の特定のデータ、リソース、アクションへのアクセスを正確に制御できます。 これは、ロールベースのアクセス制御 (RBAC) と呼ばれるきめ細かいロールとアクセス許可の管理によって行われます。 RBAC は ロールロール割り当て により構成されます。 ロールによってアクセス許可のレベルが特定されます。 ロール割り当てによってロールがユーザーまたはデバイスに関連付けられます。

RBAC を使用し、次にアクセス許可を付与できます。

  • ユーザーです。
  • デバイス。
  • サービス プリンシパル。
  • ユーザー定義関数。
  • あるドメインに属するすべてのユーザー。
  • テナント。

アクセスの程度を微調整することもできます。

RBAC は、アクセス許可が空間グラフの下方に継承されるという点で独特です。

RBAC でできることは何ですか?

開発者は次の目的で RBAC を使用することがあります。

  • ビル全体のデバイスまたは特定の部屋やフロアだけのデバイスを管理する権限をユーザーに付与します。
  • グラフ全体のすべての空間グラフ ノードまたはグラフのセクションのノードだけに対するグローバル アクセス権を、管理者に付与します。
  • サポート スペシャ リストに、アクセス キーを除く、グラフへの読み取りアクセス権を付与します。
  • ドメインのすべてのメンバーに、すべてのグラフ オブジェクトへの読み取りアクセス権を付与します。

RBAC ベスト プラクティス

ロールベースのアクセス制御は、アクセス、アクセス許可、ロールを管理するための継承によるセキュリティ戦略です。 子孫のロールは、親のロールからアクセス許可を継承します。 アクセス許可は、親ロールから継承しないで割り当てることもできます。 必要に応じて、割り当てたロールをカスタマイズすることもできます。

たとえば、スペース管理者には、指定されたスペースのすべての操作を実行するためにグローバル アクセス権が必要です。 アクセス権には、スペースとその下にあるすべてのノードが含まれます。 デバイス インストーラーには、デバイスとセンサーへの読み取り更新のアクセス許可のみが必要です。

どのような場合でも、ロールには、最小限の特権の原則に従って、ユーザーがタスクを実行するために厳密に必要であり過剰ではないアクセス権を付与します。 この原則に従って、ID には次のアクセス権のみが付与されます。

  • そのジョブを完了するために必要なアクセスの量。
  • そのジョブを実行するために適切であり、それだけに限定されたロール。

重要

常に最小限の特権の原則に従ってください。

従う必要のある他の 2 つの重要なロールベースのアクセス制御の方法:

  • ロールの割り当てを定期的に監査し、各ロールに適切なアクセス許可があることを確認します。
  • 個人のロールまたは割り当てが変わったら、ロールと割り当てをクリーンアップします。

ロール

ロールの定義

ロールの定義は、アクセス許可と、ロールを構成するその他の属性のコレクションです。 ロールの定義では、そのロールを持つすべてのオブジェクトで実行される可能性のある作成読み取り更新削除など、許可される操作がリストされます。 アクセス許可が適用されるオブジェクトの型も指定されます。

次の表では、Azure Digital Twins で使用可能なロールを説明しています。

ロール 説明 Identifier
スペース管理者 指定のスペースとその下にあるすべてのノードに対する CREATEREADUPDATE、および DELETE アクセス許可。 グローバル アクセス許可。 98e44ad7-28d4-4007-853b-b9968ad132d1
ユーザー管理者 ユーザーとユーザー関連オブジェクトに対する CREATEREADUPDATE、および DELETE アクセス許可。 スペースに対する READ 権限。 dfaac54c-f583-4dd2-b45d-8d4bbc0aa1ac
デバイス管理者 デバイスとデバイス関連オブジェクトに対する CREATEREADUPDATE、および DELETE アクセス許可。 スペースに対する READ 権限。 3cdfde07-bc16-40d9-bed3-66d49a8f52ae
キー管理者 アクセス キーの CREATEREADUPDATEDELETE アクセス許可。 スペースに対する READ 権限。 5a0b1afc-e118-4068-969f-b50efb8e5da6
トークン管理者 アクセス キーに対する READ および UPDATE アクセス許可。 スペースに対する READ 権限。 38a3bb21-5424-43b4-b0bf-78ee228840c3
User スペース、センサー、ユーザー、それに対応する関連オブジェクトに対する READ アクセス許可。 b1ffdb77-c635-4e7e-ad25-948237d85b30
サポート スペシャリスト アクセス キーを除くすべてのものに対する READ アクセス許可。 6e46958b-dc62-4e7c-990c-c3da2e030969
デバイス インストーラー デバイス、センサー、それに対応する関連オブジェクトに対する READ および UPDATE アクセス許可。 スペースに対する READ 権限。 b16dd9fe-4efe-467b-8c8c-720e2ff8817c
ゲートウェイ デバイス センサーに対する CREATE アクセス許可。 対応する関連オブジェクトを含む、デバイスとセンサーの READ アクセス許可。 d4c69766-e9bd-4e61-bfc1-d8b6e686c7a8

注意

前のロールの完全定義を取得するには、システム/ロール API にお問い合わせください。 詳細については、ロール割り当ての作成と管理に関するページを参照してください。

オブジェクト識別子の型

objectIdType (またはオブジェクト識別子の型) は、ロールに与えられる ID の型を示します。 DeviceId および UserDefinedFunctionId 型を除き、オブジェクト識別子の型は Azure Active Directory オブジェクトのプロパティに対応します。

次の表に、Azure Digital Twins でサポートされているオブジェクト識別子の型を示します。

説明
UserId ユーザーにロールを割り当てます。
deviceId デバイスにロールを割り当てます。
DomainName ドメイン名にロールを割り当てます。 指定されたドメイン名を持つ各ユーザーには、対応するロールのアクセス権が与えられます。
TenantId テナントにロールを割り当てます。 指定された Azure AD テナント ID に属する各ユーザーには、対応するロールのアクセス権が与えられます。
ServicePrincipalId サービス プリンシパルのオブジェクト ID にロールを割り当てます。
UserDefinedFunctionId ユーザー定義関数 (UDF) にロールを割り当てます。

ヒント

サービス プリンシパルにアクセス許可を付与する方法については、ロール割り当ての作成と管理に関するページを参照してください。

次のリファレンス ドキュメント記事では、以下について説明されています。

ロールの割り当て

Azure Digital Twins のロールの割り当てでは、ユーザー、Azure AD テナントなどのオブジェクトにロールや空間が関連付けられます。 その空間に属するすべてのオブジェクトにアクセス許可が付与されます。 空間には、その下にある空間グラフ全体が含まれます。

たとえば、建物を表す空間グラフのルート ノードに関して、あるユーザーにロール DeviceInstaller のロールの割り当てが与えられるとします。 この場合、このユーザーは、そのノードだけでなく、建物内の他のすべての子空間で、デバイスの読み取りと更新を行うことができます。

受信者にアクセス許可を付与するには、ロールの割り当てを作成します。 アクセス許可を取り消すには、ロールの割り当てを削除します。

重要

ロールの割り当ての詳細については、ロール割り当ての作成と管理に関するページを参照してください。

次の手順