Microsoft Azure ADで Intune API にアクセスする方法Graph

Microsoft Graph API は、特定の API Microsoft Intuneアクセス許可ロールをサポートしています。 Microsoft Graph API Azure Active Directory (Azure AD) を認証およびアクセス制御に使用します。
Microsoft の Intune API へのアクセスには、次Graph必要があります。

  • 次のアプリケーション ID を持つアプリケーション ID。

    • ユーザーと Microsoft Azure AD API を呼び出Graphアクセス許可。
    • 特定のアプリケーション タスクに関連するアクセス許可スコープ。
  • 次のユーザー資格情報を使用します。

    • アプリケーションに関連付Azure ADテナントにアクセスするためのアクセス許可。
    • アプリケーションのアクセス許可スコープをサポートするために必要な役割のアクセス許可。
  • Azure テナントのアプリケーション タスクを実行するためのアクセス許可をアプリに付与するエンド ユーザー。

この記事:

  • Microsoft API および関連するアクセス許可ロールへのアクセス権を持つGraphを登録する方法を示します。

  • Intune API のアクセス許可の役割について説明します。

  • アプリと PowerShell の Intune API 認証C#示します。

  • 複数のテナントをサポートする方法について説明します。

詳細については、次を参照してください。

Microsoft Graph API を使用するアプリを登録する

Microsoft アプリ API を使用するアプリGraphするには、次のGraphします。

  1. 管理者資格情報を使用Microsoft エンドポイント マネージャー管理センターにサインインします。

    必要に応じて、以下を使用できます。

    • テナント管理者アカウント。
    • ユーザーを持つテナント ユーザー アカウント は、アプリケーションの登録設定を有効 にできます。
  2. [すべてのサービス > ] M365 Azure Active Directory Azure Active Directory > > を選択します

    The App registrations menu command
  3. [新規登録 ] を選択 して新しいアプリケーションを作成するか、既存のアプリケーションを選択します。 (既存のアプリケーションを選択する場合は、次の手順をスキップします)。

  4. [アプリケーションの 登録] ウィンドウで 、次の項目を指定します。

  5. アプリケーション ウィンドウから次の操作を実行します。

    1. アプリケーション (クライアント) の ID 値に注意 してください。

    2. [API アクセス許可] を選択します。

  6. [API アクセス許可] ウィンドウで、[アクセス許可 > Graph追加] を選択 します。 > 次に、アプリケーションで必要なアクセス許可の種類を選択します。

    関連する名前の左側にチェックマークを付け、アプリに必要な役割を選択します。 特定の Intune アクセス許可スコープの詳細については、「Intune のアクセス許可 スコープ」を参照してください。 他の API アクセス許可スコープGraph詳細については、「Microsoft Graphアクセス許可リファレンス」を参照してください

    最適な結果を得る場合は、アプリケーションの実装に必要な最も少ないロールを選択します。

データ ウェアハウスとレポートのアクセス許可

管理センターからアプリケーションを追加Azure Active Directory、アプリケーションの要件に基づいて Intune API のアクセス許可を選択できます。

  • get_data_warehouse - この API アクセス許可を使用して、Intune データ ウェアハウス API へのアクセス権をユーザーから付与Microsoft Intune。 詳細については、「データ ウェアハウスの使用」Microsoft Intune参照してください

パートナー ソリューション API

