Start here. This is the direct spoken answer to practice first.
Why this question matters
Authorization bugs often return valid data to the wrong person, so a happy-path unit test is not enough. The valuable evidence crosses routing, authentication, policy evaluation, resource lookup, and the final data boundary.
I would run integration tests through the real ASP.NET Core pipeline with a test authentication scheme that can create controlled identities and claims. For each protected operation I would cover unauthenticated, authenticated without permission, allowed capability, owner, non-owner, and cross-tenant cases. I would assert the status and response contract, then verify that denied writes changed no data. The test data would include similar resources in two tenants so a missing tenant filter cannot accidentally pass.