A couple times I mounted on a shake roof. I used lag screws into rafters at the eaves and ridge only.
I got one-piece standoffs and flashing, realized that two-piece (can be assembled through flashing) might have worked.
I thing the "professional" (i.e. high volume commodity) approach is lag screws through shingles into sheathing, gooped in the hope it will keep water out for a while.
Lifting asphalt shingle flap to put in some kind of flashed L-bracket might work.
I plan to install standoffs, and flashing together with shingles during a re-roof. Unirac rails with top clamps.
Post #6 has a link to the mount that fastens to the roof trusses/joists.
Yes, it was an asphalt shingle roof about 10 years old Used XR100 rails and the misc. mounting hardware
You can get a complete bill of materials if you explore their design page.
Nice thing about those flashings, they are large enough to drill a test hole 1" from where it should be to verify truss locations and the flashing covers it up. I wanted the full wind load rating, so I made sure each lag bolt was in a truss and not just the flimsy decking.