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

Add CaseSensitiveClaimsIdentity type. #2700

Merged
merged 24 commits into from
Jul 15, 2024
Merged

Add CaseSensitiveClaimsIdentity type. #2700

merged 24 commits into from
Jul 15, 2024

Conversation

pmaytak
Copy link
Contributor

@pmaytak pmaytak commented Jul 11, 2024

A derived ClaimsIdentity where claim retrieval is case-sensitive. The current ClaimsIdentity retrieves claims in a case-insensitive manner which is different than querying the underlying SecurityToken. The CaseSensitiveClaimsIdentity provides consistent retrieval logic between the SecurityToken and ClaimsIdentity.

@pmaytak pmaytak changed the title Add CaseSensitiveClaimsIdentity. Update JsonWebTokenHandler. Add CaseSensitiveClaimsIdentity type. Jul 11, 2024
@pmaytak pmaytak marked this pull request as ready for review July 11, 2024 16:44
@pmaytak pmaytak requested a review from a team as a code owner July 11, 2024 16:44
…dentityTests.cs

Co-authored-by: msbw2 <brettwhite@microsoft.com>
Copy link
Collaborator

@jennyf19 jennyf19 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

@jennyf19 jennyf19 merged commit afb9c59 into dev Jul 15, 2024
4 checks passed
keegan-caruso pushed a commit that referenced this pull request Jul 15, 2024
* Add CaseSensitiveClaimsIdentity. Update JsonWebTokenHandler.

* Move switch to a separate class. Update claims identity creation code.

* Add test.

* Update AppContextSwitches

* Update test/Microsoft.IdentityModel.Tokens.Tests/CaseSensitiveClaimsIdentityTests.cs

Co-authored-by: msbw2 <brettwhite@microsoft.com>

* Update comments.

* Update ClaimsIdentity code creation in src.

* Add tests.

* Update tests to use correct types.

* Add SecurityToken property to CsClaimsIdentity.

* Update tests to use CsClaimsIdentity.

* Refactor code into ClaimsIdentityFactory.

* Update tests.

* Update ClaimsIdentityFactory.

* Fix tests.

* Update tests for CaseSensitiveClaimsIdentity

* ignore SecurityToken in IdentityComparer

* Set security token in ClaimsIdentityFactory. Add tests.

* Apply suggestions from code review

* Update test.

---------

Co-authored-by: msbw2 <brettwhite@microsoft.com>
Co-authored-by: Keegan Caruso <keegancaruso@microsoft.com>
pmaytak added a commit that referenced this pull request Jul 15, 2024
* Add CaseSensitiveClaimsIdentity. Update JsonWebTokenHandler.

* Move switch to a separate class. Update claims identity creation code.

* Add test.

* Update AppContextSwitches

* Update test/Microsoft.IdentityModel.Tokens.Tests/CaseSensitiveClaimsIdentityTests.cs

Co-authored-by: msbw2 <brettwhite@microsoft.com>

* Update comments.

* Update ClaimsIdentity code creation in src.

* Add tests.

* Update tests to use correct types.

* Add SecurityToken property to CsClaimsIdentity.

* Update tests to use CsClaimsIdentity.

* Refactor code into ClaimsIdentityFactory.

* Update tests.

* Update ClaimsIdentityFactory.

* Fix tests.

* Update tests for CaseSensitiveClaimsIdentity

* ignore SecurityToken in IdentityComparer

* Set security token in ClaimsIdentityFactory. Add tests.

* Apply suggestions from code review

* Update test.

---------

