チュートリアル: 認証用の Node.js Web アプリケーションを準備する
「チュートリアル: Node.js Web アプリのチュートリアルでユーザーをサインインできるように顧客テナントを準備する」では、ユーザーをサインインできるように顧客テナントを準備しました。 このチュートリアルでは、Node.js(Express) プロジェクトを作成し、必要なすべてのフォルダーとファイルを編成します。 ここで準備したアプリケーションへのサインインを有効にします。 このNode.js(Express) Web アプリケーションのビューでは、Handlebars が使用されます。
このチュートリアルでは、次のことを行います。
- Node.js プロジェクトを作成する
- 依存関係のインストール
- アプリ ビューと UI コンポーネントを追加する
前提条件
Visual Studio Code、または別のコード エディター。
「チュートリアル: Node.js Web アプリのチュートリアルでユーザーをサインインできるように顧客テナントを準備する」の手順が完了しました。
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 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; }