Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Support Azure Workload Identity for Microsoft Entra SSO #17595

Closed
Bailey-T opened this issue Mar 22, 2024 · 2 comments · Fixed by #21433
Closed

Support Azure Workload Identity for Microsoft Entra SSO #17595

Bailey-T opened this issue Mar 22, 2024 · 2 comments · Fixed by #21433

Comments

@Bailey-T
Copy link

Summary

When using Microsoft Entra (Azure AD) for SSO, the steps call for a CLIENT_ID and CLIENT_SECRET:
https://argo-cd.readthedocs.io/en/stable/operator-manual/user-management/microsoft/

and the OIDC code, only seems to allow for lookup for the CLIENT_SECRET via the argocd-cm configMap:

clientSecret: settings.OAuth2ClientSecret(),

However, "Workload Identity" is a valid authentication pattern for Entra Applications, especially when using AKS:
https://learn.microsoft.com/en-us/entra/workload-id/workload-identity-federation-create-trust?pivots=identity-wif-apps-methods-azp

Generally this mounts a short lived JWT token to the given container, and creates an ENV entry to point to the location $AZURE_FEDERATED_TOKEN_FILE (this often defaults to /var/run/secrets/azure/tokens/azure-identity-token)

This would probably apply to DEX as well, but due to it requiring excessive permissions is not in use by us.

Motivation

Workload Identity is generally considered the best approach for Entra/AzureAD as it doesn't require the exchange or storage of secrets. I believe the other major CSPs also offer similar functionality for their managed K8s platforms as well.

Proposal

Something like:

  • An optional AzureFederatedIdentity flag in $argocd-cm:data.oidc.config to allow for lookup of the token value in $AZURE_FEDERATED_TOKEN_FILE
@Bailey-T Bailey-T added the enhancement New feature or request label Mar 22, 2024
@avo-sepp
Copy link
Contributor

Since many orgs require very short-lived client-secrets, this enhancement is especially valuable. Enabling our teams to move away from manually rotating client-secrets every n days.

@imjoseangel
Copy link

+1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants