2). Добавьте атрибут [AllowAnonymous] к конечной точке или контроллеру, чтобы отключить аутентификацию для этой конечной точки / контроллера.
3). Вам нужно будет проверить утверждения пользователей (при условии, что вы добавили туда различные разрешения - и логику применения к возвращаемым значениям в зависимости от этих значений. Если вы вернете IHttpActionResult, например, вы можете динамически изменять возвращаемые значения в зависимости от вашей логики.
public IHttpActionResult GetProduct(int id)
{
var product = products.FirstOrDefault((p) => p.Id == id);
if (product == null)
{
return NotFound();
}
return Ok(product);
}