問題タブ [spring-security-ldap]
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-security - LdapAuthoritiesPopulator 内から LDAP エントリをルックアップする
Spring Security を使用してspring-security-ldap
おり、Spring Boot アプリケーションでの認証に使用しています。
LdapAuthoritiesPopulator
ユーザーの役割を決定するために LDAP サーバーからいくつかのエントリを検索するを実装したいと考えています。これらのエントリはユーザーの下にないため、メソッドにuserData
提供されるオブジェクトgetGrantedAuthorities
では不十分です。(LDAP サーバーを制御できないため、ロールをユーザー エントリに追加できません)。
呼び出し時にSpring ContextSource
Securityが作成するauth.ldapAuthentication().contextSource()
(下のコードの(1)参照)をLdapAuthoritiesPopulator
. しかし、 は のLdapAuthoritiesPopulator
前に作成され、はまだ存在しないWebSecurityConfigurerAdapter
ため、これは機能しません。ContextSource
MyWebSecurityConfigurerAdapter
には次のメソッドが含まれています。
ldapAuthoritiesPopulator
クラスは現在、単純に追加するダミーの実装ですROLE_USER
:
spring-security - spring security LDAP 追加属性
userdetail オブジェクトにいくつかの LDAP 属性 (実際には 1 つだけ) を追加したいと考えています。それを行う唯一の方法は、 usercontextmapper クラスをオーバーライドすることであり、その中に person クラスと本質クラスを拡張することが含まれているようです。いくつかの属性を追加するだけでも、少し手間がかかります。そのルートを追求する前に、これを達成するための別の簡単な方法がないことを確認したかった.
基本的に、アプリケーション内のプリンシパル オブジェクトで使用できるようにしたい LDAP に「コレクション」という属性があります。
ありがとう
java - Java config を使用した 1 つのアプリでの複数の認証メカニズム
現在、アプリケーションには、認証と承認に LDAP を使用する単一の認証メカニズムがあります。私のセキュリティ設定は次のようになります
ただし、ユーザーがセッション キー サーバーから認証できるセッション トークンを受け取り、有効なトークンがユーザー名を返し、それを使用して LDAP からそのユーザーの認証情報をロードできる場合があります。したがって、セッション トークンが http ヘッダーに存在する場合はトークン認証を実行し、次に ldap ルックアップを実行し、セッション トークンが存在しない場合は現在の認証メカニズムに落ちる必要があります。この 2 番目の認証レイヤーを追加するにはどうすればよいですか。
spring-security - Spring Security LDAP 認証エラー - パスワード ロックの代わりの認証例外
次の構成を使用して LDAP 認証をセットアップしました。LDAP データ ストアを使用してユーザーを認証する必要があり、pwdMaxFailure を 2 に設定しました。
認証は正しく機能していますが、間違ったパスワードでログインするたびに、パスワード ロック例外ではなく次の例外が発生します。ユーザーの認証中にSpring LDAPがPwdPolicy(パスワード試行のカウント)をチェックしているとは思わない。
ne = (javax.naming.AuthenticationException) javax.naming.AuthenticationException: [LDAP: エラー コード 49 - INVALID_CREDENTIALS: バインドに失敗しました: ERR_229 ユーザー cn=admin、ou=users、o=organisation を認証できません]
私のLDIFファイルは
dn: cn=admin,ou=users,o=organization objectClass: inetOrgPerson
objectClass: organizationalPerson objectClass: person objectClass: top cn: admin sn: Admin uid: admin userPassword:: e1NTSEF9bEtlTUNzLy9OK1JsV2hCWEM2U2ZZNDh0Lzd0OHBlbjFrdjkxN3c9P Q==
createTimestamp: 20141003000008.689Z creatorsName: 0.9.2342.19200300 .100.1.1 = admin、2.5.4.11 = System EntryCSN:20141020004319.002000Z#000000#001#000000 ENTRYDN:CN = admin、OU = USER、O = Organization EntryParentID:8204B2DF-FF5A-413A-A063-4ACD35D35BBEE4BBEE4MIDCY4MIDCY4MIDCY4MIDCY4MIDCY4MIDCY4MIDCY4MIDCY4MIDCY4MIDCY4MIDCY4MIDCY4MIDCY4BEE4 ModifiersName:0.9.2342.19200300.100.1.1 = admin、2.5.4.11 = System ModiyTimestamp:20141020004319.002Z PWDFAILURETIME:20141020003207.120Z PWDHISTORY ::
0MCM4I1lXUnRhVzQ9 pwdPolicySubentry: cn=デフォルト、ou=pwdPolicy、o=組織dn: cn=default,ou=pwdPolicy,o=organization objectClass: デバイス
objectClass: pwdPolicy objectClass: トップ cn: デフォルト
pwdAttribute: userPassword pwdExpireWarning: 3600 pwdGraceExpire: 1 pwdLockout: TRUE pwdLockoutDuration: 120 pwdMaxAge: 2592000
pwdMaxFailure: 2
そして、春の設定ファイルは次のとおりです
spring-security - Spring Security Java Config 複数グループ検索ベース
私はSpring Security 3.2.5をJava構成とLDAP認証/承認で使用しています。
LDAP の 2 つの別個のツリーでグループを検索する必要があります。
ou=グループ
と
ou=グループ、ou=webapps、ou=アプリケーション
検索しましたが、このトピックに関する情報は見つかりませんでした。
これは正常に動作している私の現在のコードです:
私はこのようなことをしたい:
当然のことながら、これは機能しません。
どこから始めるべきかについての指針はありますか?
grails - ldap.rememberMe.usernameMapper.userDnBase (の複数のインスタンス?) (searchSubtree 検索機能)
最新のspring-security-core:2.0-RC4およびspring-security-ldap:2.0-RC2を正常に使用している Grails アプリケーションがあります。ユーザーは LDAP ログイン認証にgrails.plugin.springsecurity.ldap.search.base設定を使用して完全にログインできます。
rememberMe userDnBase (マッパー) には別の設定があり、その設定は grails.plugin.springsecurity.ldap.rememberMe.usernameMapper.userDnBaseです。
LDAP 認証grails.plugin.springsecurity.ldap.search.baseはou=people,dc=sitcudy,dc=edu に設定されています。上記のように、true に設定したsearchSubtreeというプロパティがあるため、ログインは正常に機能します。残念ながら、searchSubtree設定は true を保持せず、コードの「remember-me」部分(.ldap.rememberMe )*内で一貫して実行されます。コードの記憶の部分では、ベース DN のマップである grails.plugin.springsecurity.ldap.rememberMe.usernameMapper.userDnBase を使用するため、 config.groovyファイル に文字列を入力します (認証部分と同じ)。のベース DN にマップするou=people,dc=sitcudy,dc=edu .... これは、永続 Cookie ログインのためにアプリケーションに戻るときに、LDAP ユーザー検索用の DN にマップされます。
ここで私の問題が発生します。ほとんどのユーザーは、LDAP システムで異なる DIT に分離されています。たとえば、一部のユーザーはou=staff,ou=people,dc=sitcudy,dc=eduで使用されますが、他のユーザーはou=students,ou=people,dc=sitcudy,dc=eduで使用されます。 、アプリケーションに戻ると、Cookie が検証されると、コードはこのフォーマットuid=reuben_marcus,ou=people,dc=sitcudy,dc=eduでユーザーをバインドしようとしますが、これは存在しません。存在するのはuid=reuben_marcus,ou=staff,ou=people,dc=sitcudy,dc=edu であるため、Cookie は破棄され、ログイン ( IS_AUTHENTICATED_REMEMBERED ) は発生しません。
grails.plugin.springsecurity.ldap.rememberMe.usernameMapper.userDnBase をou=staff,ou=people,dc=sitcudy,dc=eduに変更すると、記憶機能はすべてのスタッフ メンバーに対して完璧に機能しますが、それは機能しません。他のすべての人々 - 学生、教職員など
この号で私が問題としている主な設定は次のとおりです: grails.plugin.springsecurity.ldap.rememberMe.usernameMapper.userDnBase
これは単なるマッピングであり、複数のuserDNBasesまたはsearchSubtree検索が許可されていないため.. 「remember-me」コードは、このベース DN 設定に該当しないユーザーをどのように見つけることになっていますか??
何か間違ったことをしているのだろうか、それとも「remember me」コードに複数のマッピングuserDNBasesのオプションを持たせたり、 searchSubtree検索機能を持たせたりするための機能要求なのだろうか。
私のconfig.groovyからの関連設定:
active-directory - Jasper サーバー Active Directory conf erroe: 要素「値」で始まる無効なコンテンツが見つかりました
これを参照して、jasperserver 5.6.1 を Microsoft Active Directy に認証しています。[ https://community.jaspersoft.com/documentation/jasperreports-authentication-cookbook/v56/authentication-microsoft-active-directory]
しかし、サーバーをコンパイルして実行すると、ログエラーが発生します。
cvc-complex-type.2.4.a: 要素「value」で始まる無効なコンテンツが見つかりました。'{" http://www.springframework.org/schema/beans ":meta, ' のいずれかが期待されます。
span class="Forceful" の userSearch Bean でエラーが発生しました。
このエラーを修正するには?
よろしく、 チンタカ
java - Atlassian FishEye プラグインと Spring LDAP クラス
私の FishEye 用プラグインは、Active Directory にアクセスし、FishEye 用のいくつかの機能を実装できるようにする必要があります。プラグインは X 分ごとにディレクトリとの同期を行う必要があるため、SAL スケジューラに基づいています。com.sun.jndi.ldap.LdapCtxFactory を使おうとしたところ、REST プラグインでしか動作しないことがわかりましたが、SAL で使用すると、クラスローダーを再定義してもこのクラスがロードされません。とにかく、Spring LDAP を使用して機能を再実装し、プラグインを FishEye にデプロイしようとすると、次のようになりました。
Ok。私はグーグルで見つけましたhttps://developer.atlassian.com/docs/faq/troubleshooting/dependency-issues-during-plugin-initialisation競合を回避するために、依存関係の範囲を提供 に変更する必要があると書かれています。わかりました、私はそれを作りました。しかし、今は別の例外があります:
spring-ldap-core-1.3.2.RELEASE.jar を $fisheyeDir/lib に配置しようとしましたが、何も起こりません - ブートローダーはこの JAR を取得しません。
この状況で何ができるか知っている人はいますか?別の LDAP フレームワークを使用する必要がありますか? または、これらの LDAP クライアントの実装をクラスパスに押し込むことは可能ですか?
FishEye バージョン 3.6.1 (最新)、クラスパス バージョン 3.0.5.RELEASE へのスプリング jar。私の spring-security-ldap 依存関係も 3.0.5.RELEASE です。
前もって感謝します。
grails - ハードコーディングするのではなく、Spring Security プラグインのプロパティ ファイルでロールを定義する方法はありますか?
Spring Security プラグインとともに LDAP プラグインを使用しています。LDAP プラグインは、ログインしているユーザーが属するグループを取得します。私のアプリケーションには と の 2 つの役割がadmin
ありnormal
ます。ロールをハードコーディングする代わりに、プロパティ ファイルを介して設定できるようにしたいと考えています。そのような書き込みの代わりに
私は次のようなものを書くことができます
role.admins=ROLE_ADMINS
設定ファイルのどこに.
このようにして、同じ WAR ファイルを取得して複数のクライアントにデプロイできます。各クライアントには、ActiveDirectory でグループ名を構成するための独自の標準化された方法があります。