次の Intune API アクセス許可は、管理センターからアプリケーションを追加するときにAzure Active Directory使用できます。

  • get_device_compliance - この API アクセス許可は、デバイスの状態とコンプライアンス情報をユーザーから取得Microsoft Intune。 この API アクセス許可は、ネットワーク アクセス制御パートナーによって使用されます。 詳細については、「ネットワーク アクセス制御 と Intune との統合」を参照してください
  • manage_partner_compliance_policy - この API アクセス許可は、パートナー コンプライアンス ポリシーを管理するために使用Microsoft Intune。 この API アクセス許可を使用すると、アプリは、サインインしているユーザーなしでパートナー コンプライアンス ポリシー Azure ADグループMicrosoft Intuneグループの割り当てを送信できます。 デバイス コンプライアンス パートナーによって使用されます。 詳細については、「サード パーティ製デバイス コンプライアンス パートナー」を参照してください
  • pfx_cert_provider - この API アクセス許可を使用して、特定のユーザーの PFX 証明書を Intune に送信します。 Intune は、ユーザーが登録したすべてのデバイスに証明書を配信します。 詳細については 、「PFX Import Powershell」を参照してください
  • scep_challenge_provider - この API アクセス許可は、証明書要求の検証のために SCEP チャレンジを Intune に送信するために使用されます。 証明機関のパートナーによって使用されます。 詳細については、「パートナー証明機関 」を参照してください
  • send_data_usage - この API アクセス許可は、通信経費管理のしきい値に基づいてデバイスのポリシー変更をトリガーするために使用されます。 これは、通信経費管理パートナーの統合に使用されます。 詳細については 、「Intune での通信経費管理」を参照してください
  • update_device_attributes - この API アクセス許可は、デバイスコンプライアンスおよびモバイル脅威防御パートナーから Intune にデバイス情報を送信するために使用されます。 詳細については 、「Mobile Threat Defense と Intune およびサード パーティ製デバイス コンプライアンス パートナーとの統合」 を参照してください
  • update_device_health - この API アクセス許可は、モバイル脅威防御パートナーからデバイスの正常性と脅威の状態情報を Intune に送信するために使用されます。 詳細については 、「Mobile Threat Defense と Intune との統合」を参照してください

これらの API アクセス許可を使用して Intune との統合に関心を持つパートナーの場合は 、Microsoft Intelligent Security Association] チームに問い合わせ、詳細を確認してください。

完了したら、[アクセス許可の 追加] を選択して 変更を保存します。

この時点で、次の場合があります。

  • 資格情報を提供せずに、すべてのテナント アカウントがアプリを使用するためのアクセス許可を付与する場合に選択します。

    これを行うには、アクセス許可を付与し、確認プロンプトに同意します。

    アプリケーションを初めて実行すると、選択した役割を実行するためのアクセス許可をアプリに付与するように求めるメッセージが表示されます。

  • テナント外のユーザーがアプリを利用できます。 (これは通常、複数のテナント/組織をサポートするパートナーにのみ必要です)。

    そのためには、次を実行します。

    1. アプリケーション ウィンドウから [マニフェスト ] を選択します。

      The Edit manifest blade
    2. 設定の値をに availableToOtherTenants 変更します true

    3. 変更内容を保存します。

Intune のアクセス許可スコープ

Azure AD Microsoft および Microsoft Graphアクセス許可スコープを使用して、企業リソースへのアクセスを制御します。

アクセス許可スコープ (OAuth スコープとも呼ばれる) は、特定の Intune エンティティとそのプロパティへのアクセスを制御します。 このセクションでは、Intune API 機能のアクセス許可スコープの概要を示します。

詳細情報:

Microsoft Graph にアクセス許可を付与する場合は、Intune 機能へのアクセスを制御するために次のスコープを指定できます。次の表は、Intune API のアクセス許可スコープの概要を示しています。 最初の列には、管理センターに表示される機能のMicrosoft エンドポイント マネージャー、2番目の列にアクセス許可スコープ名が表示されます。

アクセス設定を有効 にする スコープ名
Microsoft Intune デバイスでユーザーに影響を与えるリモート操作を実行する DeviceManagementManagedDevices.PrivilegedOperations.All
Microsoft Intune デバイスの読み取りおよび書き込み DeviceManagementManagedDevices.ReadWrite.All
Microsoft Intune デバイスの読み取り DeviceManagementManagedDevices.Read.All
Microsoft Intune RBAC の設定の読み取りおよび書き込み DeviceManagementRBAC.ReadWrite.All
Microsoft Intune RBAC の設定の読み取り DeviceManagementRBAC.Read.All
Microsoft Intune アプリの読み取りおよび書き込み DeviceManagementApps.ReadWrite.All
Microsoft Intune アプリの読み取り DeviceManagementApps.Read.All
デバイスの構成とMicrosoft Intuneの読み取りおよび書き込み DeviceManagementConfiguration.ReadWrite.All
デバイスMicrosoft Intuneポリシーの読み取り DeviceManagementConfiguration.Read.All
Microsoft Intune 構成の読み取りおよび書き込み DeviceManagementServiceConfig.ReadWrite.All
Microsoft Intune 構成の読み取り DeviceManagementServiceConfig.Read.All

次の表に、管理センターに表示される設定Microsoft エンドポイント マネージャー示します。 次のセクションでは、範囲をアルファベット順に説明します。

