2

Railsで記述されたアプリケーションがありますが、クライアントである政府による制限のため、IISサーバーの背後で実行する必要があります。SSL認証が必要です。したがって、Googleを検索している時間の中で私が理解できないのは、IISにクライアント証明書をRailsサーバーに渡す方法です(薄い)。

以下を使用するApacheのチュートリアルを見てきました。

SSLOptions +ExportCertData

次に、リクエストオブジェクトで使用できるようにします。同じことを行うようにIISを構成する方法に関するアイデアはありますか?

4

3 に答える 3

0

言われた後、これは不可能かもしれません。私はついにそれを理解しました!これが私が取ったステップです。

  1. OpenSSLを使用して、独自のCA証明書を作成します。
  2. 生成されたCA証明書を使用して、OpenSSLで他の証明書を作成して署名します。
  3. Internet Information Service Managerを開き、サーバーをクリックしてから、サーバー証明書をクリックします。サーバー証明書
  4. [アクション]列の下の[インポート]をクリックします
  5. インポートした後、あなたのサイトをクリックしてください。
  6. [アクション]列で、[バインディング...]をクリックします。
  7. [追加]をクリックし、[https]までスクロールして、インポートしたCA証明書を選択します
  8. サイトをもう一度クリックしてメニューに移動し、SSL設定をクリックします
  9. [SSLが必要]をオンにしてから、無線ボタンをクリックします。
  10. サイトをもう一度クリックしてから、構成エディターをクリックします(IIS 7.5にインストールされている場合は7.0でアドインを使用できます) 構成エディター
  11. system.webServer / security / authentication/iisClientCertificateMappingAuthenticationに移動します
  12. 有効をtrueに設定
  13. manyToOneCertificateMappingsをtrueに設定します
  14. manyToOneMappingsの右端にある...ボックスをクリックします構成エディター
  15. [アクション]列の[コレクション]の下にある[追加]をクリックします
  16. 作成したユーザーのユーザー名とパスワードを追加します(ローカルマシン上にある可能性があります)ボックス
  17. 次に、メインサーバーに移動して再起動します。
  18. request.headersハッシュを使用して証明書を表示できるはずです。

ハッシュの変数は次のとおりです。

  • CERT_SERIALNUMBER
  • CERT_SUBJECT
  • CERT_ISSUER
  • HTTPS_SERVER_ISSUER
  • HTTPS_SERVER_SUBJECT

何かが見つからない場合は、モジュールをインストールする必要があります(認証など)。どれをインストールしたか覚えていません。

于 2012-12-14T17:53:48.873 に答える
0

少なくとも、質問をする方法では、クライアント証明書はサードパーティによって発行されるため、IISはクライアント証明書を提供できません。したがって、アプリケーションのx509証明書を取得する必要があります。その後、証明書はiisとの最初の接続要求の一部として認証されます。

サーバーからクライアントにssl証明書を提供するapache関数に関しては、この機能はiisによって公開されていません。

それがあなたがグーグルで何も見つけることができなかった理由です

于 2012-11-30T00:58:42.593 に答える
0

企業がIISサーバーの背後でRails(またはその他)アプリケーションを実行することを望む主な理由は、リソースの保護とは別にSSOのためです。

これが役立つかどうかを確認してください。

かなりの数の顧客の場所で、IISの背後でRailsアプリを実行しています。RailsアプリはTomcat内のJRubyで実行します。

JKISAPIリダイレクタプラグインをインストールする手順は次のとおりです

http://tomcat.apache.org/connectors-doc/webserver_howto/iis.html

すべてのRailsコンテキストは、標準のIIS認証スキームである統合Windows認証(ネゴシエート、NTLM)を使用してIISで保護されます。

Railsアプリ内で、ログインしたユーザーの情報を取得できます。

request.env['java.servlet_request'].get_remote_user

RailsアプリはMicrosoftADにも接続して、電子メールや部門などの追加のユーザー情報を取得します。

Railsは認証のためにIISサーバーを盲目的に信頼しているため、直接アクセスできないようにする必要があります。

1. Disable HTTP ports in Tomcat
2. Enable only the AJP port
3. Add an IP restriction so that it accepts connection only from the IIS server(s)

==IISが証明書の詳細を渡すことは不可能だと思います。Kerborosトークン(kerboros認証委任用)を抽出しようとしましたが、あまり成功しませんでしたが、それが不可能であることに気付きました。

于 2012-12-03T11:48:39.843 に答える