5

私はNode.jsアプリを作成しており、ADFS サーバーを統合して認証を取得しようとしています。そのために、私は を使用wstrust-clientしており、ADFS サーバーの URL をエンドポイントとして使用しています。これまでの私のコードは次のとおりです。

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)
    }); 
});    

httpsをリクエストしていますwstrust-client

wstrustclient.jsこれまでの私のコードは次のとおりです。

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("******************************");

ただし、次のエラーがスローされます。

******************************
{ [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' }
    ******************************

ブラウザで同じエンドポイント URL を参照すると、スローされますHTTP 400: Bad Request

これは SSL タイプのエラーであり、サーバー側からのものであることはわかっています。ただし、エラーがスローされる理由と、サーバー側で何が問題なのかはわかりません。何を変更する必要がありますか?

4

1 に答える 1

4

ここのOpenSSLマニュアルに従って:

21 X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE: 最初の証明書を検証できません チェーンに証明書が 1 つしか含まれておらず、自己署名されていないため、署名を検証できませんでした。

それを念頭に置いて、証明書に署名する必要があるかもしれません。

于 2013-05-29T19:19:20.773 に答える