Skip to content

[Feature Request] Support ROPC flow for Confidential Client #663

@akulyakhtin

Description

@akulyakhtin

The protocol defines ROPC flow for Confidential Client:
https://learn.microsoft.com/en-us/azure/active-directory/develop/v2-oauth-ropc

MSAL4J does not support this. However, other MSAL libraries such as MSAL for Python do support this.

There is a disclaimer that the reason it's not implemented is because ROPC is, in general, not recommended. However, other MSAL libraries do support this. Therefore MSAL4J demonstrates inconsistency.
More importantly, MSAL4J thus does not implement one of the possible scenarios defined by the protocol.

Another argument is that, currently, to enable ROPC flow we have to switch on 'Enable Public Flow' in the Azure AD App settings even if our application is not, in its nature, public. With ROPC for Confidental Client supported we won't need to switch 'Enable Public Flow' for confidential clients using ROPC.

Implementing this seems to be very straightforward. It's moving acquireToken(UserNamePasswordParameters) into AbstractClientApplcationBase and, correspondingly, into IClientApplicationBase.

This has already been done for MSAL for Python. (AzureAD/microsoft-authentication-library-for-python#344)

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    Status

    Features and lower priority fixes

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions