Hi Yuxuan Li,
Welcome to the Microsoft Q&A Platform! Thank you for asking your question here.
Here's an answer to your questions regarding Azure Container Registry (ACR) authentication options:
How does the username and password-based ACR authentication work behind the scenes? Does it involve or bypass AAD?
When you authenticate to ACR using a username and password (e.g., via an app registration), Azure Active Directory (AAD) is involved behind the scenes. The process works as follows:
AAD (via the Enterprise Token Service or ESTS) validates the provided credentials.
AAD then issues an OAuth access token.
This token is exchanged for an ACR refresh token, which is used to authenticate and pull images from the registry.
So, the username and password-based flow relies on AAD for authentication and does not bypass it.
Please refer to the document below for more details.
Authenticate with an Azure container registry
Is it possible to use dSTS-based tokens for ACR authentication?
Currently, Azure Container Registry does not support dSTS (Device Security Token Service) tokens for authentication. ACR's token issuance and validation process is tightly integrated with AAD and uses ESTS (Enterprise Token Service) for token management. Therefore, it is not possible to use dSTS-based tokens to authenticate against ACR.
Please refer to the document below for more details.
Authenticate with an Azure container registry
Azure Container Registry authentication with service principals
If you have any further queries, do let us know. If the comment is helpful, please click "Upvote".