RESTクライアントがブラウザ以外の非インタラクティブなアプリケーションを作成するAPIの場合、OAuth2が従うべき認証メカニズムである場合、クライアント認証情報付与タイプを認証これは正しい選択でしょうか。そうであれば、HTTPベーシック/ダイジェストや証明書ベースの相互認証など、他の認証メカニズムよりもどのように優れていますか?
OAuth はauthorizationプロトコルであり、-authenticationプロトコルではありません。その役割は、誰が回線の反対側にいるかを伝えることではなく、その人が何ができるかを伝えることです。たまたまOAuthが認証システムにabusedになる可能性があります。これは OpenID Connect と呼ばれます。アイデアは、あなたにauthorization情報を提供するために(クライアントはこれを行うことが許可されているか、それともそれですか?)、OAuthサーバーは最初にクライアントのIDを確認する必要があるということです(私たちは誰について話しているのですか?); OpenID Connectは、内部認証プロトコルを再利用することを目的としています(「OAuthサーバーがアクセスを許可した場合、特に、OAuthサーバーがクライアントを認証し、使用されているプロトコルを信頼しています。 OAuthサーバー、それが何であれ」)。
OAuthサーバーがクライアントを認証する方法を信頼していない場合は、パスワードやクライアント証明書などの他の認証方法を使用できます。その場合、サーバーが認証を行い、thenがOAuthサーバーと通信します。「ボブはオンラインです。彼は何ができるのですか?」.
次に、質問は次のようになります。OAuthサーバーの認証レイヤーは、状況に適していますか?これはあなた次第です。認証を自分で行う場合は、さまざまな特性を持ついくつかの方法があります。どちらが最適かは、状況によって異なります。一般的な方法でできるのはほんの少しの発言だけです: