It's all about dialect variation — call them A and B — which are differentiated by reference to constructions like:
[1] I thought it might rain before we got home.
[2] I thought it may rain before we got home.
In the older Dialect A (which I speak) [2] is ungrammatical (just like *"I thought I can finish the book before I got home"): [1], with "might" required.
In Dialect B, [2] is possible as well as [1]. In Dialect A, "might" is undoubtedly the preterite counterpart of "may", just as "could" is of "can" because it is the form required in backshift. In Dialect B there's no basis for retaining (from earlier stages of the language) the analysis of "might" as the preterite of "may": it must be a distinct lexeme.
One factor facilitating this linguistic change is that "might", even in Dialect A, is hardly used in the primary sense of the preterite, to indicate past time: we usually say "was/were allowed" rather than "might" for past time permission, e.g. "He told me I/we might go".