次の方法で共有


クイック スタート: ユーザーをサインインさせ、ASP.NET Core Web アプリから Microsoft Graph API を呼び出す

このクイック スタートでは、サンプル ASP.NET Core Web アプリを使用して、承認コード フロー を使用してユーザーをサインインさせ、Microsoft Graph API を呼び出します。 このサンプルでは、Microsoft Authentication Library for .NETMicrosoft Identity Web を使用して認証を処理します。

前提 条件

  • アクティブなサブスクリプションを持つ Azure アカウント。 アカウントをまだお持ちでない場合は、無料アカウントを作成します。
  • .NET 8.0 SDK の最小要件
  • Visual Studio Code

アプリケーションとレコードの識別子を登録する

登録を完了するには、アプリケーションに名前を指定し、サポートされているアカウントの種類を指定します。 登録すると、アプリケーション の [概要] ペインに、アプリケーションのソース コードに必要な識別子が表示されます。

  1. Microsoft Entra 管理センター にサインインします。

  2. 複数のテナントにアクセスできる場合は、上部のメニュー 設定 アイコンを使用して、ディレクトリ + サブスクリプション メニューからアプリケーションを登録するテナントに切り替えます。

  3. [ID][アプリケーション][アプリの登録] の順に移動し、[新規登録] を選択します。

  4. アプリケーションの[名前] (identity-client-web-app など) を入力します。

  5. [サポートされているアカウントの種類] で、[この組織のディレクトリ内のアカウントのみ] を選択します。 さまざまなアカウントの種類の詳細については、[選択に関するヘルプ] オプションを選択します。

  6. [登録] を選択します。

    Microsoft Entra 管理センターで名前を入力し、アカウントの種類を選択する方法を示すスクリーンショット。

  7. 登録が完了すると、アプリケーションの の [概要] ウィンドウが表示されます。 ディレクトリ (テナント) ID と、アプリケーションのソース コードで使用する アプリケーション (クライアント) ID を記録します。

    Microsoft Entra 管理センターの概要ページに識別子の値を示すスクリーンショット。

    手記

    サポートされているアカウントの種類 は、「アプリケーションでサポートされているアカウントを変更する」を参照して変更できます。

プラットフォーム リダイレクト URI を追加する

アプリの登録にアプリの種類を指定するには、次の手順に従います。

  1. [管理] で、[認証] を選択します。
  2. [プラットフォーム構成 ] ページで、[プラットフォーム 追加] を選択し、Web オプション 選択します。
  3. リダイレクト URI に「https://localhost:5001/signin-oidc」と入力します。
  4. フロントチャネルログアウトURLにて、サインアウト用の https://localhost:5001/signout-callback-oidc を入力します。
  5. [ の構成] を選択して変更を保存します。

サンプル アプリケーションを複製またはダウンロードする

サンプル アプリケーションを取得するには、GitHub から複製するか、.zip ファイルとしてダウンロードします。

  • サンプルを複製するには、コマンド プロンプトを開き、プロジェクトを作成する場所に移動し、次のコマンドを入力します。

    git clone https://github.com/Azure-Samples/ms-identity-docs-code-dotnet.git
    
  • .zip ファイルをダウンロードします。 名前の長さが 260 文字未満のファイル パスに抽出します。

自己署名証明書を作成してアップロードする

アプリケーションをセキュリティで保護するには、アプリケーションに証明書を追加します。 このセクションでは、自己署名証明書を作成し、Microsoft Entra 管理センターのアプリケーション登録にアップロードする方法について説明します。

手記

自己署名証明書は、開発中にのみ使用する必要があります。 運用環境では、信頼された証明機関の証明書を使用する必要があります。

  1. ターミナルを使用して、次のコマンドを使用して、プロジェクト ディレクトリに自己署名証明書を作成します。

    cd ms-identity-docs-code-dotnet\web-app-aspnet\
    dotnet dev-certs https -ep ./certificate.crt --trust
    
  2. Microsoft Entra 管理センターに戻り、[管理] で、[証明書 & シークレット >証明書のアップロード] を選択します。

  3. [証明書 (0)] タブを選択し、[証明書をアップロード] を選択します。

  4. [証明書のアップロード] ウィンドウが表示されます。 アイコンを使用して、前の手順で作成した証明書ファイルに移動し、[を開く]選択します。

  5. 証明書の説明 (例: aspnet-web-app の証明書) を入力し、[追加] を選択します。

  6. 次の手順で使用する 拇印 値を記録します。

プロジェクトを構成する

  1. IDE で、サンプルを含む ms-identity-docs-code-dotnet\web-app-aspnet プロジェクト フォルダーを開きます。

  2. appsettings.json を開き、ファイルの内容を次のスニペットに置き換えます。

    {
    "AzureAd": {
      "Instance": "https://login.microsoftonline.com/",
      "TenantId": "Enter the tenant ID obtained from the Microsoft Entra admin center",
      "ClientId": "Enter the client ID obtained from the Microsoft Entra admin center",
      "ClientCertificates": [
        {
          "SourceType": "StoreWithThumbprint",
          "CertificateStorePath": "CurrentUser/My",
          "CertificateThumbprint": "Enter the certificate thumbprint obtained the Microsoft Entra admin center"
        }   
      ],
      "CallbackPath": "/signin-oidc"
    },
      "DownstreamApi": {
        "BaseUrl": "https://graph.microsoft.com/v1.0/",
        "RelativePath": "me",
        "Scopes": [ 
          "user.read" 
        ]
      },
      "Logging": {
        "LogLevel": {
          "Default": "Information",
          "Microsoft.AspNetCore": "Warning"
        }
      },
      "AllowedHosts": "*"
    }
    
    • TenantId - アプリケーションが登録されているテナントの識別子。 前に登録済みアプリケーションの概要ページから記録した Directory (tenant) ID に、引用符で囲まれたテキストを置き換えてください。
    • ClientId - アプリケーションの識別子 。クライアントとも呼ばれます。 引用符で囲まれたテキストを、登録済みアプリケーションの概要ページから前に記録した Application (client) ID 値に置き換えます。
    • ClientCertificates - 自己署名証明書がアプリケーションの認証に使用されます。 CertificateThumbprint のテキストを、以前に記録した証明書の拇印に置き換えます。

アプリケーションを実行してサインインする

  1. プロジェクト ディレクトリで、ターミナルを使用して次のコマンドを入力します。

    dotnet run
    
  2. ターミナルに表示される https URL (https://localhost:5001など) をコピーし、ブラウザーに貼り付けます。 プライベートまたはシークレット のブラウザー セッションを使用することをお勧めします。

  3. 手順に従い、Microsoft アカウントでサインインするために必要な詳細を入力します。 ワンタイム パスコードを送信できるように、電子メール アドレスを指定するように求められます。 メッセージが表示されたら、コードを入力します。

  4. アプリケーションは、アクセス権を付与したデータへのアクセスを維持し、サインインしてプロファイルを読み取るアクセス許可を要求します。 を選択し、を同意します。

  5. 次のスクリーンショットは、アプリケーションにサインインし、Microsoft Graph API からプロファイルの詳細にアクセスしたことを示しています。

    API 呼び出しの結果を示すスクリーンショット。

アプリケーションからサインアウトする

  1. ページの右上隅にある サインアウト リンクを見つけて選択します。
  2. サインアウトするアカウントを選択するように求められます。 サインインに使用したアカウントを選択します。
  3. サインアウトしたことを示すメッセージが表示されます。ブラウザー ウィンドウを閉じることができるようになりました。