Hi Robert,
Thanks for the great questions!
I will in advance apologize that there might be parts of our online documentation that are not entirely up to date, it is currently on my todo list to get it up to date, but I am glad that it seems like you got a pretty good understanding of the MCP anyways. :)
For the question of what guarantees an OIDC token gives, I guess the answer is, as with token based authentication in general, that the holder of the token knows the credentials to obtain the token, and that there is an identity that is registered in the MCP associated with the token. It does NOT give a strong guarantee that the holder is the actual identity, as we all know that username/password credentials can be broken or stolen. The possibility of authentication using a PKI certificate to get a token is only optional, but if the user chooses to do so, the MCP ID broker will make sure to validate the certificate and do revocation check before actually sending an OIDC token in return. In practice this is done using a mutual TLS handshake between the user who sends their MCP certificate and the nginx reverse proxy that is in front of the broker that sends its server certificate, and as part of this handshake both verification and revocation check of the user's certificate is done. After that nginx will forward the certificate to the broker which will then take the information from the certificate and put it into a token. The software that is used by the MCP providers that currently is in practice reference software that is developed by the MCP consortium (MCC) and it is also the MCC that certifies the different MCP providers. How the actual certification is done is not entirely clear yet, but formal documentations are currently being developed in the different MCC working groups.
With regards to what requirements the MCP gives to service providers the answer is that in practice there are not any with the exception that if a service wants to use MCP based OIDC authentication the service needs to have an identity registered in the MCP to be able to get an OIDC client registered. This is only from the point of view of how the MCP works as the different MCP providers might have other requirements. With that said though we are trying to develop best practice guidelines for how service providers can and should use MCP.
It is currently not a requirement that a service is registered in the service registry, but it is a recommendation in terms of it becoming discoverable by potential consumers.
Yes, it is correctly understood that a service provider can choose to require users to authenticate using a MCP certificate and in my opinion this also gives a stronger guarantee of the identity of the user than OIDC based authentication. In practice this would be done using a mutual TLS handshake where the user presents their MCP certificate and the server presents its host certificate which in most cases would be issued by one the big TLS CAs (DigiCert, GlobalSign, etc.), but could of course also be done other ways if needed. Again, from the MCC's point of view we don't put any requirements on how to do this, but we are trying to make guidelines.
I hope this answers at least some of your questions, and if there is anything that is still unclear you are of course welcome to point it out. :)
And also if you haven't done so already I encourage you to take a look at our website
https://maritimeconnectivity.net/ where we have links to our current public documents, and also instructions on how to get access to our public testbed where you can test the functionalities of the MCP.
Finally we also encourage everybody who is interested in the MCP and wants to contribute to the development of it to join our consortium where we discuss the different aspects of the MCP in our different working groups. :)
Best regards
Oliver