私は春のブートアプリケーションを持っています。私はLDAPサーバに接続したいと思って、LDAPサーバが持っているADグループを検証するためのクエリをしたい。誰も私にこれに取り組むことを提案してください。Ldapサーバーを接続する方法とSpring BottplicationでADグループを検証する方法
0
A
答えて
0
あなたがSpring Securityに精通していることを希望します。 WebSecurityConfigurerAdapterを拡張し、AD認証プロバイダを構成する構成クラスを記述します。下記のコードを参照してください。あなたのアプリに合うようにantMatcherを変更してください。 依存関係を追加するspring-security-ldap、spring-boot-starter-securityも同様です。
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
@Autowired
private Environment env;
@Override
protected void configure(HttpSecurity http) throws Exception {
http.httpBasic().and().authorizeRequests().antMatchers(AppConstants.LOGIN_URI).fullyAuthenticated().and().formLogin().permitAll();
}
@Override
public void configure(AuthenticationManagerBuilder auth) throws Exception {
String ldapUrl = env.getProperty(AppConstants.LDAP_URL);
String ldapDomain = env.getProperty(AppConstants.LDAP_DOMAIN);
ActiveDirectoryLdapAuthenticationProvider provider = new ActiveDirectoryLdapAuthenticationProvider(ldapDomain,
ldapUrl);
provider.setConvertSubErrorCodesToExceptions(true);
provider.setUseAuthenticationRequestCredentials(true);
auth.authenticationProvider(provider);
}
ユーザが割り当てられているグループを取得するには、コントローラクラスにAuthentication/Principalのインスタンスを挿入します。 Get 電子メール、マネージャーなどのユーザーに対してすべての属性を取得するには、カスタムマッパーを作成する必要があります。以下のコードを参照してください。
@GetMapping(value = { AppConstants.REST_API_LOGIN })
public ResponseEntity<User> authenticateUser(Authentication auth) {
List<String> ldapRoles = new ArrayList<String>();
auth.getAuthorities().forEach(a -> ldapRoles.add(a.getAuthority()));
/*
Write service class methods to compare ldapRoles against app specific roles from DB and exception handlers to handle exceptions
*/
User user = userService.getUser(auth);
if (!user.isAuthorized()) {
logger.info("User:" + auth.getName() + " is not authorized to access program.");
throw new UserAuthenticationException(AppConstants.NOT_VALID_MEMBER, user);
}
logger.info("User:" + auth.getName() + " logged in");
return new ResponseEntity<User>(user, HttpStatus.OK);
}
関連する問題
- 1. Spring 3.0.5を使用してLDAPサーバーを接続する方法
- 2. LDAP + SSL接続のサーバーSSL証明書を検証する方法
- 3. ユーザー名とパスワードでLDAPサーバーを接続する方法は?
- 4. Springブートを使用して外部/オンラインLDAPサーバーに接続する方法は?
- 5. LDAP:接続の詳細でユーザーを認証する方法
- 6. Spring LDAPとSpringセキュリティを介して既存のADに接続する
- 7. LDAPサーバーを再起動したときに再接続する方法は?
- 8. ang 2アプリケーションをspring-oauth2サーバーに接続する方法は?
- 9. LDAPサーバーを使用してspring webappを保護する方法
- 10. NovellとのLDAP接続をチェックする方法は?
- 11. Azure ADとPowerAppsフォームを接続する方法
- 12. JavaでExchange Web Services接続にLDAP認証を使用する方法
- 13. LDAPサーバーを使用してvb.NetアプリケーションをOracleに接続する方法は?
- 14. SMTPサーバーを検証する方法
- 15. .NETでLDAPを認証する方法
- 16. ADのLDAP - グループ内のすべてのユーザーを一覧表示する方法
- 17. MVC 5を使用してローカルLDAPサーバーに接続する方法
- 18. Java LDAP接続でSSL/TLSバージョンを指定する方法は?
- 19. LDAPセッションはどのADサーバーに接続しますか?
- 20. Web APIでaccess_token(Azure AD OAuth 2.0)を検証する方法は?
- 21. MVC3控えめな検証:要素のグループから検証を削除/再接続する方法は?
- 22. プールのIBM MQ接続を検証する方法
- 23. QuickBooksの接続を検証する方法は?
- 24. リモートJupyterサーバーに接続する方法
- 25. LDAPアカウントを認証する方法は?
- 26. オープンLDAPでADを設定する方法は?
- 27. azure-ad-jwtトークンの検証方法
- 28. AD/LDAPで認証
- 29. LinkedInでサインインする - サーバー側でトークンを検証する方法
- 30. MySQLサーバーの接続方法