я бы взял keyclock и и когда он не справится с ростом нагрузки - сделать свой кастомный. просто на начальном этапе проекта
а) вряд ли вы сможете оценить правильно нагрузку и профиль нагрузки
б) не все проекты переживают переход 10.000 -> 1.000.000 клиентов, так что нет смысла вкладываться прямо с начала
С другой стороны, если сразу делать на keyclock, то нужно продумывать (инвестировать) в абстрации, которые позволят сделать решение независимым от имлементации.
Альтернатива - сделать просто собственное решение.
Но, опять же, нужны цифры, показатели назначения (арх. характеристики). А ещё ведь есть отказоустойчивость/катастрофоустойчивость, SLA и т.д.
Впрочем, лично я бы взял keyclock не раздумывая для этой задачи, но постарался бы всё же спроектировать абстракции