現時点では、すべての Intune アクセス許可スコープに管理者アクセスが必要です。 つまり、Intune API リソースにアクセスするアプリまたはスクリプトを実行する場合は、対応する資格情報が必要になります。

DeviceManagementApps.Read.All

  • アクセス設定を有効 にする:アプリMicrosoft Intune読み取り

  • 次のエンティティのプロパティと状態への読み取りアクセスを許可します。

    • クライアント アプリ
    • モバイル アプリのカテゴリ
    • アプリ保護ポリシー
    • アプリの構成

DeviceManagementApps.ReadWrite.All

  • アクセス設定を有効 にする:アプリの読み取りMicrosoft Intune書き込み

  • DeviceManagementApps.Read.All と同じ操作を許可します。

  • また、次のエンティティへの変更も許可されます。

    • クライアント アプリ
    • モバイル アプリのカテゴリ
    • アプリ保護ポリシー
    • アプリの構成

DeviceManagementConfiguration.Read.All

  • アクセス設定を有効 にする:デバイスMicrosoft Intuneポリシーの読み取り

  • 次のエンティティのプロパティと状態への読み取りアクセスを許可します。

    • デバイス構成
    • デバイス コンプライアンス ポリシー
    • 通知メッセージ

DeviceManagementConfiguration.ReadWrite.All

  • アクセス設定を有効 にする:デバイスの構成とMicrosoft Intuneの読み取りおよび書き込み

  • DeviceManagementConfiguration.Read.All と同じ操作を許可します。

  • アプリは、次のエンティティを作成、割り当て、削除、および変更することもできます。

    • デバイス構成
    • デバイス コンプライアンス ポリシー
    • 通知メッセージ

DeviceManagementManagedDevices.PrivilegedOperations.All

  • [アクセスを有効 にする] 設定:ユーザーに影響を与えるリモート アクションをデバイスに対Microsoft Intune実行する

  • 管理対象デバイスで次のリモート アクションを許可します。

    • 破棄
    • ワイプ
    • パスコードのリセットと回復
    • リモート ロック
    • 紛失モードを有効/無効にする
    • クリーン PC
    • 再起動
    • 共有デバイスからユーザーを削除する

DeviceManagementManagedDevices.Read.All

  • アクセス設定を有効 にする:デバイスMicrosoft Intune読み取り

  • 次のエンティティのプロパティと状態への読み取りアクセスを許可します。

    • 管理対象デバイス
    • デバイス カテゴリ
    • 検出されたアプリ
    • リモート操作
    • マルウェア情報

DeviceManagementManagedDevices.ReadWrite.All

  • アクセス設定を有効 にする:デバイスの読み取りMicrosoft Intune書き込み

  • DeviceManagementManagedDevices.Read.All と同じ操作を許可します。

  • アプリは、次のエンティティを作成、削除、および変更することもできます。

    • 管理対象デバイス
    • デバイス カテゴリ
  • 次のリモート アクションも許可されます。

    • デバイスの検索
    • アクティベーション ロックを無効にする
    • リモート アシスタンスを要求する

DeviceManagementRBAC.Read.All

  • アクセス設定を有効 にする: RBAC Microsoft Intune読み取り

  • 次のエンティティのプロパティと状態への読み取りアクセスを許可します。

    • 役割の割り当て
    • 役割の定義
    • リソース操作

DeviceManagementRBAC.ReadWrite.All

  • アクセス設定を有効 にする: RBAC 設定の読み取りMicrosoft Intune書き込み

  • DeviceManagementRBAC.Read.All と同じ操作を許可します

  • アプリは、次のエンティティを作成、割り当て、削除、および変更することもできます。

    • 役割の割り当て
    • 役割の定義

DeviceManagementServiceConfig.Read.All

  • アクセス設定を有効 にする:読み取りMicrosoft Intune構成

  • 次のエンティティのプロパティと状態への読み取りアクセスを許可します。

    • デバイス登録
    • Apple プッシュ通知証明書
    • Apple デバイス登録プログラム
    • Apple ボリューム購入プログラム
    • Exchangeコネクタ
    • 利用規約
    • テレコム経費管理
    • クラウド PKI
    • ブランド化
    • モバイル脅威防御

