Интеграция платформы Mobilefirst с NETIQ IDAM

Я попытался аутентифицировать пользователя на IDAM-LDAP через NetIq. Но для этого нам нужны некоторые службы или механизмы, в которых мы можем проверить отправку нашего имени пользователя и пароля напрямую, и это будет проверено NetIq через LDAP.

Я попытался с простым подключением Java к LDAP для аутентификации пользователя.

Ниже приведены параметры

INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory"); \n 
PROVIDER_URL, "ldap:// IP ADDRESS :10389");
SECURITY_PRINCIPAL, "CN=Testnetiq.O=IBOM_test");
SECURITY_CREDENTIALS, "PASSWORD");

Помимо того, какие параметры мы можем использовать для успешного тестирования, чтобы мы могли реализовать в адаптере Java.

package com.wipro.ibm;

import java.util.Properties;

import javax.naming.Context;
import javax.naming.NamingEnumeration;
import javax.naming.directory.InitialDirContext;
import javax.naming.directory.SearchControls;

public class Testing {

    public static void main(String[] args) throws Exception {
    Properties props = new Properties();
    props.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
    props.put(Context.PROVIDER_URL, "ldap:// ldap ip :10389");
    props.put(Context.SECURITY_PRINCIPAL, "CN=Testnetiq.O=IBOM_test");
    props.put(Context.SECURITY_CREDENTIALS, "Wipro@123");

    InitialDirContext context = new InitialDirContext(props);

    SearchControls ctrls = new SearchControls();
    ctrls.setReturningAttributes(new String[] { "givenName", "sn", "memberOf" });
    ctrls.setSearchScope(SearchControls.SUBTREE_SCOPE);

    NamingEnumeration<javax.naming.directory.SearchResult> answers = context.search("o=IBOM_test",
            "(uid=" + "Test123" + ")", ctrls);
    javax.naming.directory.SearchResult result = answers.nextElement();
    String user = result.getNameInNamespace();

    try {
        props = new Properties();
        props.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.jndi.ldap.LdapCtxFactory");
        props.put(Context.PROVIDER_URL, "ldap://ldap ip :10389");
        props.put(Context.SECURITY_PRINCIPAL, user);
        props.put(Context.SECURITY_CREDENTIALS, "Test@123");

        context = new InitialDirContext(props);
        } catch (Exception e) {
            System.out.println("false");
        }
        System.out.println("True");
    }

}

1 ответ

Ошибка javax.naming.AuthenticationNotSupportedException: [LDAP: код ошибки 13 - Требуется конфиденциальность, что указывает на необходимость подключения с использованием TLS/SSL вместо подключения к порту открытого текста.

Обычно это порт 636, но в вашем случае это может быть 10636, поскольку ваш незашифрованный порт 10389.

Другие вопросы по тегам