Conversation
️✔️AzureCLI-FullTest
|
|
| rule | cmd_name | rule_message | suggest_message |
|---|---|---|---|
| login | cmd login added parameter client_id |
||
| login | cmd login added parameter object_id |
||
| login | cmd login added parameter resource_id |
Collaborator
|
az login refinement |
|
|
5f46c22 to
bf91b78
Compare
jiasli
commented
Jan 14, 2025
Comment on lines
+241
to
+256
| elif client_id: | ||
| identity_type = MsiAccountTypes.user_assigned_client_id | ||
| identity_id = client_id | ||
| msi_creds = MSIAuthenticationWrapper(resource=resource, client_id=client_id) | ||
| elif object_id: | ||
| identity_type = MsiAccountTypes.user_assigned_object_id | ||
| identity_id = object_id | ||
| msi_creds = MSIAuthenticationWrapper(resource=resource, object_id=object_id) | ||
| elif resource_id: | ||
| identity_type = MsiAccountTypes.user_assigned_resource_id | ||
| identity_id = resource_id | ||
| msi_creds = MSIAuthenticationWrapper(resource=resource, msi_res_id=resource_id) |
Member
Author
There was a problem hiding this comment.
The ID names are aligned with MSAL: https://learn.microsoft.com/en-us/entra/msal/python/advanced/managed-identity#user-assigned-managed-identities
- Client ID (
client_id) - Resource ID (
resource_id) - inconsistent withmsrestazure'smsi_res_id - Object ID (
object_id)
bf91b78 to
3f904d3
Compare
evelyn-ys
reviewed
Jan 21, 2025
| return profile.login_with_managed_identity(username, allow_no_subscriptions) | ||
| return profile.login_with_managed_identity( | ||
| identity_id=username, client_id=client_id, object_id=object_id, resource_id=resource_id, | ||
| allow_no_subscriptions=allow_no_subscriptions) |
Member
There was a problem hiding this comment.
Do we need to add a param validation that only one of the four (identity_id, client_id, object_id and resource_id) has been provided? Or we can add param help msg telling that these four are mutually exclusive
Member
Author
There was a problem hiding this comment.
Good suggestion. Added the validation logic into profile.login_with_managed_identity().
3f904d3 to
2938407
Compare
evelyn-ys
approved these changes
Jan 22, 2025
bebound
approved these changes
Jan 22, 2025
az login: Add --client-id, --object-id and --resource-id for authenticating with user-assigned managed identityaz login: Add --client-id, --object-id and --resource-id for user-assigned managed identity authentication
This was referenced Mar 12, 2025
Merged
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Related command
az login --identityDescription
Close #29480
az logincurrently reuses--usernamefor 3 types of IDs. This has several disadvantages:With the recent initiative of moving to password-free authentication methods, managed identity authentication is becoming more important.
Testing Guide
History Notes
[Profile]
az login: Passing the managed identity ID with--usernameis deprecated and will be removed in a future release. Please use--client-id,--object-idor--resource-idinstead