次の方法で共有


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

このクイック スタートでは、Java Web アプリケーションがユーザーをサインインさせ、Microsoft Graph API を呼び出す方法を示すコード サンプルをダウンロードして実行します。 Microsoft Entra 組織のユーザーは、アプリケーションにサインインできます。

図については、「サンプルのしくみ を参照してください。

前提 条件

このサンプルを実行するには、次のものが必要です。

クイックスタート アプリを登録してダウンロードする

クイック スタート アプリケーションを開始するには、express (オプション 1) と手動 (オプション 2) の 2 つの方法があります。

オプション 1: アプリを登録して自動的に構成し、コード サンプルをダウンロードする

  1. クラウド アプリケーション管理者以上の権限で Microsoft Entra 管理センター - アプリの登録クイックスタート エクスペリエンスに移動します。
  2. アプリケーションの名前を入力し、次に [登録] を選択します。
  3. ポータルのクイックスタート エクスペリエンスの手順に従って、自動的に構成されたアプリケーション コードをダウンロードします。

オプション 2: アプリケーションとコード サンプルを登録して手動で構成する

手順 1: アプリケーションを登録する

アプリケーションを登録し、アプリの登録情報を手動で追加するには、次の手順に従います。

  1. 少なくとも クラウド アプリケーション管理者として、Microsoft Entra 管理センター にサインインします。
  2. 複数のテナントにアクセスできる場合は、上部のメニュー 設定 アイコンを使用して、ディレクトリ + サブスクリプション メニューからアプリケーションを登録するテナントに切り替えます。
  3. [ID][アプリケーション][アプリの登録] の順に移動し、[新規登録] を選択します。
  4. アプリケーションの を入力します (例: java-webapp )。 アプリのユーザーには、この名前が表示される場合があります。 後で変更できます。
  5. [登録] を選択します。
  6. [の概要] ページで、アプリケーション (クライアント) IDディレクトリ (テナント) IDをメモします。 これらの値は後で必要になります。
  7. [管理] で、[認証] を選択します。
  8. [プラットフォームの追加>Web] を選択します。
  9. [リダイレクト URI] セクションに、「https://localhost:8443/msal4jsample/secure/aad」と入力します。
  10. を選択し、を構成します。
  11. [Web] セクションの [リダイレクト URI] で、2 番目のリダイレクト URI として「https://localhost:8443/msal4jsample/graph/me」と入力します。
  12. [管理]で、[証明書とシークレット] を選択します。 [クライアント シークレット] セクションで、[新しいクライアント シークレット] を選択します。
  13. キーの説明 (たとえば、アプリ シークレット) を入力し、既定の有効期限のままにして、[追加] を選択します。
  14. クライアント シークレットの に注意してください。 後で必要になります。

手順 2: コード サンプルをダウンロードする

コード サンプルの をダウンロードする

手順 3: コード サンプルを構成する

  1. zip ファイルをローカル フォルダーに抽出します。

  2. 随意。 統合開発環境を使用する場合は、その環境でサンプルを開きます。

  3. application.properties ファイルを開きます。 これは、src/main/resources/ フォルダーにあります。 aad.clientIdaad.authorityaad.secretKey の各フィールドの値を、それぞれアプリケーション ID、テナント ID、クライアント シークレットの値に置き換えます。 次のような外観になります。

     aad.clientId=Enter_the_Application_Id_here
     aad.authority=https://login.microsoftonline.com/Enter_the_Tenant_Info_Here/
     aad.secretKey=Enter_the_Client_Secret_Here
     aad.redirectUriSignin=https://localhost:8443/msal4jsample/secure/aad
     aad.redirectUriGraph=https://localhost:8443/msal4jsample/graph/me
     aad.msGraphEndpointHost="https://graph.microsoft.com/"
    

前のコードでは、次の手順を実行します。

  • Enter_the_Application_Id_here は、登録したアプリケーションのアプリケーション ID です。
  • Enter_the_Client_Secret_Here は、登録済みアプリケーション用に [証明書とシークレット] で作成した [クライアント シークレット] です。
  • Enter_the_Tenant_Info_Here は、登録したアプリケーションの ディレクトリ (テナント) ID 値です。
  1. localhost で HTTPS を使用するには、server.ssl.key プロパティを指定します。 自己署名証明書を生成するには、keytool ユーティリティ (JRE に含まれる) を使用します。

次に例を示します。

keytool -genkeypair -alias testCert -keyalg RSA -storetype PKCS12 -keystore keystore.p12 -storepass password

server.ssl.key-store-type=PKCS12
server.ssl.key-store=classpath:keystore.p12
server.ssl.key-store-password=password
server.ssl.key-alias=testCert
  1. 生成されたキーストア ファイルを、リソース フォルダーに配置します。

手順 4: コード サンプルを実行する

プロジェクトを実行するには、次のいずれかの手順を実行します。

IDE からプロジェクトを実行する

