問題タブ [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.

0 投票する
2 に答える
3497 参照

java - SPNEGO をクライアントに使用できない場合、BASIC または FORM 認証にフォールバックするにはどうすればよいですか?

SPNEGO最終的に、Windows 2008 R2 に対して AD ドメインで使用するように JBoss AS 7 サーバーを構成しました。私はJava 7を使用しています。

ユーザーがドメイン コンピューター以外の場所からサーバーの URL にアクセスすると (たとえば、携帯電話や広範なインターネットから)、ユーザー名とパスワードの入力を求められ、次のエラーが表示されます。

ユーザーがドメインにログインしたときにその URL にアクセスすると、すべて問題ありません。

SPNEGOセキュリティ ドメイン ( ) で、standalone.xml2 つのログイン モジュールを構成しました。

初め:org.jboss.security.negotiation.spnego.SPNEGOLoginModule

2番:

問題は次のとおりです。どのようにフォールバックできますか、BASICまたはFORMいつSPNEGOスコープ外になりますか?

ありがとう

完全な例外は次のとおりです。

0 投票する
1 に答える
727 参照

java - Java Web - イントラネットでの SSO およびインターネットでの FORM または BASIC

認証用の SSO (シングル サインオン) フレームワークを探しています。

私のシナリオは次のとおりです。

  • JBoss 7 + Debian
  • Windows 2008 Active Directory での SSO
  • イントラネット上での SSO
  • インターネットまたはモバイルの場合は、BASIC または FORM またはその他

これらのニーズのフレームワークを知っている人はいますか?

私は2週間調査しており、次のことがわかりました。

  • JBoss Negotiation + SPNEGO (Kerberos) (NTLM をサポートしていないため、インターネット経由では使用できません)
  • ワッフル: 100% ジャワではありません
  • jCIFS (NTLMv2 のサポートなし)

ありがとう

0 投票する
1 に答える
4254 参照

java - Java/SPNEGO: 不要な SPN 正規化?

現在、SourceForgeのSPNEGO ライブラリを使用して、SPNEGO で保護された Web サービスに Java クライアントを実装しようとしています (サーバーは同じライブラリを使用しています)。正常に認証できません。リクエストは常に次のようになります

これは、不適切なホスト名を使用してブラウザーから Web サービスにアクセスしたときに発生する症状に似ています。実際、Wireshark でのデバッグによって、クライアントが要求で間違った SPN を送信していることが明らかになりました。SPNservice-test.client.comとして登録されているに送信します。およびADNS にレコードがありますが、Windows ドメインに として登録されていますserver-1234.client.corp。リクエストを送信してもhttp://service-test.client.com(一致するHostヘッダーを参照)、Java がチケットをリクエストする SPN は「内部」Windows 名です。

HTTP 要求の Wireshark デコード

Chrome または IE から送信された同じものには、一致するHostヘッダーと SPN があります。

ここに画像の説明を入力

私のコードや SPNEGO ライブラリではこの変換は行われていないので、JRE のどこかで行われているに違いないと推測します。JGSSのソースを調べてみたのですが、ちょっとわかりにくいです。この翻訳をスキップして正しい SPN のチケットを取得する方法を誰か教えてもらえますか?

クライアントコード:

0 投票する
1 に答える
1893 参照

apache - mod_auth_kerb によって送信された "WWW Authenticate : Negotiate" ヘッダーに、別のドメインのブラウザーがまったく応答しないのはなぜですか?

Apache アクティブ ディレクトリ環境で mod_auth_kerb を介して SSO を実装しましたが、期待どおりに動作します。ただし、次の知識が私を悩ませています:

2 台のクライアント マシンから Kerberos で保護されたページを要求しました。1 人のユーザーは Kerberos セットアップ ドメインに属し、もう 1 人のユーザーは他のドメインに属していました。次に、2 台のマシンの HTTP パケットを比較しました。両方のマシンで、Kerberos で保護されたページの要求が送信された後、サーバーは次の HTTP パケットで応答します。

HTTP/1.1 401 Authorization Required Date: Wed, 05 Sep 2012 14:25:20 GMT Server: Apache WWW-Authenticate : ネゴシエート WWW-認証: Basic realm="Kerberos Login" Content-Length: 60 Connection: close Content-Type: text/html; charset=iso-8859-1

ただし、サーバーからの上記の応答の後、Kerberos-setup ドメインに属するクライアント マシンのブラウザーはWWW-Authenticate : Negotiate 'token'で応答しますが、他のクライアント ブラウザー (他のドメインに属するユーザー) はまったく応答しません。 .

私の理解では、他のドメインに属するクライアントも独自の TGT+Session キー トークンで応答する必要があり、Active Directory はこれを拒否する必要がありました。しかし、なぜこのクライアントがサーバーのWWW-Authenticate : Negotiateチャレンジにまったく応答しないのかは、私の論理を超えています。さらにややこしいのは、サーバーの HTTP 応答 (上記) に、リンク先のドメインに関する情報が含まれていないことです。

では、正しいドメインに属するクライアント ブラウザが、サーバーのWWW-Authenticate : Negotiateチャレンジに応答する必要があると判断する根拠と、他のドメインに属するクライアントが応答しないと判断する根拠は何ですか?

注 : 両方のクライアント マシンに Windows 7 があり、アクティブ ディレクトリは Windows 2008 サーバーです。

mod_auth_kerb の SSO の実装を理解しようとしていますが、この特定の知識がその鍵となります。

0 投票する
1 に答える
3085 参照

websphere - Websphere 7 での SPNEGO のログイン メソッドのフォールバック

Websphere 7 で SPNEGO 機能を試しています。クライアントが SPNEGO をサポートしていない場合に備えて、基本認証を許可したいと考えています。

私のweb.xmlには、

Websphereの管理コンソールで、

の下でSecurity -> Global Security -> Web and SIP security -> General settings、私は"Default to basic authentication when certificate authentication for the HTTPS client fails"チェックしました、

の下でSecurity -> Global Security -> Web and SIP security -> SPNEGO Web authentication、「Allow fall back to application authentication mechanism」にチェックを入れました。

クライアントが SPNEGO (IE など) をサポートして Web アプリにアクセスしている場合、問題ないようです。ただし、SPNEGO をサポートしていないクライアント (Firefox など) に切り替えると、単に「このクライアントでは SPNEGO 認証はサポートされていません」というメッセージが表示されます。、基本認証を求めずに。

私が見逃したかもしれないことについて、誰かが私にいくつかのヒントを教えてくれますか? どうもありがとう。

0 投票する
1 に答える
780 参照

glassfish - spnego認証後のglassfishldap認証

Apachemod_proxy_httpとSPNEGOを使用してSSOを正常に実装しました。私のJavaEE6 Webアプリケーションでは、request.getRemoteUser()を使用して認証されたユーザーを取得します。

さて、承認のための最良の方法は何でしょうか。私たちの目標は、LDAPを介したMicrosoftADのユーザーの特定の役割のメンバーシップを確認することです。Glassfish 3.1.2でそれを達成するための最良の方法は何でしょうか?

0 投票する
2 に答える
11242 参照

spring - BadCredentialsException:Kerberos検証が成功しません

SPNEGOで認証を行いたいのですが。私が使う:

  • spring-core-3.1.0.RELEASE.jar
  • spring-security-core-3.1.0.RELEASE.jar
  • spring-security-kerberos-core-1.0.0.M2.jar
  • Spring Core Security 3.0.7のパッケージコーデック(https://jira.springsource.org/browse/SES-98)
  • Tomcat

私の設定ファイルは次のようになります。上記のライブラリで認証しようとすると、次の例外が発生しました。

誰かが同じ問題を抱えてそれを処理しましたか?

構成ファイル(Spring Security kerberosの例から取得):

私が得た例外:

0 投票する
1 に答える
432 参照

java - JGSS および NTLMSSP/NegoEx

認証に SourceforgeのSPNEGO ライブラリを使用する JRE 7u7 で実行されている Web アプリケーションに取り組んでいます。Kerberos が機能している限りはすべて問題ありませんが、Kerberos は複数のドメインとさまざまな干渉ネットワーク デバイスの複雑な環境に展開されているため、常にそうとは限りません。

Windows クライアントがサービス チケットの取得に失敗した場合、提供された 2 つのメカニズム (NTLMSSP と NegoEx) だけを使用して SPNEGO を実行しようとするようです。これらを理解するためにJGSSライブラリを使用する希望はありますか?

Java 6 SPNEGO 実装は Kerberos メカニズムのみをサポートすると何度か述べているのを見ましたが、それが Java 7 にも当てはまるかどうかについての決定的な答えは見つかりませんでした。それができない場合、サードパーティの Java はありますか? Kerberos と (少なくとも) NTLMSSP をサポートする SPNEGO を有効にするコードはありますか?

0 投票する
1 に答える
340 参照

active-directory - サーバーが Kerberos にアクセスする必要があるのはなぜですか?

Active Directory ユーザーをリモート サーバーに対して認証する方法を見つけようとしています。

目標は、SPNEGO を使用して Kerberos チケットを受け取ることです。その後、Kerberos チケットを復号化して、ユーザーの ID を確立できます。

私が理解していないのは、サーバーと Kerberos 間のアクセスが必要な理由です。サービス チケットにはクライアント ID が含まれており、TGS 秘密鍵によって暗号化されているため、サーバーは Kerberos TGS にアクセスする必要はありません。チケットを復号化して、ユーザー ID を知ることができます。なぜそれが必要なのか、誰か説明してもらえますか?

http://www.adopenstatic.com/cs/blogs/ken/archive/2007/01/16/1054.aspx

クライアント ID だけが必要な場合は、ID プロバイダーや WIF などのスキームは必要ないように思えます。

0 投票する
1 に答える
201 参照

java - Hessian による Spnego / Kerberos のサポート

この件に関するドキュメントを見つけるためにグーグルを何度もクロールしましたが、何も見つかりませんでした。セキュリティで保護されたサーバーにアクセスするために kerberos チケットを使用しようとしていますが、401 エラーが発生します。

Web サービスを呼び出す前に、base64 でエンコードされたトークンを含むヘッダーを追加します。

hessian が基本認証 (HessianProxyFactory => setUser/PWD/BasicAuth) をサポートしていることは知っていますが、Spnego/Negotiate についてはわかりません。

別のプロジェクト (HttpAuthSupplierImpl を含む) で cxf を使用して spnego をセットアップできましたが、これはヘシアンを使用していることに注意してください。

質問: それは可能ですか、それとも時間を無駄にしていますか? ありがとう