You can just use the constraint $||x||=1$,e.g.
mat = {{3, 2, 1}, {2, 3, 1}, {1, 1, 4}};
var = Table[Symbol["x" <> ToString[j]], {j, 3}];
pol = Expand[var.mat.var]
FullSimplify[Maximize[{var.mat.var, var.var == 1}, var]]
eig = Thread[Normalize /@ #2 -> #1] & @@ Eigensystem[mat]
Show[
Plot3D[pol /. x3 -> Sqrt[1 - x1^2 - x2^2], {x1, -1, 1}, {x2, -1, 1},
Mesh -> None],
Graphics3D[{Red, PointSize[0.04], Point[{1/Sqrt[3], 1/Sqrt[3], 6}],
Green, Point[{-1/Sqrt[2], 1/Sqrt[2], 1}]}]
]

UPDATE
This is really a homage to MichaelE2's excellent answer (which I would give more than 1+ if I could) but serves to illustrate the extremizing effect of the eigenvectors and the symmetrical aspects.
f[u_, v_] :=
pol /. {x1 -> Sin[u] Cos[v], x2 -> Sin[u] Sin[v], x3 -> Cos[u]}
sp[u_, v_] := {Sin[u] Cos[v], Sin[u] Sin[v], Cos[u]}
su[u_, v_] := f[u, v] sp[u, v]
vis[p_, q_] :=
Module[{s =
SphericalPlot3D[1, {u, 0, Pi}, {v, 0, 2 Pi}, Mesh -> None,
PlotStyle -> Opacity[0.3]], ts =
SphericalPlot3D[f[u, v], {u, 0, Pi}, {v, 0, 2 Pi}, Mesh -> None,
PlotStyle -> Opacity[0.3]],
or = {0, 0, 0}, max = {1/Sqrt[3], 1/Sqrt[3], 1/Sqrt[3]},
min = {-(1/Sqrt[2]), 1/Sqrt[2], 0}},
fmx = ({ArcCos[#3], ArcTan[#2/#1]} & @@ max);
fmn = ({ArcCos[#3], ArcTan[#2/#1]} & @@ min);
Row[{Show[s,
Graphics3D[{Red, Thick, Arrow[{{0, 0, 0}, max}],
Arrow[{or, -max}], Green, Arrow[{{0, 0, 0}, min}],
Arrow[{or, -min }], White, Arrow[{or, sp[p, q]}]}],
ImageSize -> {400, 400}, Background -> Black,
PerformanceGoal -> "Quality"],
Show[ts,
Graphics3D[{Red, Thick, Arrow[{or, su @@ fmx }],
Arrow[{or, -su @@ fmx }],
Green, Arrow[{or, su @@ fmn}], Arrow[{or, -su @@ fmn}], White,
Arrow[{or, su[p, q]}]}], ImageSize -> {400, 400},
PlotLabel -> Style[f[p, q], White, Bold], Background -> Black,
PerformanceGoal -> "Quality"]
}]]
Visualizing:
Manipulate[vis[a, b], {a, 0, Pi}, {b, 0, 2 Pi}]

A LITTLE GENERALIZATION
The particular example had positive minimum eiganvalue. To illustrate the extremization a little more generally a scaled exponential argument to allow conceptual demonstration including negative eigenvalues.
matf[m_] := Module[{eig = N@Eigensystem[m], ord},
ord = Ordering[eig[[1]]];
{{eig[[1]][[ord]][[-1]],
Normalize[eig[[2]][[ord]][[-1]]]}, {eig[[1]][[ord]][[1]],
Normalize[eig[[2]][[ord]][[1]]]}}]
fun[u_, v_, ma_] :=
Exp[0.1 #] &@
Module[{poly = {x1, x2, x3}.ma.{x1, x2, x3}},
poly /. {x1 -> Sin[u] Cos[v], x2 -> Sin[u] Sin[v], x3 -> Cos[u]}]
sp[u_, v_] := {Sin[u] Cos[v], Sin[u] Sin[v], Cos[u]}
sun[u_, v_, ma_] := fun[u, v, ma] sp[u, v]
visf[p_, q_, ma_] :=
Module[{s =
SphericalPlot3D[1, {u, 0, Pi}, {v, 0, 2 Pi}, Mesh -> None,
PlotStyle -> Opacity[0.3]], ts =
SphericalPlot3D[fun[u, v, ma], {u, 0, Pi}, {v, 0, 2 Pi},
Mesh -> None, PlotStyle -> Opacity[0.3], PlotRange -> All],
or = {0, 0, 0}, mf = matf[ma], min, max},
max = mf[[1, 2]];
min = mf[[2, 2]];
fmx = ({ArcCos[#3], ArcTan[#2/#1]} & @@ max);
fmn =
If[#1 > 0,
{ArcCos[#3], ArcTan[#2/#1]}, {ArcCos[#3],
Pi + ArcTan[#2/#1]}] & @@ min;
Column[{
Row[{ma // MatrixForm, ", Determinamt:", N@Det[ma], " ",
Framed@TableForm[{Style[#, Red] & /@ mf[[All, 1]], {min, max}},
TableHeadings -> {{"Eigenvalues", "Eigenvectors"}, {"Max",
"Min"}}]}],
Row[{Show[s,
Graphics3D[{Red, Thick, Arrow[{{0, 0, 0}, max}],
Arrow[{or, -max}], Green, Arrow[{{0, 0, 0}, min}],
Arrow[{or, -min }], White, Arrow[{or, sp[p, q]}]}],
ImageSize -> {400, 400}, Background -> Black,
PerformanceGoal -> "Quality"],
Show[ts,
Graphics3D[{Red, Thick, Arrow[{or, sun[##, ma] & @@ fmx }],
Arrow[{or, -sun[##, ma] & @@ fmx }],
Green, Arrow[{or, sun[##, ma] & @@ fmn}],
Arrow[{or, -sun[##, ma] & @@ fmn}], White,
Arrow[{or, sun[p, q, ma]}]}], ImageSize -> {400, 400},
Background -> Black, PerformanceGoal -> "Quality"]}
]}
]]
Animated gif of 25 symmetric matrices:
mtest = (# + Transpose[#])/2 & /@ RandomInteger[{1, 10}, {25, 3, 3}];
anim = Quiet[visf[Pi/2, Pi/3, #]] & /@ mtest;
