問題タブ [cac]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
windows - Windows IIS 7.5 では、表示されているすべての認証設定で基本認証が無効になっている場合でも、基本認証を有効にできますか?
私の基本的な質問
COTS ソフトウェアのアップグレード後、Microsoft IIS 7.5 Web サーバーは、構成した CAC スマートカード クライアント認証ではなく、予期せず基本認証 (ユーザー名とパスワード フィールドを含むポップアップ ダイアログ ボックス) を要求し始めます。ただし、私たちが知っているすべての標準的な場所を見ると、基本認証は有効になっていません。動作中の開発サーバーと同じです。基本認証を有効にし、設定された認証スキームをオーバーライドできる場所や方法は他にありますか?
詳細
Windows 2008 Server - 米国政府が
IIS 7.5
COTS を STIGed = Serena Business Manager
COTS Web アプリケーション、Serena Business Manager を実行しています。これは、認証 (クライアント認証) のためにエンド ユーザーから CAC SmartCard を要求するようにセットアップしました。各ユーザーは、SmartCard リーダーと関連するリーダー ソフトウェアを各自のワークステーションにインストールしています。これは何年もうまく機能しています。
昨日、本番 COTS アプリケーションをバージョン 10.1.4.1 から 10.1.5.2 にアップグレードしようとしました。アップグレードの完了後にテスト ユーザーがログインを試みると、「Authentication Required」というタイトルの予期しないポップアップ ダイアログ ボックスが表示され、ユーザー名とパスワードを要求されます。これは、サーバーが CAC SmartCard とその PIN を要求する前に発生します。
Google Chrome ブラウザの Developer Tools Network タブを使用すると、サーバーのリクエスト ヘッダーに
WWW-Authenticate: Basic realm="TeamTrack"
. TeamTrack は、COTS 製品の元の名前です。これにより、ポップアップ認証ダイアログは、「基本」認証を要求している Microsoft IIS Web サーバーであると思われます。
Web および関連するデータベースのアップグレードの変更をロールバックする必要がありました。
開発サーバーでは、以前にこの COTS アップグレードを正常に実行しました。ユーザー名/パスワード認証リクエストなし。CAC SmartCard クライアント認証は正しく機能します。
開発サーバーまたはテスト サーバーをアップグレードしたときに、これと同じエラーが発生しなかったのはなぜですか? 残念ながら、私たちの開発およびテスト VM は、政府がホストおよび管理する運用 VM とは別のホスティング施設にあります。ステージング VM を本番環境に複製/複製することは許可されていないため、本番環境の VM は完全には一致しません。できる限り構成を一致させようとします。
製品のアップグレード プロセス中に、認証設定を見つけることができる場所をできるだけ多く探しました。各設定は開発サーバーと一致することがわかりました。
開発サーバーでは、次のように、匿名認証を無効にして基本認証を有効にすることで、ポップアップ ユーザー名/パスワード ダイアログ ボックスの動作を再作成できます
。 1. IIS マネージャーを開き、認証するレベルに移動します。
2. [機能名] リストで、[認証] をダブルクリックします。
3. [認証] ページで、[匿名認証] を選択します。
4. [操作] ウィンドウで、[無効にする] をクリックして匿名認証を無効にします。
5. [認証] ページで、[基本認証] を選択します。
6. [操作] ウィンドウで、[有効にする] をクリックして、既定の設定で基本認証を使用します。
リスト内の他のすべての認証スキームは無効になっています。
成功した設定
CAC SmartCard 認証を成功させるための設定:
A. IIS マネージャー > SSL 設定: SSL が必要 がチェックされています。クライアント証明書で、[必須] ラジオ ボタンが選択されています。(これらは両方とも、CAC スマート カードが要求されるように設定されています)
B. IIS マネージャー > 認証: 匿名認証が有効になり、他のすべてのスキームが無効になります。
C. COTS ソフトウェアの「bin」ディレクトリの Web.config XML ファイルで、次のように設定されています<authentication mode ="Windows" />
。 D. COTS ソフトウェアの fedsvr-core-config.xml 設定ファイルで、次のように設定されています。
<parameter name="AllowedPrincipalAuthenticationTypes" Type="xsd:string">CLIENT_CERT</parameter>
(ところで、クライアント認証を実現するために、COTS アプリはシングル サインオン ソリューションを採用しています。これは、クライアントが認証される前に、クライアントとサーバー間で複数の要求と応答アクティビティが行われることを意味します。)
COTS メーカーのサポートは、この問題に関して実質的な支援を提供していません。
もう一度私の基本的な質問: 匿名認証および/またはクライアント証明書が必要な認証を上書きするために、基本認証を有効にできる他の Windows または IIS 設定または方法はありますか? または、COTS 製品は、上記の設定リストをそのままにして、認証設定をどのように変更/上書きしますか?
あなたが提供できるあらゆるガイダンスに感謝します。
java - Java Web アプリケーションのスマート カード認証はどこで行われますか?
Java ベースの Web アプリケーションで CAC/Active Directory (AD) 認証がどこで機能するかを特定しようとして、かなり困惑しています。たとえば、複数の Weblogic コンテナでホストされている複数の J2E JSF アプリケーションを考えてみましょう。これらの各アプリケーションは、ユーザーがどの AD ロールに属しているかを確認することで、ユーザーのアクセスを制限します。これらすべてのアプリケーションで CAC/AD 認証が必要な場合、どの段階で CAC/AD 認証を実行しますか?
理想的には、認証を行うアプリケーションとは別のゲートウェイが必要だというのが私の理解でした。単純な例は、F5 ハードウェア/ソフトウェア バンドルです。ユーザーが CAC/PIN の組み合わせで認証されると、Weblogic 上のデプロイされたアプリケーションに転送され、ヘッダーにいくつかの追加情報 (前述の AD ロールなど) が含まれます。プログラム可能なソリューションがないため、それを購入する必要があると言っているのではなく、例として、認証と使用リソースは 2 つの別個のエンティティであり、この問題のために必ずしも組み合わせる必要はありません。
しかし実際には、多くのプロジェクトが Microsoft と Apache のサービスを組み合わせて認証を許可していると読んだことがあります。これは、いくつかの利点を概説する優れたブログ投稿です。ユーザーが IIS に対して認証されると、Apache 上のアプリケーションに転送されます。いずれにせよ、IIS と Weblogic を混在させることは、特に 2 つのノード間の通信を構成しようとする場合は、最初から悪い考えのように思えます。
2012 年より前にさかのぼるスタックと Web に関する多数の投稿もあり、さまざまなソリューションを推奨しています。ある投稿では、次のことを推奨しています。
サーバーがクライアント証明書を検証するときに、受け入れ可能な証明書ポリシーのセットを指定できます
答えは一般的には理にかなっていますが、著者はこのコミュニケーションが行われるためのアーキテクチャの詳細には立ち入りません。他のいくつかの投稿では、前述のゲートウェイ機構のような SSO 機能を実行するためにJOSSOを推奨しています。この投稿では、製造元が提供するドライバーを使用してスマート カードを直接読み取るためにPKCS11を使用する方法についても説明します。Java で DOD 発行の CAC を使用して AD サーバー ユーザーを認証するなど、答えのない質問もあります。
これらの投稿の間隔が平均して 5 年であることを考えると、この問題に対する今日のベスト プラクティスが何であるかはわかりません。ゲートウェイ アプローチは認証を行うための理想的な方法ですか? 私のアイデアはまったく適用できず、より良い解決策はありますか?
java - cac カードに存在する証明書を使用して PDF に署名することは可能ですか?
私はJavaコードを介してアクセスしているcacカードを持っています。証明書を抽出していx509
ますが、この証明書 (または cac カードから抽出できるその他のもの) を使用してpdf
ドキュメントに署名する必要があります。
現在、私はからの名前とエイリアスを使用しており、itext で署名するために使用しx509
ている独自のエイリアスを作成していpfx
ますが、それは正しいアプローチではありません。に署名するには、なんらかの形式の証明書を直接使用する必要がありますpdf
。
私の質問は次のとおりです。
- 出来ますか?
- はいの場合、どのように?
- いいえの場合、代替手段は何ですか?
- スマート カードには pfx が含まれていますか?
ヘルプ!
java - java.security.KeyStoreException: PKCS11 が見つかりません
私の目標は、CAC カードから情報を読み取り、pkcs11
それを使用して情報を抽出し、文書に署名することです。ハードウェアに適した dll が見つからなかったので、openSC
自分のマシンにインストールしてopensc-pkcs11.dll
、次のコードで使用しました。
しかし、次の場所でエラーが発生します
エラー スタック トレース:
ヘルプ!
java - CAC カード用の PKCS#11 プロバイダー DLL とは何ですか? どこにありますか?
CAC カードの PKCS#11 プロバイダーを使用したいのですが、DLL の場所がわかりません。私の CAC カードにはソフトウェアが付属しておらず、インターネットで十分な情報を見つけることができません。ここにいる誰かがファイルの名前とどこから入手できるか教えてもらえますか?