IDE から Web アプリケーションを実行するには、[実行] を選択し、プロジェクトのホーム ページに移動します。 このサンプルでは、標準のホーム ページ URL が https://localhost:8443.

  1. フロント ページで、ログイン ボタンを選択して、ユーザーを Microsoft Entra ID にリダイレクトし、資格情報の入力を求めます。

  2. ユーザーが認証されると、ユーザーは https://localhost:8443/msal4jsample/secure/aadにリダイレクトされます。 これでサインインし、ページにユーザー アカウントに関する情報が表示されます。 サンプル UI には、次のボタンがあります。

    • サインアウト: 現在のユーザーをアプリケーションからサインアウトし、そのユーザーをホーム ページにリダイレクトします。
    • ユーザー情報の表示: Microsoft Graph のトークンを取得し、トークンを含む要求で Microsoft Graph を呼び出します。この要求は、サインインしているユーザーに関する基本情報を返します。
Tomcat からプロジェクトを実行する

Web サンプルを Tomcat にデプロイする場合は、ソース コードをいくつか変更します。

  1. ms-identity-java-webapp/src/main/java/com.microsoft.azure.msalwebsample/MsalWebSampleApplicationを開きます。

    • すべてのソース コードを削除し、次のコードに置き換えます。

       package com.microsoft.azure.msalwebsample;
      
       import org.springframework.boot.SpringApplication;
       import org.springframework.boot.autoconfigure.SpringBootApplication;
       import org.springframework.boot.builder.SpringApplicationBuilder;
       import org.springframework.boot.web.servlet.support.SpringBootServletInitializer;
      
       @SpringBootApplication
       public class MsalWebSampleApplication extends SpringBootServletInitializer {
      
        public static void main(String[] args) {
         SpringApplication.run(MsalWebSampleApplication.class, args);
        }
      
        @Override
        protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
         return builder.sources(MsalWebSampleApplication.class);
        }
       }
      
  2. Tomcat の既定の HTTP ポートは 8080 ですが、ポート 8443 経由の HTTPS 接続が必要です。 この設定を構成するには:

    • tomcat/conf/server.xmlに移動します。

    • <connector> タグを検索し、既存のコネクタを次のコネクタに置き換えます。

      <Connector
               protocol="org.apache.coyote.http11.Http11NioProtocol"
               port="8443" maxThreads="200"
               scheme="https" secure="true" SSLEnabled="true"
               keystoreFile="C:/Path/To/Keystore/File/keystore.p12" keystorePass="KeystorePassword"
               clientAuth="false" sslProtocol="TLS"/>
      
  3. コマンド プロンプト ウィンドウを開きます。 このサンプルのルート フォルダー (pom.xml ファイルがある場所) に移動し、mvn package 実行してプロジェクトをビルドします。

    • このコマンドを実行すると、/targets ディレクトリに msal-web-sample-0.1.0.war ファイルが生成されます。
    • このファイルの名前を msal4jsample.warに変更します。
    • Tomcat またはその他の J2EE コンテナー ソリューションを使用して WAR ファイルをデプロイします。
      • msal4jsample.war ファイルをデプロイするには、Tomcat インストールの /webapps/ ディレクトリにコピーし、Tomcat サーバーを起動します。
  4. ファイルがデプロイされたら、ブラウザーを使用して https://localhost:8443/msal4jsample に移動します。

重要

このクイック スタート アプリケーションでは、クライアント シークレットを使用して、自身を機密クライアントとして識別します。 クライアント シークレットはプレーン テキストとしてプロジェクト ファイルに追加されるため、セキュリティ上の理由から、運用環境でアプリケーションを使用する前に、クライアント シークレットの代わりに証明書を使用することをお勧めします。 証明書の使用方法の詳細については、「アプリケーション認証のための証明書資格情報 」を参照してください。

詳細情報

サンプルのしくみ

このクイック スタートで生成されたサンプル アプリの動作を示す図。

MSAL を取得する

MSAL for Java (MSAL4J) は、Microsoft ID プラットフォームによって保護されている API へのアクセスに使用されるユーザーのサインインとトークンの要求に使用される Java ライブラリです。

Maven または Gradle を使用してアプリケーションに MSAL4J を追加し、アプリケーションの pom.xml (Maven) または build.gradle (Gradle) ファイルに次の変更を加えて依存関係を管理します。

pom.xml 内:

<dependency>
    <groupId>com.microsoft.azure</groupId>
    <artifactId>msal4j</artifactId>
    <version>1.0.0</version>
</dependency>

build.gradle の場合:

compile group: 'com.microsoft.azure', name: 'msal4j', version: '1.0.0'

MSAL を初期化する

MSAL for Java への参照を追加するには、MSAL4J を使用するファイルの先頭に次のコードを追加します。

import com.microsoft.aad.msal4j.*;

ヘルプとサポート

ヘルプが必要な場合、問題を報告する場合、またはサポート オプションについて知りたい場合は、「ヘルプと開発者向けのサポート」を参照

次の手順

Microsoft ID プラットフォームでユーザーをサインインする Web アプリの構築の詳細については、マルチパート シナリオ シリーズを参照してください。