RESTの考え方の大部分は、APIを設計するときに、HTTPプロトコルの標準機能をできるだけ多く活用することです。その哲学を認証に適用すると、クライアントとサーバーはAPIの標準HTTP認証機能を利用することになります。
ログイン画面は人間のユーザーの使用例に最適です。ログイン画面にアクセスし、ユーザー/パスワードを提供し、Cookieを設定し、クライアントは今後のすべてのリクエストでそのCookieを提供します。Webブラウザを使用する人間は、個々のHTTPリクエストでユーザーIDとパスワードを提供することはできません。
ただし、REST APIの場合、各リクエストには人間のユーザーに影響を与えることなく資格情報を含めることができるため、ログイン画面とセッションCookieは厳密には必要ありません。また、クライアントがいつでも協力しない場合は、401「無許可」の応答が返されます。 RFC 2617は、HTTPでの認証サポートについて説明しています。
TLS(HTTPS)もオプションであり、相手の公開鍵を検証することにより、すべての要求でサーバー(およびその逆)に対するクライアントの認証を可能にします。さらに、これはボーナスのためにチャンネルを確保します。もちろん、これを行うには、通信の前にキーペアを交換する必要があります。(これは、具体的にはTLSを使用したユーザーの識別/認証に関するものです。公開鍵でユーザーを識別しなくても、TLS / Diffie-Hellmanを使用してチャネルを保護することは常に良い考えです。)
例:OAuthトークンが完全なログイン認証情報であるとします。クライアントがOAuthトークンを取得すると、要求ごとに標準のHTTP認証でユーザーIDとして提供できます。サーバーは、最初の使用時にトークンを検証し、各リクエストで更新される存続可能時間を使用してチェックの結果をキャッシュすることができます。認証が必要なリクエストは401、提供されないと返されます。