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

Azure.Core: AzureNamedKeyCredential #17368

Closed
jsquire opened this issue Mar 16, 2021 · 0 comments · Fixed by #17548
Closed

Azure.Core: AzureNamedKeyCredential #17368

jsquire opened this issue Mar 16, 2021 · 0 comments · Fixed by #17548
Assignees
Labels
Azure.Core blocking-release Blocks release Client This issue points to a problem in the data-plane of the library. feature-request This issue requires a new behavior in the product in order be resolved.
Milestone

Comments

@jsquire
Copy link
Member

jsquire commented Mar 16, 2021

Summary

When using a shared key for authorization, some services require that the name of the key be used as a component of the algorithm to form the authorization token. For these cases, AzureKeyCredential and AzureSasCredential aren't adequate as they track only a single value. A new credential type, AzureNamedKeyCredential has been approved to address this gap.

Goals

  • Offer a token credential suitable for working with any service needing a named key that follows patterns established by the other credential types offered in Azure.Core and Azure.Identity.

  • Developers should be able to construct the credential by providing a string-based name and key.

  • Developers should be able to update the name and key after construction to support rolling credentials or using a new access policy. Updating credential information should be done in-place and not require creating a new credential instance.

  • Developers should be able to read the name of they key, in order to support caching within an application so that it can be easily identified when updates are needed.

  • The Azure SDKs should be able to read the name and key, ensuring they reflect the most current values.

  • Support updates and reads concurrently with consistent behavior. Developers should be able to update the credential at any time without concern for whether the SDK is reading from it.

Non-Goals

  • Providing a friendly and discoverable means for developers to read the key from the credential; it is preferable to hide the key or discourage use.

  • Allowing the name or key to be updated independently; both elements will be required when updating a credential.

Success Criteria

  • An AzureNamedKeyCredential type has been implemented, following language guidelines and idioms.

  • The tests necessary for its validation have been created and pass reliably.

  • The existing test suite continues to produce deterministic results and pass reliably.

Related

@jsquire jsquire added Client This issue points to a problem in the data-plane of the library. Azure.Core needs-team-triage Workflow: This issue needs the team to triage. labels Mar 16, 2021
@xiangyan99 xiangyan99 self-assigned this Mar 24, 2021
@xiangyan99 xiangyan99 added feature-request This issue requires a new behavior in the product in order be resolved. and removed needs-team-triage Workflow: This issue needs the team to triage. labels Mar 24, 2021
@xiangyan99 xiangyan99 added this to the Backlog milestone Mar 24, 2021
@rakshith91 rakshith91 assigned rakshith91 and unassigned xiangyan99 Mar 24, 2021
@rakshith91 rakshith91 modified the milestones: Backlog, [2021] April Mar 24, 2021
@xiangyan99 xiangyan99 modified the milestones: [2021] April, [2021] May Mar 30, 2021
@rakshith91 rakshith91 added the blocking-release Blocks release label Apr 12, 2021
@github-actions github-actions bot locked and limited conversation to collaborators Apr 12, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Azure.Core blocking-release Blocks release Client This issue points to a problem in the data-plane of the library. feature-request This issue requires a new behavior in the product in order be resolved.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants