2013-05-23 10 views
5

Ich schreibe eine Node.js App und versuche, einen ADFS-Server zu integrieren, Authentifizierung zu erhalten. Dafür verwende ich wstrust-client und verwende die ADFS-Server-URL als meinen Endpunkt. Mein Code so weit ist:HTTP 400: Fehlerhafter Request in ADFS HTTPS Request

app.get('/login', function(req, res) { 
    trustClient.requestSecurityToken({ 
     scope: 'https://mycompany.com', 
     username: "username", 
     password: "password", 
     endpoint: 'https://[adfs server]/adfs/services/trust/13/usernamemixed' 
    }, function (rstr) { 
     // Access the token 
     var rawToken = rstr.token; 
     console.log('raw: ' + rawToken); 
    }, function(error) { 
     console.log(error) 
    }); 
});  

Ich wünsche https durch wstrust-client

Mein Code in wstrustclient.js so weit ist:

var req = https.request(post_options, function(res) { 
    res.setEncoding('utf8'); 
    res.on('data', function(data) { 
     console.log("Entered res") 

     var rstr = { 
      token: parseRstr(data), 
      response: res, 
     }; 

     callback(rstr); 
    }); 
}); 

req.write(message); 
req.end(); 
req.on('error', function (e) { 
console.log("******************************"); 
console.log(e); 
console.log("******************************"); 

Aber es wirft diesen Fehler:

****************************** 
{ [Error: UNABLE_TO_VERIFY_LEAF_SIGNATURE] 
    stack: 'Error: UNABLE_TO_VERIFY_LEAF_SIGNATURE\n 
    at SecurePair.<anonymous> (tls.js:1253:32)\n  
    at SecurePair.EventEmitter.emit (events.js:91:17)\n  
    at SecurePair.maybeInitFinished (tls.js:865:10)\n  
    at CleartextStream.read [as _read] (tls.js:416:15)\n 
    at CleartextStream.Readable.read (_stream_readable.js:231:10)\n 
    at EncryptedStream.write [as _write] (tls.js:329:25)\n 
    at EncryptedStream.Writable.write (_stream_writable.js:176:8)\n 
    at write (_stream_readable.js:496:24)\n 
    at flow (_stream_readable.js:506:7)\n  
    at Socket.pipeOnReadable (_stream_readable.js:538:5)' } 
    ****************************** 
    ****************************** 
    { [Error: read ECONNRESET] 
     stack: 'Error: read ECONNRESET\n 
     at errnoException (net.js:846:11)\n 
     at TCP.onread (net.js:508:19)', 
     code: 'ECONNRESET', 
     errno: 'ECONNRESET', 
     syscall: 'read' } 
    ****************************** 

Wenn ich dieselbe Endpunkt-URL in einem Browser durchsuche, wird

ausgelöst. Ich weiß, dass es sich um einen SSL-Typ-Fehler handelt und dass es von der Server-Seite stammt. Allerdings weiß ich nicht, warum es den Fehler wirft und was serverseitig falsch sein könnte. Was muss ich ändern?

Antwort

4

Gemäß dem OpenSSL Handbuch here:

21 X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE: unable to verify the first certificate no signatures could be verified because the chain contains only one certificate and it is not self signed.

Vor diesem Hintergrund scheint es, dass Sie Ihr Zertifikat anmelden können müssen.