Connect to RDP API without InsecureSkipVerify

Hi,

I am trying to follow this example to connect to the RDP API through some simple Go client:

https://github.com/Refinitiv/websocket-api/blob/master/Applications/Examples/RDP/go/market_price_rdpgw_client_cred_auth.go#L262-L264

Now, when I remove the "InsecureSkipVerify" parameter, the requests to Refinitiv fail with "Internal Service Error" id e0ca91aa-68d5-493e-8ec0-c1b2ac617df5.


What is the right way to set up TLS between our client and Refinitiv? I cannot find the relevant information in the Refinitiv Real Time Optimized guide.

Best Answer

  • @jaleel

    Thanks for reaching out to us.

    It works fine on my machine. I removed that line from the code and modified the code to use https://api.refinitiv.com/auth/oauth2/v1/token.

    func getAuthToken(authUrl string, clientId string, clientSecret string, scope string) (string, float64) {
        log.Println(getCurrentTime(), "Sending authentication request...")
        // Send login info for authentication token
        transCfg := &http.Transport{
                TLSClientConfig: &tls.Config{},
    }

        client := &http.Client{Transport: transCfg,
                CheckRedirect: func(req *http.Request, via []*http.Request) error {
                        return http.ErrUseLastResponse
                },
        }
    ...

    I can get a token and retrieve the real-time data.

    C:\Users\U8009686\Downloads\websocket-api-master (4)\websocket-api-master\Applications\Examples\RDP\go>go run market_price_rdpgw_client_cred_auth.go --clientid test --clientsecret test
    2022-10-19 08:48:35.014547 Sending authentication request...
    2022-10-19 08:48:35.291642 Refinitiv Data Platform authentication HTTP code:  301
    2022-10-19 08:48:35.291642 Perform URL redirect to  https://api.refinitiv.com:443/auth/oauth2/v1/token
    2022-10-19 08:48:35.292645 Sending authentication request...
    2022-10-19 08:48:36.013567 RECEIVED:
    {
      "access_token": "eyJ0eXAiOiJhdCtqd3QiLCJhbGciOiJSUzI1NiIsImtpZCI6ImJlcGpHV0dkOW44WU9VQ1NwX3M3SXlRMmlKMFkzeWRFaHo1VDJ
    JVlNqWTgifQ.eyJkYXRhIjoie1wiY2lwaGVydGV4dFwiOlwiN3BlczZxTWRTS195LW1BYjVxVGlwNVIwekZYNTlsSkRkX3FnTU5vMHpwaGJMTnVGbXE5aU
    JETVhTYy02cEZmdVY2ck5Lc3M2ZjA2aFVsQUd6VDdVZE5OeWVhS0VpckV0RS05dlFKVkxkOURhVDVkUXpzQTFJNzhmMWdLZzQ2aW5tbFl3cTYwRktWSko0
    ck9ySWRoMm5PLURPNERETS1UaXJ5YlhralBaQXFyN0todnhlTVVtQjFJQW9XWk5BQV9kTXc0N1M2bWtRalZDaUdXTVBuMWR6S3JEQUxtWXZHWUUxUHR3WX
    lUMVFRRko2YTNGb0NKWk9UZ0tWTjVtZ0YyVjBTRzhPdU01Rms3S0c1WS1aRDQ0QTlEQVg3Y2tqTXNRbk9FNGphTG9peVdmUUVuZzNrT3BNdVYzeGplQVdi

    go version go1.15.6 windows/amd64

    Please feel free to reach out if you have any further questions.

Answers

  • Hello @jaleel

    I have tried the go example with go version 1.17.12 and the "TLSClientConfig: &tls.Config{}" code (from @Jirapongse) on Linux. The code works fine on my end.

    Please note that the RTO *RdpGw_ClientCred_auth* examples (including go's market_price_rdpgw_client_cred_auth.go) support the forthcoming oAuthClientCredentials service only. For the current authentication service, I highly recommend you check the *rdpgw_service_discovery* examples which are available in Java, C#, and Python in the https://github.com/Refinitiv/websocket-api/tree/master/Applications/Examples/RDP folder.

  • Ack - thank you for trying it yourself and confirming. I will investigate and follow up here if relevant.
  • Thank you for trying this and confirming on your end, I will need to double check more closely.