Co-authored-by: msbw2 <brettwhite@microsoft.com>
Co-authored-by: Keegan Caruso <keegancaruso@microsoft.com>
@jennyf19 jennyf19 added this to the 8.0.0 milestone Jul 15, 2024
jennyf19 pushed a commit that referenced this pull request Jul 16, 2024
* Add CaseSensitiveClaimsIdentity type. (#2700)

* Add CaseSensitiveClaimsIdentity. Update JsonWebTokenHandler.

* Move switch to a separate class. Update claims identity creation code.

* Add test.

* Update AppContextSwitches

* Update test/Microsoft.IdentityModel.Tokens.Tests/CaseSensitiveClaimsIdentityTests.cs

Co-authored-by: msbw2 <brettwhite@microsoft.com>

* Update comments.

* Update ClaimsIdentity code creation in src.

* Add tests.

* Update tests to use correct types.

* Add SecurityToken property to CsClaimsIdentity.

* Update tests to use CsClaimsIdentity.

* Refactor code into ClaimsIdentityFactory.

* Update tests.

* Update ClaimsIdentityFactory.

* Fix tests.

* Update tests for CaseSensitiveClaimsIdentity

* ignore SecurityToken in IdentityComparer

* Set security token in ClaimsIdentityFactory. Add tests.

* Apply suggestions from code review

* Update test.

---------

Co-authored-by: msbw2 <brettwhite@microsoft.com>
Co-authored-by: Keegan Caruso <keegancaruso@microsoft.com>

* Make case sensitive claims identity an opt-in

* Revert using CaseSensitiveClaimsIdentity by default in tests

* Fix test name

* Update src/Microsoft.IdentityModel.Tokens/AppContextSwitches.cs

Co-authored-by: Peter <34331512+pmaytak@users.noreply.github.com>

* Update src/Microsoft.IdentityModel.Tokens/AppContextSwitches.cs

Co-authored-by: Peter <34331512+pmaytak@users.noreply.github.com>

* Call TVP.CreateClaimsIdentity to support users that have overloaded. (#2716)

* Call TVP.CreateClaimsIdentity to support users that have overloaded.

* picked up SAML changes and TokenValidationResult

* updated JwtSecurityTokenHandler, reverted tests and removed method.

* touched up tests

---------

Co-authored-by: id4s <user@contoso.com>

* fix reference

* Update src/Microsoft.IdentityModel.Tokens.Saml/Saml2/Saml2SecurityTokenHandler.cs

Co-authored-by: Peter <34331512+pmaytak@users.noreply.github.com>

---------

Co-authored-by: Peter <34331512+pmaytak@users.noreply.github.com>
Co-authored-by: msbw2 <brettwhite@microsoft.com>
Co-authored-by: Keegan Caruso <keegancaruso@microsoft.com>
Co-authored-by: BrentSchmaltz <brentschmaltz@hotmail.com>
Co-authored-by: id4s <user@contoso.com>
jennyf19 pushed a commit that referenced this pull request Jul 16, 2024
* Add CaseSensitiveClaimsIdentity type. (#2700)

* Add CaseSensitiveClaimsIdentity. Update JsonWebTokenHandler.

* Move switch to a separate class. Update claims identity creation code.

* Add test.

* Update AppContextSwitches

* Update test/Microsoft.IdentityModel.Tokens.Tests/CaseSensitiveClaimsIdentityTests.cs

Co-authored-by: msbw2 <brettwhite@microsoft.com>

* Update comments.

* Update ClaimsIdentity code creation in src.

* Add tests.

* Update tests to use correct types.

* Add SecurityToken property to CsClaimsIdentity.

* Update tests to use CsClaimsIdentity.

* Refactor code into ClaimsIdentityFactory.

* Update tests.

* Update ClaimsIdentityFactory.

* Fix tests.

* Update tests for CaseSensitiveClaimsIdentity

* ignore SecurityToken in IdentityComparer

* Set security token in ClaimsIdentityFactory. Add tests.

* Apply suggestions from code review

* Update test.

---------

Co-authored-by: msbw2 <brettwhite@microsoft.com>
Co-authored-by: Keegan Caruso <keegancaruso@microsoft.com>

* Update.

* Update.

* Update.

* Update.

* Call TVP.CreateClaimsIdentity to support users that have overloaded. (#2716)

* Call TVP.CreateClaimsIdentity to support users that have overloaded.

* picked up SAML changes and TokenValidationResult

* updated JwtSecurityTokenHandler, reverted tests and removed method.

* touched up tests

---------

Co-authored-by: id4s <user@contoso.com>

* Update src/Microsoft.IdentityModel.Tokens.Saml/Saml2/Saml2SecurityTokenHandler.cs

---------

Co-authored-by: msbw2 <brettwhite@microsoft.com>
Co-authored-by: Keegan Caruso <keegancaruso@microsoft.com>
Co-authored-by: BrentSchmaltz <brentschmaltz@hotmail.com>
Co-authored-by: id4s <user@contoso.com>
@pmaytak pmaytak deleted the pmaytak/cs-claims branch July 17, 2024 02:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

7 participants