クライアントをOAuth風の方法で承認するにはどうすればよいですか?
-
24-10-2019 - |
質問
2つのサーバー(サーバーと認証器)があり、クライアントがいるとしましょう。ここでの私の最終目標は、サーバー上のクライアントを識別できることです。私の解決策は、Oauthのようなトークン/秘密のシステムを思いつくことでした。クライアントにはトークンと秘密があります。サーバーに渡します。サーバーはそれをAuthenticatorに渡します。有効な場合、サーバーはリクエストを許可します。
明らかに、これはリクエストの数だけではないものです。 AuthenticatorとServerが分離されている理由は、これが分散型サービスのためであるためです - 任意の数のサーバーを使用することができ、クライアントライブラリに各サーバーに登録するように依頼することは実用的ではありません。
それで、疑問が残っています、これを行うための最良の/正しい方法は何ですか?目標は、分散型のシステムを作成することですが、クライアントにサーバーに対して比較的安全な方法で自分自身を識別することができます。
解決 2
解決策は、私の問題をもう少し良く定義することでした。アプリケーションをブロックする方法を作成しようとしているため、サーバーを要求するときに名前とキーを保存するだけです。その後、それらがブロックされておらず、キーがデータストアのものと一致する限り、それらが識別されます。だから私は識別ほど認証しようとはしていません。入力をありがとう!
他のヒント
免責事項:私はセキュリティの専門家ではないので、ここでは外れている可能性があります。実際の実装では、解決する必要がある多くのセキュリティ問題があるようです。
最も広い意味では、クライアントに認証者に資格情報を提供してから、検証すると、クライアントとサーバーにセキュリティトークンの一致し、クライアントとサーバーの両方が直接通信できますか?
OAuthを実装して独自のOAuthサーバーを実行したくない理由があることに興味があります。
追加の参照: http://groups.google.com/group/37signals-api/msg/aeb0c8bf67a224cc