次の方法で共有


Azure RBAC と Azure Device Update for IoT Hub

ユーザーとアプリケーションが Azure Device Update for IoT Hub にアクセスするには、Device Update リソースへのアクセス権が付与されている必要があります。 Device Update サービス プリンシパルは、更新プログラムをデプロイしてデバイスを管理するために、関連付けられている IoT ハブへのアクセス権も取得する必要があります。

この記事では、Device Update と Azure IoT Hub が Azure ロールベースのアクセス制御 (Azure RBAC) を使用して、ユーザーとサービス API の認証と認可を提供する方法について説明します。 また、Device Update REST API の Microsoft Entra ID 認証と、Device Update と Azure IoT Hub でのマネージド ID のサポートについても説明します。

Device Update アクセス制御ロール

Device Update では、次の RBAC ロールがサポートされています。 詳細については、「Device Update アカウントへのアクセス制御を構成する」を参照してください。

ロール名 説明
デバイス更新管理者 あらゆるデバイス更新リソースにアクセスできます
デバイス更新閲覧者 すべての更新プログラムとデプロイを表示できます
デバイス更新コンテンツ管理者 更新プログラムを表示、インポート、削除できます
デバイス更新コンテンツ閲覧者 更新プログラムを表示できます
デバイス更新デプロイ管理者 更新プログラムのデバイスへのデプロイを管理できます
デバイス更新デプロイ閲覧者 更新プログラムのデバイスへのデプロイを表示できます

ロールの組み合わせを割り当てて、適切なレベルのアクセスを提供できます。 たとえば、Device Update コンテンツ管理者ロールを使用することで更新プログラムのインポートや管理ができますが、更新プログラムの進捗状況を表示するには Device Update デプロイ閲覧者ロールが必要になります。 逆に、Device Update 閲覧者ロールを使用すると、すべての更新プログラムを表示できますが、デバイスに更新プログラムをデプロイするには Device Update デプロイ管理者ロールが必要です。

Device Update サービス プリンシパルの IoT Hub へのアクセス

Device Update は、関連付けられている IoT ハブと通信して、更新プログラムを大規模にデプロイおよび管理します。 この通信を有効にするには、IoT Hub データ共同作成者ロールを使用して、Device Update サービス プリンシパルに IoT ハブへのアクセス権を付与する必要があります。

このアクセス許可を付与すると、次のデプロイ、デバイスと更新の管理、診断アクションが許可されます。

  • Create deployment
  • デプロイを取り消す
  • デプロイを再試行する
  • デバイスの取得

このアクセス許可は、IoT ハブの [Access Control (IAM)] ページから設定できます。 詳細については、「Device Update サービス プリンシパル用の IoT ハブ アクセスを構成する」を参照してください。

Device Update REST API

デバイス更新では、REST API に対する認証に Microsoft Entra ID を使用します。 まず、クライアント アプリケーションを作成して構成する必要があります。

クライアント Microsoft Entra アプリを作成する

アプリケーションまたはサービスと Microsoft Entra IDを統合するには、まずクライアント アプリケーションを Microsoft Entra ID に登録します。 クライアント アプリケーションのセットアップは、必要な承認フロー (ユーザー、アプリケーション、またはマネージド ID) によって異なります。 次に例を示します。

  • モバイルまたはデスクトップ アプリケーションから Device Update を呼び出すには、[プラットフォームの選択][パブリック クライアント/ネイティブ (モバイルとデスクトップ)] を選択し、[リダイレクト URI]https://login.microsoftonline.com/common/oauth2/nativeclient を入力します。

  • 暗黙的なサインオンを使用して Web サイトから Device Update を呼び出すには、Web プラットフォームを使用します。 [暗黙的な許可およびハイブリッド フロー] で、[アクセス トークン (暗黙的フローに使用)] を選択します。

    Note

    使用可能な最も安全な認証フローを使用してください。 暗黙的フロー認証では、アプリケーションで高い信頼度が要求されるため、他のフローには存在しないリスクが伴います。 このフローは、マネージド ID など、他のより安全なフローが実行できない場合にのみ使用してください。

権限の構成

次に、Device Update を呼び出すアクセス許可をアプリに付与します。

  1. アプリの [API のアクセス許可] ページに移動し、[アクセス許可の追加] を選択します。
  2. [所属する組織で使用している API] に移動し、[Azure Device Update] を検索します。
  3. user_impersonation 権限を選択し、[アクセス許可の追加] を選択します。

認証トークンを要求する

デバイス更新 REST API には、要求ヘッダーに OAuth 2.0 認証トークンが必要です。 次のセクションでは、認証トークンを要求する方法の例をいくつか示します。

Azure CLI

az login
az account get-access-token --resource 'https://api.adu.microsoft.com/'

PowerShell MSAL ライブラリ

MSAL.PS PowerShell モジュールは、さまざまな認証方法をサポートする Microsoft Authentication Library for .NET (MSAL .NET) のラッパーです。

  • ユーザーの資格情報:

    $clientId = '<app_id>'
    $tenantId = '<tenant_id>'
    $authority = "https://login.microsoftonline.com/$tenantId/v2.0"
    $Scope = 'https://api.adu.microsoft.com/user_impersonation'
    
    Get-MsalToken -ClientId $clientId -TenantId $tenantId -Authority $authority -Scopes $Scope
    
  • ユーザー資格情報とデバイス コード:

    $clientId = '<app_id>’
    $tenantId = '<tenant_id>’
    $authority = "https://login.microsoftonline.com/$tenantId/v2.0"
    $Scope = 'https://api.adu.microsoft.com/user_impersonation'
    
    Get-MsalToken -ClientId $clientId -TenantId $tenantId -Authority $authority -Scopes $Scope -Interactive -DeviceCode
    
  • アプリの資格情報:

    $clientId = '<app_id>’
    $tenantId = '<tenant_id>’
    $cert = '<client_certificate>'
    $authority = "https://login.microsoftonline.com/$tenantId/v2.0"
    $Scope = 'https://api.adu.microsoft.com/.default'
    
    Get-MsalToken -ClientId $clientId -TenantId $tenantId -Authority $authority -Scopes $Scope -ClientCertificate $cert
    

マネージド ID のサポート

マネージド ID は、セキュリティで保護された自動的に管理される Microsoft Entra ID を Azure サービスに提供します。 マネージド ID を使用すると、開発者は ID を指定して資格情報を管理する必要がなくなります。 Device Update では、システム割り当てマネージド ID がサポートされています。

Device Update のシステム割り当てマネージド ID を追加するには、次の手順を実行します。

  1. Azure portal で、Device Update アカウントに移動します。
  2. 左側のナビゲーションで、[設定]>[ID] の順に選択します。
  3. [ID] ページの [システム割り当て] で、[状態][オン] に設定します。
  4. [保存] を選択し、[はい] を選択します。

IoT Hub のシステム割り当てマネージド ID を追加するには、次の手順を実行します。

  1. Azure portal で IoT Hub に移動します。
  2. 左側のナビゲーションで、[セキュリティの設定]>[ID] の順に選択します。
  3. [ID] ページの [システム割り当て] の下にある [状態][オン] を選択します。
  4. [保存] を選択し、[はい] を選択します。

Device Update アカウントまたは IoT ハブからシステム割り当てマネージド ID を削除するには、[ID] ページで [オフ] を設定または選択し、[保存] を選択します。