DeviceManagementServiceConfig.ReadWrite.All

  • アクセス設定を有効 にする:読み取りおよびMicrosoft Intune構成

  • ユーザーと同じ操作をDeviceManagementServiceConfig.Read.All_

  • アプリは、次の Intune 機能を構成することもできます。

    • デバイス登録
    • Apple プッシュ通知証明書
    • Apple デバイス登録プログラム
    • Apple ボリューム購入プログラム
    • Exchangeコネクタ
    • 利用規約
    • テレコム経費管理
    • クラウド PKI
    • ブランド化
    • モバイル脅威防御

Azure AD認証の例

このセクションでは、プロジェクトと PowerShell Azure ADにC#を組み込む方法を示します。

各例では、少なくともアクセス許可スコープを持つアプリケーション ID を指定 DeviceManagementManagedDevices.Read.All する必要があります (前に説明しました)。

いずれかの例をテストする場合、次のような HTTP 状態 403 (禁止) エラーが表示される場合があります。

{
  "error": {
    "code": "Forbidden",
    "message": "Application is not authorized to perform this operation - Operation ID " +
       "(for customer support): 00000000-0000-0000-0000-000000000000 - " +
       "Activity ID: cc7fa3b3-bb25-420b-bfb2-1498e598ba43 - " +
       "Url: https://example.manage.microsoft.com/" +
       "Service/Resource/RESTendpoint?" +
       "api-version=2017-03-06 - CustomApiErrorPhrase: ",
    "innerError": {
      "request-id": "00000000-0000-0000-0000-000000000000",
      "date": "1980-01-0112:00:00"
    }
  }
}

この場合は、次のことが確認されます。

  • アプリケーション ID を、Microsoft サービス API およびアクセス許可スコープの使用がGraphに DeviceManagementManagedDevices.Read.All 更新しました。

  • テナント資格情報は、管理機能をサポートします。

  • コードは、表示されるサンプルと似ています。

C Azure AD認証#

次の使用例は、Intune アカウントに関連C#デバイスの一覧を取得する方法を示しています。

注意

