[Java] WinNT usermanagement vanuit Tomcat/webservices

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

  • QuarK
  • Registratie: Maart 2000
  • Laatst online: 08-07 13:40
Aan mij is de opdracht voorgelegd om aantal (Java/SOAP) webservices te implementeren die oa. de volgende dingen kunnen:

- Local Win2003 users aanmaken / wijzigen
- Local Win2003 group management

Deze webservices moeten via Apache Tomcat aangeboden worden. Nog even afgezien van beveiligingsoverwegingen, risico's en bescherming van deze webservices vraag ik me de volgende dingen af:

- Wat zou de beste manier zijn om dit te bouwen? Zijn er bestaande libraries die dit kunnen (tot zover niet gevonden) of zal ik naar een System.run() met net.exe calls moeten grijpen?
- Is dit überhaupt toegestaan vanuit Java / Tomcat?
- Zijn de Win2003 / Java security policies in te stellen dat local user management toegestaan is?

(Disclaimer: Ja ik weet dat dit echt een groot risico oplevert, maar laat dat even buiten beschouwing)

Acties:
  • 0 Henk 'm!

  • Mike2k
  • Registratie: Mei 2002
  • Laatst online: 22-08 11:59

Mike2k

Zone grote vuurbal jonge! BAM!

Zou je niet beter een IIS webserver met ASP.NET kunnen gebruiken ? Forms based authentication aanzetten...

You definitely rate about a 9.0 on my weird-shit-o-meter
Chuck Norris doesn't dial the wrong number. You answer the wrong phone.


Acties:
  • 0 Henk 'm!

  • QuarK
  • Registratie: Maart 2000
  • Laatst online: 08-07 13:40
Wellicht dat dat beter is.

Maar mijn opdracht was vrij specifiek voor Tomcat/Java. Dus ik wil eerst die mogelijkheid uitzoeken, alternatieven aandragen is alleen wenselijk als het onmogelijk is via Tomcat/Java.

Acties:
  • 0 Henk 'm!

  • momania
  • Registratie: Mei 2000
  • Laatst online: 22:03

momania

iPhone 30! Bam!

QuarK schreef op maandag 17 augustus 2009 @ 11:18:

Maar mijn opdracht was vrij specifiek voor Tomcat/Java.
Nee, je opdracht is om die wijzigingen via webservices te kunnen doen. Dan moet je je opdrachtgever wijsmaken dat je de juiste 'tools for the job' moet gebruiken en niet koppig naar 1 oplossing gaan zitten kijken waarmee je nog niet eens weet of het wel (veilig) kan. ;)

Anyway zal je in tomcat eerst wat policy files moeten veranderen, omdat je anders helemaal niks buiten je web-sandbox kan.

Neem je whisky mee, is het te weinig... *zucht*


Acties:
  • 0 Henk 'm!

  • Remus
  • Registratie: Juli 2000
  • Laatst online: 15-08-2021
Fastex schreef op maandag 17 augustus 2009 @ 10:53:
Zou je niet beter een IIS webserver met ASP.NET kunnen gebruiken ? Forms based authentication aanzetten...
Deze reactie heeft mi weinig te maken met het topic. Het gaat niet om authenticatie op de webserver, het gaat om het wijzigen/toevoegen van gebruikers via een webservice.

Dat gezegd hebbende is de kans denk ik groter dat er al een oplossing bestaat of iig makkelijker is via .NET of andere MS producten dan via Java.

Acties:
  • 0 Henk 'm!

  • Mike2k
  • Registratie: Mei 2002
  • Laatst online: 22-08 11:59

Mike2k

Zone grote vuurbal jonge! BAM!

@Remus: beetje rare opmerking. Als hij IIS mag gebruiken dan wordt het voor hem veel makkelijker. Daarom vroeg ik het ook, zoals Quark en Momania feilloos aanvoelden.

