問題タブ [spnego]
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.
spring - Windows 環境での Spring Security シングル サインオン
技術的なブラック ホールに陥ったような気がします。多くの質問があり、(最近の) 回答はあまり多くありません。
簡単な要約:
ドメイン コントローラーと Active Directory の実装で動作する Windows 環境があります (まもなく Quest の認証サービスで動作します)。この環境にデプロイしたい一連の Spring ベースの Web アプリケーションがあり、ドメイン資格情報を使用してシングル サインオンでシームレスに動作する必要があります。
答えは次のようでした。
http://blog.springsource.org/2009/09/28/spring-security-kerberos/
ただし、ローカル AD 管理者の何人かから、ktpass は安全ではなく (プリンシパルとキーがプレーンテキスト ファイルに保存されている)、時代遅れのソリューションであると知らされました。上記のリンク先のブログが 3 年前のものであることを考えると、議論するのは大変でした。
それから私はこれに出くわしました:
http://forum.springsource.org/showthread.php?134465-JDK-7-0-and-Spnego-Extension-don-t-work !
ちょうど 1 週間ほど前に投稿されましたが、SPNEGO 拡張機能を統合しようとする最近の取り組みでは、JDK 7 との互換性がなく、もはやサポートされていないことが示されているようです!
これは、人々がやりたいと思う一般的なことのようです。Spring のように広く普及しているフレームワークで、これを実現する簡単な方法がないことに驚いています。ドキュメントで見つけられなかった別のアプローチはありますか?
洞察や提案をありがとう。
active-directory - jboss-negotiation-toolkit の「セキュア」テストが機能しない (SPNEGO 認証が失敗する)
数日前に JBoss PicketBox フォーラムに同じ質問を投稿しましたが、まだ返信がありません ( https://community.jboss.org/thread/220959 )。それで、より多くの聴衆にリーチするために StackOverflow を試してみようと思いました。
jboss-negotiation-toolkit を数週間動作させようとしてきましたが、他の人が遭遇したことはすべて試したと思います。私は今、サーブレットの「保護された」バージョンを動作させることができないという点で立ち往生しています。「セキュリティ ドメイン テスト」と「基本ネゴシエーション」テストは正常に動作しますが、安全なリンクを開こうとすると JBoss が引き続き「LoginException」をスローします。AD/Kerberos のセットアップに関係があることは確かですが、それ以上の進展はありませんでした。
誰かが同じ問題に遭遇したことがありますか、または問題がどこにある可能性があるかについて何か提案がありますか? 巨大な投稿で申し訳ありませんが、セットアップの詳細とこれまでの設定方法を以下に示します。可能な限り詳細を提供しようとしています.
セットアップは次のとおりです。
- Windows 2008 AD (QAAD)
- DNS 名: qaad.dev.company.com
- ドメイン: 品質 (QUALITY.COMPANY.COM)
- JBoss AS 7.1.1.Final (BARDEV1) を実行する CentOS 6.2
- デプロイ済み: jboss-negotiation-toolkit-2.2.2.Final
- DNS 名: bardev1.dev.company.com
- テスト クライアントは、QUALITY ドメインに参加している WinXP および Win7 です。
BARDEV1 は現在、品質ドメインに参加しています (これは必要ですか、それともドメインに参加しなくても機能するはずですか? )。
JBoss SPNEGO 構成は次のとおりです。
/etc/krb5.confは次のように設定されています。
QAAD ボックスには、「bardev1」の「コンピューター」アカウントがあります。このアカウントの委任は、「任意のサービスへの委任についてこのコンピューターを信頼する (Kerberos のみ)」に設定されています。keytab は QAAD ボックスで生成され、SPN は次のコマンドで設定されました。
- setspn -S HTTP/bardev1.dev.company.com@QUALITY.COMPANY.COM bardev1
ktpass /out bardev1_qaad_rc4.keytab /princ HTTP/bardev1.dev.company.com@QUALITY.COMPANY.COM /mapuser quality\administrator -crypto RC4-HMAC-NT -ptype KRB5_NT_PRINCIPAL /pass * /kvno 0
- (注: /kvno 0 を設定する必要があったため、それ以外の場合: KrbException: 指定されたバージョンのキーが利用できません (44))
setspn -L bardev1
- 出力: CN=bardev1、CN=Computers、DC=quality、DC=company、DC=com の登録済み ServicePrincipalNames: HTTP/bardev1.dev.company.com@QUALITY.COMPANY.COM HOST/bardev1.dev.company.com HOST /BARDEV1
- setspn -L 管理者
- 出力: CN=Administrator、CN=Users、DC=quality、DC=company、DC=com の登録済み ServicePrincipalNames: HTTP/bardev1.dev.company.com
最初のテストには「管理者」アカウントを使用したので、新しいユーザー アカウントを扱う必要はありません。そのアカウントには、委任が「任意のサービスへの委任についてこのコンピューターを信頼する (Kerberos のみ)」に設定されており、「kerberos DES 暗号化を使用...」、「アカウントは AES 128/256 をサポートしています...」などの他のアカウント オプションは設定されていません。 「kerberos preauth を必要としません」。それらのいずれかが必要ですか?
クライアント マシンから、ブラウザーがログイン ユーザーの資格情報を使用できるようにするには、URL を次のように設定する必要があります。
- http:// bardev1:8080/jboss-negotiation-toolkit-2.2.2.Final
私がそれを置くと:
- http:// bardev1.dev.company.com:8080/jboss-negotiation-toolkit-2.2.2.Final
次に、ユーザー名とパスワードのポップアップが表示されます。
'HTTP/bardev1@QUALITY.COMPANY.COM' で setspn と ktpass を実行しようとしましたが、結果は同じでした。つまり、基本テストとドメイン テストは機能しますが、セキュリティで保護されたテストは機能しません。
「SecurityDomainTest」からの出力:
JBoss ログ:
ブラウザ:
「基本的なネゴシエーション」からの出力:
JBoss ログ:
ブラウザ:
「セキュア」からの出力:
JBoss ログ:
ブラウザ:
実行された追加のテスト/セットアップ
また、QAAD Windows サーバー自体で jboss インスタンスを実行しようとし、setspn および ktpass コマンドを更新しましたが、同じ結果で、'secured' テストは LoginException で失敗します。
また、別の AD サーバー (Windows 2003 AD サーバーで実行されている COLLAB) を使用しようとしましたが、同じ結果になりました。
したがって、セットアップ/構成/環境の問題であると確信していますが、その根底にたどり着くことができないようです。
tomcat - Tomcat が spnego を使用した認証に失敗し、「デフォルト レルムが見つかりません」
http://spnego.sourceforge.net/spnego_tomcat.htmlチュートリアルを使用して、Tomcat を設定して spnego を使用しようとしています。
Hello_KDC.java が動作し、認証できました。また、間違ったパスワードを使用するとエラー例外が発生するため、機能しています。
しかし、Tomcat でそのチュートリアルを使用しようとすると、壊れてしまいます。Tomcat ROOT/index.jsp が空白になり、監視すると 404 が返されます。log\host-manager.2013-02-22.log には次の内容があります。
これは、ブラウザからページが読み込まれる前に、Tomcat の起動時に発生します。ページを読み込もうとすると、ログが追加されません。
krb5.conf で、ホスト名と IP の両方を試しましたが、同じエラーが発生しました。krb5.conf と login.conf が配置されています。これらを削除すると、次のログが取得されるためです。
何が起こっているのでしょうか?
c++ - libcurl プログラムでネゴシエート認証が機能しない
私は現在、Tomcat サーバーの背後にある保護libcurl(version 7.19.6 built with SPNEGO and GSS-Negotiate support)
された Web ページ (保護) に接続するクライアント (C++/C) を作成するために使用しています。Kerberos
コマンドラインの使用:-
これは機能します(サーバーはHTTP 401を無許可で返し、SPNEGO
トークンを渡して処理できるようにし、保護されたページにアクセスできるようにします)。
ただし、次のコードを記述して試してみると:-
ページに対応する初期接続 (エラー 302) が一時的に移動された後、サーバーから応答が返されます。
誰もがこれがどのように起こるか知っていますか.
情報用のその他の構成 ( KDC = Windows Active Directory in Windows server 2008
)、
curl version(7.19.6)
と
わかりました、wireshark でもう少し調査したところ、最初の要求の間に次の違いがあることがわかりました:-
コマンド ライン 1 (つまり、成功したもの) の場合:-
クライアントコード(私が書いて失敗したもの)の場合:-
これは、ユーザー エージェントがプログラムに渡されないことを意味します。私はまだそれを調べており、いくつかの情報をいただければ幸いです
2番目の編集:-両方の詳細な出力について観察しました:-
コマンドライン版(動作版)の場合 -
そして、動作していないもの(私が書いたクライアントコード)の場合:-
これらは両方とも、それぞれの .exe ファイルの出力の最初の数行です。今、私は2つのことに気づきました。失敗したものは、デフォルトで Basic になります。2 つ (これはもっと気がかりです)、Useragent 行に矢印 (>) がなく、失敗した行にホスト行があります。これは、ユーザーエージェントが送信されないことを意味しますか?
jersey - Jersey クライアントでの SPNEGO クレデンシャルの設定
認証に SPENGO を使用する Jersey を使用して作成された REST サービスがいくつかあります。Jersey クライアントを使用して受け入れテストを作成しています。Jersey クライアントを使用して SPENGO ヘッダーを設定する方法を知りたいです。フィルターを調べましたが、よくわかりません。誰かがコード例を提供できれば、それは大歓迎です。
tomcat - CAS の導入時に spnego 認証が機能しなくなる
私は tomcat-manager アプレットが SPNEGO で認証する動作中の tomcat インスタンスを持っています。SPNEGO を使用するように構成された CAS を展開すると、次のようになります。
- 展開直後、マネージャ アプレットと CAS の両方が期待どおりに動作する
- Tomcat の再起動後、いずれも機能せず、両方とも例外をスローします (以下を参照)。
- CAS をアンデプロイしても、Tomcat が再起動するまでマネージャー アプレットは機能しません。
アプリケーションが他のアプリケーションの動作を変更するべきではないと想定しているため、認証に CAS を使用することは任意です。これが true の場合、この動作はエラーになります。そうでない場合は、CAS がアプリケーションの認証を置き換える必要があると思いますが、その場合でもエラーになります。ただし、CAS/Tomcat がどのように機能するかについての重要な情報を見逃していると思います。要するに、報告すべきエラーか、CAS/Tomcat がどのように機能するか (どこで?) についてもっと学ぶべきか?
マネージャ アプレットにログインしようとしたときの例外:
CAS と同じ: