次の方法で共有


AAD マネージド ID を使用して Azure Sphere パブリック API にアクセスする

重要

これは Azure Sphere (レガシ) のドキュメントです。 Azure Sphere (レガシ) は 2027 年 9 月 27 日に廃止され、ユーザーは現時点で Azure Sphere (統合) に移行する必要があります。 TOC の 上にあるバージョン セレクターを使用して、Azure Sphere (統合) のドキュメントを表示します。

この方法を使用すると、コード内の資格情報を使用せずに、Azure Active Directory (AAD) 認証をサポートする任意のサービスに対して認証を行うことができます。 AAD マネージド ID は、ユーザーに代わってサービス プリンシパルの作成または更新を処理します。 これは、Azure リソースでのみ使用できる特殊な種類のサービス プリンシパルです。 マネージド ID が削除されると、対応するサービス プリンシパルが自動的に削除されます。

システム割り当て: Azure サービスによっては、サービス インスタンスに対して直接マネージド ID を有効にすることができます。 たとえば、Azure アプリ サービスです。 システム割り当てマネージド ID を有効にすると、そのサービス インスタンスのライフサイクルに関連付けられた ID が Azure AD に作成されます。 したがって、リソースが削除されると、その ID も Azure によって自動的に削除されます。 その ID を使用して Azure AD にトークンを要求できるのは、必然的に、その Azure リソースのみとなります。

前提条件

次のセクションでは、マネージド ID を使用して Azure Web アプリから Azure Sphere パブリック API (PAPI) を呼び出す方法について説明します。

手順 1: リソースでシステム割り当て ID を有効にする

リソースでシステム割り当て ID を有効にし、プロジェクトのオブジェクト ID を検索するには:

  1. Azure portal の左側のナビゲーション ウィンドウで、[App Services] をクリックします
  2. ドロップダウンから必要なサブスクリプションを選択し、検索結果からアプリを選択します。
  3. ロジック アプリのメニューの [設定] で、 [ID] を選択します。
  4. [状態] を [オン] に設定して、システム割り当て ID を有効にします
  5. [保存] をクリックします。
  6. オブジェクト ID をコピーします。

手順 2: マネージド ID を Azure Sphere テナントに追加する

Note

この手順を開始する前に、次のことを確認してください。

Azure Sphere は、サービス プリンシパルを別のユーザーとして扱います。 サービス プリンシパルを使用してトークンを取得するには、まずサービス プリンシパル ユーザーを Azure Sphere テナントに追加してから、Azure Sphere CLI を使用して Azure Sphere テナントのユーザーにロールを割り当てます。

ユーザー ID は ObjectID@<TenantID.onmicrosoft.com>> として<生成できます。

次の例では、Azure Sphere tttttttt-tttt-tttt-tttt-ttttttttttttテナント ID にオブジェクト ID と Azure AD テナント ID xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxzzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz組み合わせを使用してユーザーを作成し、このユーザーの共同作成者ロールを追加します。

  1. Azure Sphere CLI を使用して Azure Sphere ログインでサインインします。

    azsphere login
    
  2. 必要なテナントを選択します。

    azsphere tenant select --tenant tttttttt-tttt-tttt-tttt-tttttttttttt
    
  3. 必要なロールにユーザーを追加するには:

    azsphere role add --role Contributor --user xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx@zzzzzzzz-zzzz-zzzz-zzzz-zzzzzzzzzzzz.onmicrosoft.com
    

手順 3: プロジェクトに Azure.Identity NuGet パッケージを追加する

プロジェクトに Azure.Identity NuGet パッケージ を追加します。 Azure Sphere パブリック API (PAPI) トークンは、DefaultAzureCredential によって取得できます。

たとえば、次のコード スニペットを参照してください。

    public static async Task<string> GetAS3Token()
    {
        DefaultAzureCredential credential = new DefaultAzureCredential();
        var result = await credential.GetTokenAsync(new Azure.Core.TokenRequestContext(
        new[] { "https://firstparty.sphere.azure.net/api/.default" }));
        return result.Token;
    }