問題タブ [spring-security-kerberos]

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 投票する
3 に答える
80719 参照

java - GSSException: 有効な資格情報が提供されていません (メカニズム レベル: Kerberos tgt が見つかりませんでした)

私は MOngoDB + Java 構成に非常に慣れていません。Java アプリケーションからリモート mongodb サーバーからの接続を確立しようとしています。mongotemplate との接続に GSSAPI メカニズムを使用したい。以下のコードは正常に実行されています。以下のコードは私の構成ファイルからのものです。

しかし、コードの下で実行しようとすると、例外が発生します

例外:

GSSException: 有効な認証情報が提供されていません (メカニズム レベル: Kerberos tgt が見つかりませんでした)。 .java:122)、sun.security.jgss.GSSManagerImpl.getCredentialElement(GSSManagerImpl.java:193)、sun.security.jgss.GSSCredentialImpl.add(GSSCredentialImpl.java:427)、sun.security.jgss.GSSCredentialImpl.(GSSCredentialImpl) .java:62) の sun.security.jgss.GSSManagerImpl.createCredential(GSSManagerImpl.java:154) の com.mongodb.DBPort$GSSAPIAuthenticator.getGSSCredential(DBPort.java:622) の com.mongodb.DBPort$GSSAPIAuthenticator.createSaslClient( DBPort.java:593) com.mongodb.DBPort$SaslAuthenticator.authenticate(DBPort.java:895) で com.com.mongodb.DBPort.checkAuth(DBPort.java:443) の mongodb.DBPort.authenticate(DBPort.java:432) com.mongodb.DBTCPConnector.innerCall(DBTCPConnector.java:289) の com.mongodb.DBTCPConnector.call (DBTCPConnector.java:269) com.mongodb.DBCollectionImpl.find(DBCollectionImpl.java:84) で com.mongodb.DB.command(DB.java:320) で com.mongodb.DB.command(DB.java: 299) com.mongodb.DB.command (DB.java:388) で com.mongodb.DBApiLayer.getCollectionNames (DBApiLayer.java:152) で320) com.mongodb.DB.command(DB.java:299) com.mongodb.DB.command(DB.java:388) com.mongodb.DBApiLayer.getCollectionNames(DBApiLayer.java:152)320) com.mongodb.DB.command(DB.java:299) com.mongodb.DB.command(DB.java:388) com.mongodb.DBApiLayer.getCollectionNames(DBApiLayer.java:152)

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

java - Spring Security Kerberos + AD、チェックサム失敗

http://docs.spring.io/spring-security-kerberos/docs/1.0.1.RELEASE/reference/htmlsingle/#samples-sec-に記載されているように、Active Directory資格情報を使用してSpring Security Kerberosを実行しようとしています- server-win-auth . ほとんどのもの (SPN、キータブなど) をダウンさせたと言いたいです。今、チェックサムが失敗しました。プリンシパル名を変更すると、AES 暗号化エラーが発生します。

https://github.com/spring-projects/spring-security-kerberos/tree/master/spring-security-kerberos-samples/sec-serverの Oracle Java 1.8 + JCE サンプルを使用して、RHEL 6 で Spring Boot を使用しています。 -勝利認証

これがjarを実行したときに得られるものです


Debug は true storeKey true useTicketCache false useKeyTab true doNotPrompt true ticketCache は null isInitiator false KeyTab は /home/boss/webdev125-3.keytab refreshKrb5Config は false プリンシパルは http/webdev@EXAMPLE.ORG tryFirstPass は false useFirstPass は false storePass は false clearPass偽です

プリンシパルは http/webdev@EXAMPLE.ORG です keytab を使用します コミット成功

....

2015-11-25 11:29:09.631 DEBUG 5559 --- [nio-8080-exec-3] .a.KerberosServiceAuthenticationProvider : Kerberos トークンの検証を試みます 2015-11-25 11:29:10.003 WARN 5559 --- [ nio-8080-exec-3] waSpnegoAuthenticationProcessingFilter : ネゴシエート ヘッダーが無効でした:

...

org.springframework.security.authentication.BadCredentialsException: org.springframework.security.kerberos.authentication.sun.SunJaasKerberosTicketValidator.validateTicket(SunJaasKerberosTicketValidator.java:71) で org.springframework.security.kerberos.authentication.KerberosServiceAuthenticationProvider で Kerberos 検証が失敗しました。 org.springframework.security.authentication.ProviderManager.authenticate(ProviderManager.java:156) で認証 (KerberosServiceAuthenticationProvider.java:64)

