6

Po pierwszym wydaniu ColdFusion z silnikiem jRun, wśród wielu użytkowników pojawiło się jedno pytanie: W jaki sposób uwierzytelniamy się w naszym środowisku Windows AD? W tym czasie (o ile dobrze pamiętam), program cfc został swobodnie udostępniony przez firmę Macromedia, która utworzyła obiekt Java, używając jednego lub więcej plików klas Java, które zostały udostępnione wraz z jRun (odpowiedni kod funkcji komponentu pojawia się na końcu ta wiadomość została przypisana) i wykonała "proces uwierzytelniania". Zakładam, że nasz mały personel nie był jedynym programistą, który używał tego kodu przez lata.ColdFusion 10 Active Directory Authentication

Używamy tego kodu dla wersji 6-9 serwera CF. Kod działał dobrze, ale z CF 10 i eliminacją jRun jako bazowego serwera Java, kod przestał działać, ponieważ plik klasy nie jest dołączony do serwera Tomcat. Czy są inni, którzy są lub byli w podobnej sytuacji? Jeśli tak, w jaki sposób wprowadziłeś przejście do wersji CF 10 i nadal uwierzytelniałeś się w usłudze Microsoft Active Directory?

W naszym konkretnym środowisku biznesowym protokół LDAP nie jest skonfigurowany do uwierzytelniania, więc uwierzytelnianie w oparciu o protokół LDAP nie jest dla nas opcją, a kontrola LDAP leży poza zakresem naszego małego działu (który jest obsługiwany przez centralny ośrodek IT poza naszą sferą; wpływu). Jeśli chodzi o nasze lokalne serwery, uruchamiamy Windows Server 2008 R2, IIS 7.5, JRE 1.7 64 bit i ColdFusion 10 SE 64 bit. Jeśli ktokolwiek ma jakieś pomysły, chciałbym je przeczytać.

fragment kodu następuje

<!--- Authenticates the user and outputs true on success and false on failure. ---> 
    <CFFUNCTION NAME="authenticateUser" ACCESS="REMOTE" OUTPUT="yes" STATIC="yes" HINT="Authenticates the user."> 
      <CFARGUMENT NAME="userid" TYPE="string" REQUIRED="true" /> 
      <CFARGUMENT NAME="passwd" TYPE="string" REQUIRED="true" /> 
      <CFARGUMENT NAME="domain" TYPE="string" REQUIRED="true" /> 

      <CFTRY> 
        <CFSCRIPT> 
        ntauth = createObject("java", "jrun.security.NTAuth"); 
        ntauth.init(arguments.domain); 
        // authenticateUser throws an exception if it fails, 
        // so we don't have anything specific here 
        ntauth.authenticateUser(arguments.userid, arguments.passwd); 
        auth = true; 
        </CFSCRIPT> 

      <CFCATCH> 
        <CFSET auth = false> 
      </CFCATCH> 
      </CFTRY> 

      <CFRETURN AUTH> 
    </CFFUNCTION> 
+1

Skoro używasz IIS, czy możesz po prostu zająć się uwierzytelnianiem? –

+0

Zobacz odpowiedź podaną tutaj: http://stackoverflow.com/a/2320369/492335 można użyć "coldfusion.security.NTAuthentication" zamiast "jrun.security.NTAuth"? – duncan

Odpowiedz

Powiązane problemy