0
votes

Authentification de mise en œuvre dans Igniteb

Je viens de configurer l'authentification dans Igniteb (un serveur spécifique, pas un localhost) https://APACHATEIGNITE.README.IO/docs/Advanced-Security

Cependant, j'ai rencontré un problème en essayant de se connecter. Où devrais-je fournir les informations d'identification? P>

TcpDiscoverySpi spi = new TcpDiscoverySpi();
TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryMulticastIpFinder();
String ipList = appConfig.getIgniteIPAddressList();
List<String> addressList= Arrays.asList(ipList.split(";"));
ipFinder.setAddresses(addressList);
spi.setIpFinder(ipFinder);
IgniteConfiguration cfg = new IgniteConfiguration();
cfg.setIgniteInstanceName("IgnitePod");
cfg.setClientMode(true);
cfg.setDiscoverySpi(spi);
Ignite ignite =  Ignition.start(cfg);


0 commentaires

5 Réponses :


1
votes

https://atachignite.readme.io/docs/advanced-security

explique comment configurer l'authentification via le nom d'utilisateur et le mot de passe pour les connexions minces uniquement (JDBC, ODBC).

Vous pouvez créer des utilisateurs à l'aide de commandes SQL comme le suivant:

https://apacheignite-sql.readme.io/docs/create-user

Vous pouvez fournir des informations d'identification à la chaîne de connexion client mince à l'aide de ses propriétés:

HTTPS: // Apacheignite-SQL .readme.io / Docs / Connection-String-String-and-DSN # Arguments prises en charge https: //apacheignite-sql.readme. IO / DOCS / JDBC-Driver # Section - String-String-String-Exemples

Veuillez également vérifier que vous avez enflammé la persistance configurée.


0 commentaires

1
votes

comme Notes Andrei , Ignite ne authentifie que des clients minces par défaut, et même alors que la persistance est activée. Si vous devez avoir des clients épais authentifier également, vous pouvez le faire à l'aide d'un plugin . Des solutions commerciales tierces et commerciales existent également.


0 commentaires

0
votes

La seule option pour les nœuds de serveur authentifiant peer-authentification disponibles dans Vanilla Apache Ignite est des certificats SSL +.


0 commentaires

0
votes

a été capable de résoudre mon propre problème en créant mon propre CustomTcPDiscoveryapi. Tout d'abord, créez cette classe: xxx pré>

puis, utilisez-le comme ci-dessous: P>

    SecurityCredentials cred = new SecurityCredentials();
    cred.setLogin(appConfig.getIgniteUser());
    cred.setPassword(appConfig.getIgnitePassword());
    CustomTcpDiscoverySpi spi =  new CustomTcpDiscoverySpi(cred);
    //TcpDiscoverySpi spi = new TcpDiscoverySpi(); - > removed to use the CustomTCPDiscovery
    TcpDiscoveryVmIpFinder ipFinder = new TcpDiscoveryMulticastIpFinder();
    String ipList = appConfig.getIgniteIPAddressList();
    List<String> addressList= Arrays.asList(ipList.split(";"));
    ipFinder.setAddresses(addressList);
    spi.setIpFinder(ipFinder);
    IgniteConfiguration cfg = new IgniteConfiguration();
    cfg.setIgniteInstanceName("IgnitePod");
    cfg.setClientMode(true);
    cfg.setAuthenticationEnabled(true);
    // Ignite persistence configuration.
    DataStorageConfiguration storageCfg = new DataStorageConfiguration();
    // Enabling the persistence.
    storageCfg.getDefaultDataRegionConfiguration().setPersistenceEnabled(true);
    // Applying settings.
    // tests
    cfg.setDataStorageConfiguration(storageCfg);
    cfg.setDiscoverySpi(spi);
    Ignite ignite =  Ignition.start(cfg);


0 commentaires

1
votes

Apache Ignite ne fournit pas ces types de capacités de sécurité avec sa version open source. On peut soit la mettre en œuvre seuls à utiliser votre propre distribution de réseau commercial.

Voici les étapes à suivre pour implémenter un plug-in personnalisé de sécurité. P>

Il faudrait implémenter GridsecurityProcessor code> qui serait Soyez utilisé pour authentifier le nœud de jonction. P>

dans GridsecurityProcessor code>, vous devrez mettre en œuvre authenticatenode () code> API comme suit P>

@Override
    protected void initLocalNode(int srvPort, boolean addExtAddrAttr) {
        try {
            super.initLocalNode(srvPort, addExtAddrAttr);
            this.setSecurityCredentials();
        } catch (Exception e) {
            e.printStackTrace();
        }

    }
private void setSecurityCredentials() {
        if (securityCredentials != null) {

            Map<String,Object> attributes = new HashMap<>(locNode.getAttributes());
            attributes.put(IgniteNodeAttributes.ATTR_SECURITY_CREDENTIALS, securityCredentials);
            this.locNode.setAttributes(attributes);
        }
    }


0 commentaires