...

原因: org.ietf.jgss.GSSException: GSS-API レベルで特定されていない障害 (メカニズム レベル: チェックサムが失敗しました)

原因: sun.security.krb5.KrbCryptoException: チェックサムに失敗しました

原因: java.security.GeneralSecurityException: チェックサムに失敗しました


その他の詳細:

  • /etc/krb5.conf には、aes256-cts-hmac-sha1-96 を含めるための default_tgs_enctypes、default_tkt_enctypes があります。
  • デフォルトのキータブの場所は、アプリケーションと krb5.conf の間で一致しています
  • キータブは Windows サーバーで生成され、RHEL にコピーされます
0 投票する
1 に答える
528 参照

internet-explorer - ADFS2.0 と kerberos 構成

ADFS 2.0 と kerberos を使用した Windows 統合認証の実装に取り​​組んでいます。


xyz.comドメインで実行されているWindows Server ADDS、ADFS2.0、DNSを必要条件ごとに構成しました

Windowsサーバーxyz.comドメインに接続する1つのWindowsクライアントがありました

および Linux env 上の Spring-security-saml2-sampl アプリケーション

このドメインはすべて VLAN を使用して接続されています。

Windows認証を有効にするために、IE設定を構成し、Windows統合認証を有効にし、ローカルイントラネット構成を追加しました

必要。このリンクを参照しました: http://www.cisco.com/c/en/us/support/docs/security-vpn/kerberos/118841-configure-kerberos-00.html

私が設定したWindowsサーバーのkerberos設定に従って

私のWindowsクライアントアプリケーションでは、実行中にkerberosチケットを取得していることがわかります

しかし、spring-security-saml2-sample アプリケーションにしばらくの間、認証できません。

Windowsプロンプトを何度も取得し、失敗しました

kerberos で ADFS を有効にするために設定する必要があるもの、

ありがとう

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

security - Spring Security Kerberos Windows 認証のエラー

環境に Spring ベースのセキュリティ Web アプリケーションをセットアップしようとしています。http://docs.spring.io/spring-security-kerberos/docs/1.0.1.RELEASE/reference/htmlsingle/#setupwinkerberosで説明されているように

すべてが適切にセットアップされていることを確認するために、Spring Boot Security サンプル アプリケーションを実行しようとしています (ここで説明されているようにビルドされています: http://docs.spring.io/spring-security-kerberos/docs/1.0.1.RELEASE/reference /htmlsingle/#samples-sec-server-win-auth )

TEST ドメインの下のテスト環境は次のとおりです。

Active Directory (AD サーバーと呼ばれる) ドメイン コントローラー、Windows 2008 R2 64 ビット
コンピューター名: adjavatest1
完全なコンピューター名: adjavatest1.test.company.info
ユーザー: TEST\administrator

クライアント PC、Windows 7
コンピューター名: adjavatest2
完全なコンピューター名: adjavatest2.test.company.info
ユーザー: TEST\administrator

アプリケーション サーバー (Web サーバーと呼ばれる)
コンピューター名: kpiq-dev
フル コンピューター名: kpiq-dev.test.company.info
ユーザー: TEST\administrator

これまでのところ、環境とアプリケーションを構成するために次の手順を実行しました

1) AD サーバーに SPN を設定する

(多くの情報源は、SPN "HTTP/adjavatest1" と "HOST/adjavatest1" を作成するようアドバイスしています - 私は何の違いもなくそれを試しました。)

2) AD サーバーで SPN を確認する

3) ユーザー/サービスをマッピングし、AD サーバーで keytab ファイルを生成します

4) keytab ファイルを Web サーバーの C;\SpringSSO ディレクトリにコピーします。


5) MIT kerberos ツール c:\SpringSSO>kinit -V -k -t adjavatest1.HTTP.keytab HTTP/adjavatest1.test.company.info@TEST.COMPANY.INFO の kinit を使用して、Web サーバーでキータブを検証します。既存のキャッシュを使用: 初期default ccache プリンシパルを使用: HTTP/adjavatest1.test.company.info@TEST.COMPANY.INFO keytab を使用: adjavatest1.HTTP.keytab jdk の kinit を使用して Kerberos v5 に認証 c:\SpringSSO>kinit -k -t adjavatest1.HTTP. keytab HTTP/adjavatest1.test.company.info@TEST.COMPANY.INFO 新しいチケットはキャッシュ ファイル C:\Users\administrator.TEST\krb5cc_administrator に保存されます

