Skip to content

Improve Azure AD/Entra Documentation #2042

Open
@iinuwa

Description

@iinuwa

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 the resource parameter to the authorize URL, which will throw AADSTS901002: 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 the resource_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 string auth_oauth2.scope_prefix = ""; it didn't seem to recognize my claims when I set it that way. I decided to set it to rabbitmq. 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

Metadata

Metadata

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions