私はファーストパーティのモバイルアプリとシングルページのウェブアプリの両方を持つプロジェクトを行っています。私はOAuth 2を認証に使用したいと思っていますが、これらのパブリックファーストパーティクライアントがクライアント資格情報を保護できないことを考慮して、この許可タイプを使用することをお勧めします。OAuth 2ファーストパーティのモバイルアプリとシングルページアプリのパスワード
理想的には私は認可コードグラントタイプの認証のために別のWebページへの外部ブラウザやWebアプリケーションのユーザーにモバイルユーザーをプッシュする必要はありません。
これらのクライアントタイプでパスワード許可タイプの作業を行うことはできますか、またはファーストパーティアプリケーションのOAuthの代替方法を検討する必要がありますか?
これは基本的に問題をシフトしていませんか?クライアントシークレットを提供する理由は、信頼できるクライアントだけがユーザー名/パスワードを処理できるようにするためです。プロキシをお持ちの場合、信頼されていないクライアントはプロキシにユーザー名/パスワードを投稿するだけでクライアント秘密の有用性を否定できます。 – user1569339
このようなapisは認証されたユーザーに限定してアクセスすることは珍しいことではありません。あなたは、ユーザーがAPIにアクセスできる必要があることを知っています。 OAuth2保護されたAPIへの認証されていないアクセスを許可することを提案していません。私はフロントエンドにあなたのクライアントの秘密を公開してはならないと言っています –
私はあなたが誤解していると思います。私は、認証要求を出しているクライアントの検証について話しています。クライアントのシークレットがパスワード許可に推奨されるのは、信頼できるクライアントだけがそのクライアントを使用できるようにするためです。これにより、サードパーティのクライアントがパスワードを要求して代理人に送信し、認証コードなどのOAuthの許可を迂回することを回避できるケースが最小限に抑えられます。クライアントの秘密を必要としないプロキシがある場合、信頼されていない第三者のクライアントがユーザーのパスワードを使用してアクセストークンを取得することを阻止するものはありません。 – user1569339