@Quark:
code:
1
2
3
Set objContainer = GetObject("WinNT://localhost")
Set objNewUser = objContainer.Create("user", "NewUserName")
objNewUser.SetInfo


Dat is adsi code.. all you need...

You definitely rate about a 9.0 on my weird-shit-o-meter
Chuck Norris doesn't dial the wrong number. You answer the wrong phone.


Acties:
  • 0 Henk 'm!

  • QuarK
  • Registratie: Maart 2000
  • Laatst online: 08-07 13:40
Oh er zullen vast wel .NET based oplossingen bestaan.

Wellicht had ik mijn OP niet helder genoeg geformuleerd, maar ik wil (moet, overgenomen opdracht) het tot toch echt als Tomcat/Java webservice gaan implementeren (tenzij dit niet kan).

Feedback/antwoord tot zover is iig dit:
- Ik moet in ieder geval de tomcat policy aanpassen zodat de class in kwestie toegang heeft tot buiten de sandbox. Deze class zal ik java.lang.RuntimePermission moeten geven.

Nu nog weten of Tomcat (draaiend als SERVICE) ook daadwerkelijk net.exe kan en mag gebruiken. Volgens mij wel, voor zover ik even heb kunnen testen. Maar bevestiging is zeer welkom.

Acties:
  • 0 Henk 'm!

  • Remus
  • Registratie: Juli 2000
  • Laatst online: 15-08-2021
Fastex schreef op maandag 17 augustus 2009 @ 11:49:
@Remus: beetje rare opmerking. Als hij IIS mag gebruiken dan wordt het voor hem veel makkelijker. Daarom vroeg ik het ook, zoals Quark en Momania feilloos aanvoelden.
Ongeveer het enige dat in je post staat is dat de TS form-based authentication aan moet zetten. Dat heeft weinig te maken met wat de poster vraagt.

Acties:
  • 0 Henk 'm!

  • serkoon
  • Registratie: April 2000
  • Niet online

serkoon

mekker.

Je kunt dit soort dingen in principe gewoon doen met behulp van LDAP, wat je prima kunt gebruiken in Java. Qua Java security policy zal dat niet echt een probleem moeten zijn, lijkt me zo. Nadeel is wel dat je redelijk wat kennis moet hebben van het gebruikte schema.

Qua beveiliging zou ik in ieder geval de server laten authenticeren tegen LDAP met de credentials die de gebruiker opgeeft. Zodoende kun je checken of deze credentials kloppen, maak je gebruik van autorisaties die al in AD zitten en hoef je op de server geen credentials op disk op te slaan om op AD in te kunnen loggen.

Acties:
  • 0 Henk 'm!

  • QuarK
  • Registratie: Maart 2000
  • Laatst online: 08-07 13:40
@serkoon
In hoeverre is dit relevant?

Mijn "probleem" is het aanmaken/wijzigen van lokale WinNT gebruikers, geen AD gebruikers.
Dus vanuit een Tomcat container net.exe kunnen aanroepen met System.run().

Mijn resterende vraag is eigenlijk alleen deze:
Mag ik vanuit Tomcat net.exe aanroepen om bijv. een "net user /add ..." aan te roepen. Mits de tomcat policy goed is gezet natuurlijk.

Acties:
  • 0 Henk 'm!

  • serkoon
  • Registratie: April 2000
  • Niet online

serkoon

mekker.

Excuus, ik had dus niet gezien dat het om lokale users ging. Dan is het inderdaad triviaal net.exe aanroepen.

Acties:
  • 0 Henk 'm!

  • QuarK
  • Registratie: Maart 2000
  • Laatst online: 08-07 13:40
Okee, bedankt allemaal.

Ik hoopte al dat het triviaal zou zijn, mits de security policy op java.lang.RuntimePermission staat.
Zeker aangezien Tomcat als service draait, dus al de goede rechten heeft binnen Windows.

Er moet natuurlijk een management schil omheen gebouwd worden, authenticatie + foutafhandeling + beveiliging tegen misbruik etc.
Pagina: 1