演習 - 認証プロバイダーとアクセスを構成する

完了

あなたのショッピング リスト Web アプリでは、一部のルートへのアクセスをセキュリティで保護し、特定の認証プロバイダーを無効にする必要があります。 この演習では、Web アプリのルーティング構成を更新して、その結果を実現します。

この演習では、次の手順を行います。

  1. ルーティング構成に規則を追加して、一部の認証プロバイダーを無効にします。
  2. 認証されたユーザーだけがアクセスできるように、製品リストをセキュリティで保護します。
  3. 更新されたアプリをデプロイします。
  4. 制限が有効であることをテストします。

認証プロバイダーを無効にする

アプリのルーティング構成を更新して、Microsoft Entra 認証プロバイダーを無効にします。

  1. Visual Studio Code でプロジェクトを開きます。

  2. 次のファイルを開きます。

    angular-app/staticwebapp.config.json
    
    react-app/staticwebapp.config.json
    
    svelte-app/staticwebapp.config.json
    
    vue-app/staticwebapp.config.json
    
  3. JSON オブジェクトのルートに、次のルーティング構成を追加します。

    "routes": [
      {
        "route": "/.auth/login/aad",
        "statusCode": 404
      }
    ]
    

    次のルーティング規則を追加して、ユーザーが Microsoft Entra 認証プロバイダーにアクセスできないようにします。

製品リストへのアクセスをセキュリティで保護する

次に、認証されたものだけが API にアクセスできるように、製品リストをセキュリティで保護する必要があります。 そのために、staticwebapp.config.json 構成ファイル内に別のルーティング規則を追加します。

  1. この規則をroutes 配列上部に追加します。

    {
      "route": "/api/products/*",
      "allowedRoles": ["authenticated"]
    },
    
  2. 完成した staticwebapp.config.json は次のようになります。

    {
      "routes": [
        {
          "route": "/api/products/*",
          "allowedRoles": ["authenticated"]
        },
        {
          "route": "/.auth/login/aad",
          "statusCode": 404
        }
      ],
      "navigationFallback": {
        "rewrite": "/index.html",
        "exclude": ["*.{css,scss,js,png,gif,ico,jpg,svg}"]
      }
    }
    

変更をデプロイする

この構成の結果をテストする前に、アプリを再デプロイします。

  1. Visual Studio Code で、 F1 キーを押してコマンド パレットを開きます。

  2. Git: Commit All」と入力して選択します。

  3. コミット メッセージとして「 Secure access 」と入力し、 Enter キーを押します。

  4. F1 キーを押してコマンド パレットを開きます。

  5. Enter キーを押して [ Git: Push] を選択し、 Enter キーを押します。

変更をプッシュしたら、ビルドおよびデプロイ プロセスが実行されるまで待ちます。 その後、デプロイされたアプリ上に変更が表示されます。

新しい制限をテストする

アプリを再デプロイしたら、新しい制限が有効であることをテストできます。

  1. Visual Studio Code エクスプローラー ウィンドウで、[ Static Web Apps ] セクションに戻り、[ my-static-web-app-and-authn] を右クリックし、[サイトの 参照 ] を選択してブラウザーにアプリを表示します。

  2. ログインしていない場合は、製品リストの代わりに 未承認 のメッセージが表示されます。

  3. ログインするには、認証プロバイダーの一覧で Microsoft Entra ID を 選択します。

    次のような 404 エラー ページが表示されます。

    静的 Web Apps 404 エラー ページを示すスクリーンショット。

  4. ブラウザーの戻るボタンを使用して、アプリに戻ります。

  5. ログインするには、認証プロバイダーの一覧で GitHub を選択します。

  6. プロンプトが表示されたら、GitHub の資格情報を入力し、Azure の同意 ページで [同意の付与] を選択します。

ログインすると、製品リストが表示されます。

次のステップ

おめでとうございます。 これで静的 Web アプリ内に認証ワークフロー全体が実装されました。