チュートリアル: Node.js Web アプリケーションを作成して、ユーザーをサインインさせる
このチュートリアルは、Node.js Web アプリの構築と、Microsoft Entra 管理センターを使用した認証の準備を行うシリーズのパート 2 です。 このシリーズのパート 1 では、外部テナントでアプリケーションを登録し、ユーザー フローを構成しました。 このチュートリアルでは、Node.js(Express) プロジェクトを作成し、必要なすべてのフォルダーとファイルを編成します。 ここで準備したアプリケーションへのサインインを有効にします。 このNode.js(Express) Web アプリケーションのビューでは、Handlebars が使用されます。
このチュートリアルでは、次のことを行います。
- Node.js プロジェクトを作成する
- 依存関係のインストール
- アプリ ビューと UI コンポーネントを追加する
前提条件
- チュートリアル: Node.js Web アプリでユーザーをサインインさせるように外部テナントを準備する
- React アプリケーションをサポートする統合開発環境 (IDE) であればどれでも使用できますが、このチュートリアルでは Visual Studio Code を使用します。
- Node.js。
- Visual Studio Code、または別のコード エディター。
Node.js プロジェクトの作成
コンピューター内の任意の場所に、ノード アプリケーションをホストするフォルダー (ciam-sign-in-node-express-web-app など) を作成します。
ターミナルで、ディレクトリを Node Web アプリ フォルダー (
cd ciam-sign-in-node-express-web-app
など) に変更し、次のコマンドを実行して新しい Node.js プロジェクトを作成します。npm init -y
init -y
コマンドは、Node.js プロジェクト用に既定の package.json ファイルを作成します。追加のフォルダーとファイルを作成して、次のプロジェクト構造を完成させます。
ciam-sign-in-node-express-web-app/ ├── server.js └── app.js └── authConfig.js └── package.json └── .env └── auth/ └── AuthProvider.js └── controller/ └── authController.js └── routes/ └── auth.js └── index.js └── users.js └── views/ └── layouts.hbs └── error.hbs └── id.hbs └── index.hbs └── public/stylesheets/ └── style.css
アプリの依存関係をインストールする
必要な ID と Node.js 関連の npm パッケージをインストールするには、ターミナルで次のコマンドを実行します。
npm install express dotenv hbs express-session axios cookie-parser http-errors morgan @azure/msal-node
アプリ UI コンポーネントをビルドする
コード エディターで routes/index.js ファイルを開き、次のコードを追加します。
<h1>{{title}}</h1> {{#if isAuthenticated }} <p>Hi {{username}}!</p> <a href="/users/id">View ID token claims</a> <br> <a href="/auth/signout">Sign out</a> {{else}} <p>Welcome to {{title}}</p> <a href="/auth/signin">Sign in</a> {{/if}}
このビューでは、ユーザーが認証されている場合は、ユーザー名と
/auth/signout
および/users/id
エンドポイントにアクセスするためのリンク表示されます。それ以外の場合は、ユーザーは/auth/signin
エンドポイントにアクセスしてサインインする必要があります。 これらのエンドポイント用の高速ルートは、この記事の後半で定義します。コード エディターで views/id.hbs ファイルを開き、次のコードを追加します。
<h1>Azure AD for customers</h1> <h3>ID Token</h3> <table> <tbody> {{#each idTokenClaims}} <tr> <td>{{@key}}</td> <td>{{this}}</td> </tr> {{/each}} </tbody> </table> <a href="/">Go back</a>
このビューを使用して、ユーザーが正常にサインインした後に Microsoft Entra External ID からこのアプリに返される ID トークン クレームを表示します。
コード エディターで views/error.hbs ファイルを開き、次のコードを追加します。
<h1>{{message}}</h1> <h2>{{error.status}}</h2> <pre>{{error.stack}}</pre>
このビューを使用して、アプリの実行時に発生するエラーを表示します。
コード エディターで views/layout.hbs ファイルを開き、次のコードを追加します。
<!DOCTYPE html> <html> <head> <title>{{title}}</title> <link rel='stylesheet' href='/stylesheets/style.css' /> </head> <body> {{{content}}} </body> </html>
layout.hbs
ファイルはレイアウト ファイル内にあります。 これには、アプリケーション ビュー全体で必要な HTML コードが含まれています。コード エディターで public/stylesheets/style.css ファイルを開き、次のコードを追加します。
body { padding: 50px; font: 14px "Lucida Grande", Helvetica, Arial, sans-serif; } a { color: #00B7FF; }