Open
Description
Is your feature request related to a problem? Please describe.
Thanks for a great project!
Getting RabbitMQ set up with Azure in the way that I'd like took a lot of work to understand and get working correctly. I ran into a few issues I ran into (on RabbitMQ 3.13.7), that I think could have been avoided with documentation changes, so I thought I'd share. (I created PRs for some other doc changes, but these may be more extensive/intentional, so I'm creating an issue instead.
Describe the solution you'd like
- The Azure AD sample uses the advanced.config, which is hard for me to generate via Ansible/Jinja templates. I'd like to be able to use the modern config format. I was able to accomplish this with the modern config format, so I think this is just a documentation issue.
- The sample references
v2.0
in a few places (for the OIdC metadata URL and JWKS URI), but silently uses v1 for the issuer/authorize endpoint. This is actually required for management login, since the setup will not work with the v2.0 authorize endpoint, as RabbitMQ adds theresource
parameter to the authorize URL, which will throwAADSTS901002: The 'resource' request parameter isn't supported.
on the v2.0 authorize endpoint. It would be best to make all of the URLs point to the v1 endpoints (https://login.microsoftonline.com/{tenant-id} for the issuer and https://login.microsoftonline.com/common/discovery/keys for the JWKS URI), and add an explicit warning that says that v1 endpoints are required, mentioning the above Azure error code so that it can be easily searched. - A note shuold be added saying that the resource server ID must be the same as the client_id, otherwise, this doesn't work. (Else, the admin must set the
identifierUris
property in the manifest to whatever value they want to set theresource_server_id
to.) - Microsoft Azure AD has been renamed (again) to Microsoft Entra, so it may be useful to reference that somewhere in the document for searching online.
- This is not an Azure AD config problem per se, but I had trouble setting the
scope_prefix
to an empty stringauth_oauth2.scope_prefix = ""
; it didn't seem to recognize my claims when I set it that way. I decided to set it torabbitmq.
so that I could use the same values across multiple different Azure AD applications without having to inject the client_id (which does not exist until the Azure AD application is created.) (Similar problem to Enable use different identifier of role id and resource id in OAuth flow rabbitmq-server#7861.) I guess this isn't really actionable without more data, but just thought I'd mention it anyway.
Describe alternatives you've considered
No response
Additional context
No response