We consider the problem of Global Navigation Satellite System (GNSS)-based attitude determination. A GNSS attitude model with nonlinear orthonormality constraints is used to rigorously incorporate the a-priori knowledge of the receiver geometry. Given the characteristics of the employed nonlinear constraints, we formulate GNSS attitude determination as an optimization problem on a Riemannian manifold. We design a Riemannian algorithm to deliver the constrained float attitude matrix solution. Subsequently, the constrained float solution, combined with a proposed decomposition of the objective function, is utilized to enhance the efficiency of the integer ambiguity search. Both simulation and experimental evidences demonstrate the superiority of the proposed method. The results reveal that the proposed method can maintain the high probability of resolving the integer ambiguities correctly while enjoying the low computational complexity compared with the state-of-the-art techniques.