I believe the reason is the the principle needs to be set on the current owin context:
request.GetRequestContext().Principal = principal;
I made the changes above, and it worked as expected
see http://stackoverflow.com/a/21420794 for more information