Goal
Embedding a form on a 3rd party website that can use 1st party authentication (OIDC, keycloak) to post to 1st party service protected via bearer token. (Think of something like a comment form à la disqus.)
It is acceptable that this flow does not allow refreshing the oidc bearer token.
Concerns
Prevent clickjacking
Control 3rd party websites allowed to use the form
Isolate user info and token from 3rd party website
Approach

My current understanding leads me to believe that the concerns are addressed:
To prevent clickjacking (like in iframe-embedded auth), the whole login procedure is performed in a new popup window (see image: open popup).
Checking for window.opener and checking window.opener against a pass-list (see image: login landing) should ensure that login-landing is not embedded in an iframe, is not navigated to directly, and is only accessed in a popup from authorized websites. Checking the targetOrigin of the window.postmessage command should ensure that only authorized websites can successfully use the form.
Having the web component (see image: 1st party web component) use an internal, sandboxed iframe from srcDoc to perform all user-info or token related actions should shield user-info and token from access by the 3rd party website. Using the internal iframe should also ensure, that the 3rd party website using the web component cannot intercept the postmessage event.
Questions
Is the approach secure?
Is there a more standardized approach to this problem which I do not know of?
Thank you for your input!