タグ付けされた質問 「client-certificates」

8
Java HTTPSクライアント証明書認証
HTTPS/SSL/TLS証明書を使用して認証するときに、クライアントが正確に何を提示することになっているのか、私はかなり新しく、少し混乱しています。 POST特定のデータに対して単純なデータを実行する必要があるJavaクライアントを作成していますURL。その部分は正常に動作しますが、唯一の問題は、それを介して行われることになっていますHTTPS。このHTTPS部分は(HTTPclientJavaの組み込みHTTPSサポートを使用して、または使用して)かなり簡単に処理できますが、クライアント証明書による認証に行き詰まっています。私はすでに非常によく似た質問がここにあることに気づきました。これはまだ私のコードで試していません(すぐにそうなるでしょう)。私の現在の問題は、私が何をしても、Javaクライアントが証明書を送信しないことです(これをPCAPダンプで確認できます)。 証明書で認証するときにクライアントがサーバーに提示するものを正確に知りたいのですが(特にJavaの場合-それが重要な場合)。これはJKSファイルPKCS#12ですか、それとも?それらにあるはずのもの; クライアント証明書だけですか、それとも鍵ですか?もしそうなら、どのキー?さまざまな種類のファイル、証明書の種類などについては、かなりの混乱があります。 私が初めての前に言ったHTTPS/SSL/TLSように、いくつかの背景情報にも感謝します(エッセイである必要はありません。良い記事へのリンクを用意します)。

9
RESTful Webサービス-他のサービスからのリクエストを認証する方法は?
ユーザーだけでなく他のWebサービスやアプリケーションからもアクセスする必要があるRESTful Webサービスを設計しています。すべての着信要求は認証される必要があります。すべての通信はHTTPSを介して行われます。ユーザー認証は、サービスが提供する/ sessionリソースに(SSL接続を介して)ユーザー名とパスワードをPOSTすることで取得した認証トークンに基づいて機能します。 Webサービスクライアントの場合、クライアントサービスの背後にエンドユーザーは存在しません。要求は、スケジュールされたタスク、イベント、またはその他のコンピューター操作によって開始されます。接続サービスのリストは事前にわかっています(明らかに、私は推測します)。他の(ウェブ)サービスからのこれらのリクエストをどのように認証すればよいですか?認証プロセスは、これらのサービスに実装するためにできるだけ簡単にしたいが、セキュリティを犠牲にしてはいけない。このようなシナリオの標準およびベストプラクティスは何ですか? 私が考えることができる(または私に提案された)オプション: クライアントサービスに「偽の」ユーザー名とパスワードの使用を依頼し、ユーザーと同じ方法でそれらを認証します。私はこのオプションが好きではありません-それはちょうど気分が悪いだけです。 クライアントサービスに永続的なアプリケーションIDを割り当てます。アプリケーションキーも割り当てる可能性があります。私が理解している限り、これはユーザー名とパスワードを持つことと同じです。このIDとキーを使用して、各要求を認証するか、認証トークンを作成して、それ以降の要求を認証できます。どちらにしても、このオプションは好きではありません。アプリケーションIDとキーを入手できる人はだれでもクライアントになりすますことができるからです。 前のオプションにIPアドレスチェックを追加できました。これにより、偽のリクエストを実行することが難しくなります。 クライアント証明書。独自の認証局をセットアップし、ルート証明書を作成し、クライアントサービスのクライアント証明書を作成します。ただし、2つの問題が頭に浮かびます。a)ユーザーが証明書なしで認証できるようにするにはどうすればよいですか。b)クライアントサービスの観点からこのシナリオを実装するのはどのくらい複雑ですか。 何か他のもの-そこに他の解決策があるに違いない? 私のサービスはJavaで実行されますが、具体的なフレームワークについての情報は意図的に省略しました。これは、実装の詳細ではなく、基本原則に関心があるためです-これに対する最善の解決策は基礎となるフレームワークに関係なく実装することが可能です。ただし、私はこのテーマに少し慣れていないため、実際の実装に関する具体的なヒントや例(有用なサードパーティのライブラリ、記事など)も高く評価されます。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.