6) 両方の場所の Web サーバーの jre/lib/security に「Kerberos と無制限の強度ポリシー」をインストールします。

7) Web サーバーの Windows レジストリを確認します。

8) https://github.com/spring-projects/spring-security-kerberos/tree/master/spring-security-kerberos-samplesから取得した spring-security-kerberos-samples\sec-server-win-auth アプリケーションをビルドします。 application.yml の設定プロパティで

9) C:\SpringSSO ディレクトリの Web サーバーに Spring ブート アプリケーションをデプロイします。

10) Web サーバーで Web アプリケーションを起動します c:\SpringSSO>java -Dsun.security.krb5.debug=true -Djava.security.krb5.conf=.\krb5.conf -jar sec-server-win-auth-1.0. 2.BUILD-SNAPSHOT.jar

krb5.conf の Kerberos 構成 (さまざまな enctypes を試しましたが、「arcfour-hmac-md5」は最後の実験です)

11) クライアントの IE ブラウザーで、http://kpiq-dev.test.company.info/hello へのイントラネット パターン ポイント ブラウザーとしてパス *.test.company.info を IE ブラウザーに追加します。

12) ブラウザで http://kpiq-dev.test.company.info/hello にアクセスします

13) サーバーがエンコードできないことを示す Web サーバーのログを確認します。

セキュリティが rc4-hmac の代わりに Aes256CtsHmacSha1EType を暗号化しようとするのはなぜですか?
次に試すことができる提案はありますか?

前もって感謝します。

0 投票する
3 に答える
804 参照

spring-security - WebSecurityConfigurerAdapter で 2 つの異なる AuthenticationProvider を使用することは可能ですか?

複数のエンドポイントを持つ SpringBoot ベースのアプリがあります。エンドポイントにアクセスするクライアントが異なるため、それらを保護するさまざまな認証プロバイダーが必要です。一部のエンドポイントは、Kerberos (KerberosServiceAuthenticationProvider -- http://docs.spring.io/autorepo/docs/spring-security-kerberos/1.0.0.RC1/reference/htmlsingle/ ) によって保護されます。一部のエンドポイントは、AD/LDAP (ActiveDirectoryLdapAuthenticationProvider) によって保護されます。

現在、Kerberos または LDAP で動作していますが、両方ではありません。

とにかくこれを両方で機能させるには?リクエストを処理するカスタム認証プロバイダーを作成することを考えていましたが、それが機能するかどうかはわかりませんでした。

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

spring - spring-security-kerberos-client の MS AD キータブを生成する

ms ドメイン内のアプリケーションをテストしようとしています。アプリ サーバーが正常にデプロイされました。kerberos とユーザー名/パスワードの両方で、認証はうまく機能します。

しかし、「ktpass」クライアントキータブによって生成された「KerberosRestTemplate」を使用して「test」(コントローラーである理由があります) を追加すると、「SunJaasKerberosTicketValidator」が例外をスローしました:

' java.security.PrivilegedActionException: GSSException: GSS-API レベルで特定されていない障害 (メカニズム レベル: 指定されたバージョンのキーは使用できません (44)) '.

理由は、ktpass によって生成された keytab ファイルが壊れていることだと思います。それが私がそれを生成する方法です:

"C:> ktpass /princ deniz@TESTAD.LOCAL /pass Qw1er2ty3 /ptype KRB5_NT_PRINCIPAL /out deniz.keytab

念のため、サンプルを github に保存しました: https://github.com/mezlogo/kerberos_sample

キータブが壊れていると思いますが、クライアントで使用するためにキータブを生成する方法が見つかりません (HTTP/username@DOMAIN なし)。

Ps私の英語でごめんなさい。

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

spring-security - KerberosRestTemplate でキャッシュされたチケットを使用するには?

春のセキュリティ kerberos 認証の統合テストを実装したいと考えています。この目的のためにKerberosRestTemplate (参照)があります。KerberosRestTemplateには、「キャッシュされたチケットを使用する場合は、keyTabLocation と userPrincipal を空のままにしてください」という説明を持つデフォルトのコンストラクターがあります。

研究のために、私は簡単なクラスを書きました:

実行すると、例外がスローされました:

私のklistには、私のサービスの正しいキャッシュされたチケットが含まれています。

そして、私のブラウザ (firefox) は kerberos sso で認証に成功しました。

私はWindowsサーバー2012を使用しています。クライアントとしてWindows 7を使用しています。

キャッシュされたチケットの使用方法 (そして、ktpass はクライアントのキータブを生成できますか?)

Ps私の英語でごめんなさい。