Azure Active Directory (Azure AD) 認証ライブラリ (ADAL) と api のAzure AD Graphは廃止されます。 詳細については、「Update your applications to use Microsoft Authentication Library (MSAL)」および「Microsoft Graph API」を参照してください

  1. 開始Visual Studioコンソール アプリ (Visual C#) プロジェクトを.NET Frameworkします。

  2. プロジェクトの名前を入力し、必要に応じてその他の詳細を入力します。

    Creating a C# console app project in Visual Studio
  3. ソリューション エクスプローラーを使用して、Microsoft ADAL NuGetパッケージをプロジェクトに追加します。

    1. ソリューション エクスプローラーを右クリックします。
    2. [パッケージの管理NuGet..] を選択します。 >参照します
    3. [インストール Microsoft.IdentityModel.Clients.ActiveDirectory ] を選択し、[インストール] を選択します
    Selecting the Azure AD identity model module
  4. Program.cs の上部に次のステートメントを追加します。

    using Microsoft.IdentityModel.Clients.ActiveDirectory;
    using System.Net.Http;
    
  5. 承認ヘッダーを作成するメソッドを追加します。

    private static async Task<string> GetAuthorizationHeader()
    {
        string applicationId = "<Your Application ID>";
        string authority = "https://login.microsoftonline.com/common/";
        Uri redirectUri = new Uri("urn:ietf:wg:oauth:2.0:oob");
        AuthenticationContext context = new AuthenticationContext(authority);
        AuthenticationResult result = await context.AcquireTokenAsync(
            "https://graph.microsoft.com",
            applicationId, redirectUri,
            new PlatformParameters(PromptBehavior.Auto));
        return result.CreateAuthorizationHeader();
    

    前述のように、少なくともアクセス許可スコープが付与されているスコープに一致するように値 application_ID DeviceManagementManagedDevices.Read.All を変更してください。

  6. デバイスの一覧を取得するメソッドを追加します。

    private static async Task<string> GetMyManagedDevices()
    {
        string authHeader = await GetAuthorizationHeader();
        HttpClient graphClient = new HttpClient();
        graphClient.DefaultRequestHeaders.Add("Authorization", authHeader);
        return await graphClient.GetStringAsync(
            "https://graph.microsoft.com/beta/me/managedDevices");
    }
    
  7. GetMyManagedDevices を呼び出すメインの更新:

    string devices = GetMyManagedDevices().GetAwaiter().GetResult();
    Console.WriteLine(devices);
    
  8. プログラムをコンパイルして実行します。

プログラムを初めて実行すると、2 つのプロンプトが表示されます。 1 つ目は資格情報を要求し、2 つ目は要求に対するアクセス許可を付与 managedDevices します。

参考までに、完成したプログラムを次に示します。

using Microsoft.IdentityModel.Clients.ActiveDirectory;
using System;
using System.Net.Http;
using System.Threading.Tasks;

namespace IntuneGraphExample
{
    class Program
    {
        static void Main(string[] args)
        {
            string devices = GetMyManagedDevices().GetAwaiter().GetResult();
            Console.WriteLine(devices);
        }

        private static async Task<string> GetAuthorizationHeader()
        {
            string applicationId = "<Your Application ID>";
            string authority = "https://login.microsoftonline.com/common/";
            Uri redirectUri = new Uri("urn:ietf:wg:oauth:2.0:oob");
            AuthenticationContext context = new AuthenticationContext(authority);
            AuthenticationResult result = await context.AcquireTokenAsync("https://graph.microsoft.com", applicationId, redirectUri, new PlatformParameters(PromptBehavior.Auto));
            return result.CreateAuthorizationHeader();
        }

        private static async Task<string> GetMyManagedDevices()
        {
            string authHeader = await GetAuthorizationHeader();
            HttpClient graphClient = new HttpClient();
            graphClient.DefaultRequestHeaders.Add("Authorization", authHeader);
            return await graphClient.GetStringAsync("https://graph.microsoft.com/beta/me/managedDevices");
        }
    }
}

認証Azure AD (PowerShell)

次の PowerShell スクリプトは、認証に AzureAD PowerShell モジュールを使用します。 詳細については、「PowerShell バージョン 2 Azure Active Directory Intune PowerShell の例」を参照してください

この例では、有効なアプリケーション $clientID ID に一致する値を更新します。

function Get-AuthToken {
    [cmdletbinding()]
    param
    (
        [Parameter(Mandatory = $true)]
        $User
    )

    $userUpn = New-Object "System.Net.Mail.MailAddress" -ArgumentList $User
    $tenant = $userUpn.Host

    Write-Host "Checking for AzureAD module..."

    $AadModule = Get-Module -Name "AzureAD" -ListAvailable
    if ($AadModule -eq $null) {
        Write-Host "AzureAD PowerShell module not found, looking for AzureADPreview"
        $AadModule = Get-Module -Name "AzureADPreview" -ListAvailable
    }

    if ($AadModule -eq $null) {
        write-host
        write-host "AzureAD Powershell module not installed..." -f Red
        write-host "Install by running 'Install-Module AzureAD' or 'Install-Module AzureADPreview' from an elevated PowerShell prompt" -f Yellow
        write-host "Script can't continue..." -f Red
        write-host
        exit
    }

    # Getting path to ActiveDirectory Assemblies
    # If the module count is greater than 1 find the latest version

    if ($AadModule.count -gt 1) {
        $Latest_Version = ($AadModule | select version | Sort-Object)[-1]
        $aadModule = $AadModule | ? { $_.version -eq $Latest_Version.version }
        $adal = Join-Path $AadModule.ModuleBase "Microsoft.IdentityModel.Clients.ActiveDirectory.dll"
        $adalforms = Join-Path $AadModule.ModuleBase "Microsoft.IdentityModel.Clients.ActiveDirectory.Platform.dll"
    }

    else {
        $adal = Join-Path $AadModule.ModuleBase "Microsoft.IdentityModel.Clients.ActiveDirectory.dll"
        $adalforms = Join-Path $AadModule.ModuleBase "Microsoft.IdentityModel.Clients.ActiveDirectory.Platform.dll"
    }

    [System.Reflection.Assembly]::LoadFrom($adal) | Out-Null
    [System.Reflection.Assembly]::LoadFrom($adalforms) | Out-Null

    $clientId = "<Your Application ID>"
    $redirectUri = "urn:ietf:wg:oauth:2.0:oob"
    $resourceAppIdURI = "https://graph.microsoft.com"
    $authority = "https://login.microsoftonline.com/$Tenant"

    try {
        $authContext = New-Object "Microsoft.IdentityModel.Clients.ActiveDirectory.AuthenticationContext" -ArgumentList $authority
        # https://msdn.microsoft.com/library/azure/microsoft.identitymodel.clients.activedirectory.promptbehavior.aspx
        # Change the prompt behaviour to force credentials each time: Auto, Always, Never, RefreshSession
        $platformParameters = New-Object "Microsoft.IdentityModel.Clients.ActiveDirectory.PlatformParameters" -ArgumentList "Auto"
        $userId = New-Object "Microsoft.IdentityModel.Clients.ActiveDirectory.UserIdentifier" -ArgumentList ($User, "OptionalDisplayableId")
        $authResult = $authContext.AcquireTokenAsync($resourceAppIdURI, $clientId, $redirectUri, $platformParameters, $userId).Result
        # If the accesstoken is valid then create the authentication header
        if ($authResult.AccessToken) {
            # Creating header for Authorization token
            $authHeader = @{
                'Content-Type' = 'application/json'
                'Authorization' = "Bearer " + $authResult.AccessToken
                'ExpiresOn' = $authResult.ExpiresOn
            }
            return $authHeader
        }
        else {
            Write-Host
            Write-Host "Authorization Access Token is null, please re-run authentication..." -ForegroundColor Red
            Write-Host
            break
        }
    }
    catch {
        write-host $_.Exception.Message -f Red
        write-host $_.Exception.ItemName -f Red
        write-host
        break
    }   
}

$authToken = Get-AuthToken -User "<Your AAD Username>"

try {
    $uri = "https://graph.microsoft.com/beta/me/managedDevices"
    Write-Verbose $uri
    (Invoke-RestMethod -Uri $uri –Headers $authToken –Method Get).Value
}
catch {
    $ex = $_.Exception
    $errorResponse = $ex.Response.GetResponseStream()
    $reader = New-Object System.IO.StreamReader($errorResponse)
    $reader.BaseStream.Position = 0
    $reader.DiscardBufferedData()
    $responseBody = $reader.ReadToEnd();
    Write-Host "Response content:`n$responseBody" -f Red
    Write-Error "Request to $Uri failed with HTTP Status $($ex.Response.StatusCode) $($ex.Response.StatusDescription)"
    write-host
    break
}

複数のテナントとパートナーをサポートする

組織が独自のテナントを持つ組織Azure ADサポートしている場合は、クライアントがそれぞれのテナントでアプリケーションを使用できます。

そのためには、次を実行します。

  1. クライアント アカウントがテナントのターゲット アカウントAzure ADします。

  2. テナント アカウントでユーザーがアプリケーションの登録を許可している (「ユーザー設定」 を参照) を確認します

  3. 各テナント間の関係を確立します。

    これを行うには、次のいずれかの操作を行います。

    a. Microsoft パートナー センターを使用して 、クライアントとそのメール アドレスとの関係を定義します。

    b. ユーザーをテナントのゲストに招待します。

ユーザーをテナントのゲストに招待するには、次の方法を実行します。

  1. [クイック タスク] パネルから [ゲスト ユーザー の追加] を選択 します。

    Use Quick Tasks to add a guest user
  2. クライアントの電子メール アドレスを入力し、(オプションで) 招待のカスタマイズされたメッセージを追加します。

    Inviting an external user as a guest
  3. [招待 ] を選択します

これにより、ユーザーに招待が送信されます。

A sample guest invitation

ユーザーは、招待を受け入 はじめに リンクを選択する必要があります。

リレーションシップが確立されている (または招待が承諾された場合)、ユーザー アカウントを Directory ロールに 追加します

必要に応じて、ユーザーを他の役割に追加してください。 たとえば、ユーザーが Intune 設定を管理するには、グローバル管理者または Intuneサービス管理者である 必要があります

また:

  • Intune https://admin.microsoft.com ライセンスをユーザー アカウントに割り当てる場合に使用します。

  • アプリケーション コードを更新して、独自のドメインではなく、Azure ADドメインに対して認証します。

    たとえば、テナント ドメインがテナント ドメインであり、クライアントのテナント ドメインが次の場合は、クライアントのテナントに対する認証を行うコード contosopartner.onmicrosoft.com northwind.onmicrosoft.com を更新します。

    前の例に基C#アプリケーションでこれを行うには、変数の値を変更 authority します。

    string authority = "https://login.microsoftonline.com/common/";
    

    string authority = "https://login.microsoftonline.com/northwind.onmicrosoft.com/";