I've set up a test channel to see if I can get Plex to play some HLS URLs. It's not playing them, and there's nothing in the logs that jumps out when I try to play them.
The construct of the URL is:
http://[ip address]/path/to/playlist/playlist.m3u8?username=[username]&password=[password]
The playlist itself contains the above url, but with the addition of a sessionid parameter before the username:
#EXTM3U #EXT-X-STREAM-INF:PROGRAM-ID=1,BANDWIDTH=2711964 http://[ip address]/path/to/playlist/playlist.m3u8?sessionid=[sessionid]&username=[username]&password=[password]
Should Plex be able to handle that query string/authentication on the end?