I keep getting the error logon failed for user XXX
Then you need to grant the user access to the server itself. Once you have done that, this is sufficient:
only has exec rights to the stored procedure and public access to the DB.
So to summarise, what you need is:
CREATE LOGIN "DOMAIN\Helpdesk" FROM WINDOWS
go
USE YourDB
go
CREATE USER "Domain\Helpdesk"
GRANT EXECUTE ON YourSP TO "Domain\Helpdesk"
Note that Helpdesk here can be a Windows user or a Windows group. I very much recommend the latter, as helpdesk people are likely to come and go.
As for the use of EXECUTE AS OWNER, a better technique is to use certificate signing, as EXECUTE AS OWNER disrupts several auditing scheme. But if you don't care about that, you can use it, if it is only a matter of operations on database level. But if there are also operations also on server level, certificate signing is the only option.