I just thought I would reply to this thread, since I saw you guys making mention of the AAD Premium prices for password reset. I too found this to be completely ridiculous, so I did some digging and found their licensing page for SSPR here....
https://docs.microsoft.com/en-us/azure/active-directory/active-directory-passwords-licensing
In the first paragraph is states "We do not enforce per-user licensing on the password reset experience" . this seemed to completely contradict everything I've heard and read about setting up the password reset(writeback) using AAD Premium. To my knowledge I thought you needed an AAD P1 license for each user in the tenant. At over 2000 users here, that would of gotten expense real fast, and just doesn't make sense. So I decided to buy a single AAD Premium license ($70 for the year), assign it to myself(global admin) and see if it would magically enable SSPR for everyone.
Sadly this was not the case, and SSPR was complaining about not having enough licenses, but I soon figured out why. It seems that when you buy an AAD Premium license, you don't need to assign the license to anyone. Just having the license in the tenant enables certain premium features that aren't user specific. So I removed the license from myself, and all of a sudden the SSPR works correctly! I honestly couldn't believe it at first, so I tested it with multiple synchronized AD accounts, and test student accounts. Changing the password online through 365 does successfully write back changes to our on-prem AD!
Now we have a fully working password reset solution, and way happier end-users!
Long story short.....
Purchase 1 AAD P1 license
Do NOT assign the license to anyone in the tenant
Open the Azure AD Connect application in your on-prem AD and configure password writeback
Go to the Azure AD management online portal to enable password reset
Profit!
I hope this helps you guys out!