OAuth がうまく適合するかどうかわからない設計を検討していますが、これは基本的な問題です。
さまざまなレベルのセキュリティを必要とする企業の Web サービスがあります。
- ユーザーの成績を確認する - ユーザー名とパスワードが必要です
- ユーザーのグレードを変更 - ユーザー名/パスワード/RSA トークン番号が必要
したがって、アプリケーションが(1)を実行したい場合、資格情報を要求しますが、ユーザーがアクセスしようとしているサービスをOAuthサーバーに通知し、正しいフィールドが次のように表示されるようにしたいと思います.これが最初のログインです。
2 回目は、アプリケーション (ブラウザーまたはアプリ) にトークンがありますが、そのトークンは十分ではありませんが、セキュリティ要件はセキュリティ担当者の決定に基づいて変更される可能性があるため、アプリケーションはこれを認識すべきではありません。適切です。
そのため、(2) に到達するためにトークンが提示されると、それでは不十分であると判断され、エラーが返されるため、アプリケーションは新しいトークンの取得を試みることができます。
私はまだこれを実装していませんが、基本的な設計として、OAuth が私がやりたいことに適しているかどうか、または独自の認証システムを作成する方がよいかどうかはわかりません。
最初は、Web サービスのクライアントはモバイル Web アプリになりますが、ネイティブの電話アプリを作成するときに同じシステムを使用できるように、十分な柔軟性を持たせたいと考えています。したがって、問題のあるセキュリティをアプリケーションに認識させる必要があり、毎回資格情報を Web サービスに渡すのは満足できないので、使用できる暗号化されたトークンが必要であり、要件を満たしている場合(2) の場合、同じトークンで (1) に入ることができます。
では、OAuth はこれに適しているでしょうか?
これに基づいて、OAuth には認証の側面があるようです ( https://developers.google.com/accounts/docs/OAuth2InstalledApp )。
更新: - これには Open Connect ( http://openid.net/connect/ ) の方が OAuth よりも優れているようですが、現在 Open Connect について学んでいます。