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

Post CMS Connect-a-thon 5 #28

Merged
merged 110 commits into from
Jul 19, 2024
Merged

Post CMS Connect-a-thon 5 #28

merged 110 commits into from
Jul 19, 2024

Conversation

JoeShook
Copy link
Collaborator

The major change is Client Secret rollover when an Authorize request is signed with a valid certificate but the original secrets recorded in the ClientSecret table is marked as expired. UDAP certificate updates are seemless architecturally. So during the /authorize flow checks have been added to determine if the Secrets need to be updated. The updated expiration dates will be pulled from the certificate after the client_assertion signature has been validated.

This PR also contains new mTLS CA build scripts and a mTLS.Proxy.Server so developers can experiment and compare the mechanics of mTLS vs UDAP. It allows us to demonstrate that UDAP is also a proof-of-posession protocol on the server and at the client. UDAP is easier to troubleshoot because it communicates as a REST protocol. When a client certiificate fails in UDAP we will get a HTTP 401 status code. When mTLS fails we will have to resort to tools like Wireshark to start understanding the failure. It is just a little more mysterious to troubleshoot. Also mTLS tends to terminate at the loadbalancer where UDAP tends to terminate at the server or a proxy it is representing. This increases the confidence that a client it talking to the actual tenant instance. The possiblity for a loadbalancer misconfiguration in a multitenant environment can reduce the validity of proof-of-possesion at the server side.

JoeShook and others added 30 commits May 18, 2024 13:17
updated-dependencies:
- dependency-name: Swashbuckle.AspNetCore
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
…uckle.AspNetCore-6.6.2

Bump Swashbuckle.AspNetCore from 6.6.1 to 6.6.2
Bumps [Microsoft.NET.Test.Sdk](https://github.com/microsoft/vstest) from 17.9.0 to 17.10.0.
- [Release notes](https://github.com/microsoft/vstest/releases)
- [Changelog](https://github.com/microsoft/vstest/blob/main/docs/releases.md)
- [Commits](microsoft/vstest@v17.9.0...v17.10.0)

---
updated-dependencies:
- dependency-name: Microsoft.NET.Test.Sdk
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Bumps [Udap.Client](https://github.com/JoeShook/udap-dotnet), Udap.Common and Udap.Util. These dependencies needed to be updated together.

Updates `Udap.Client` from 0.3.47 to 0.3.48
- [Commits](v0.3.47...v0.3.48)

Updates `Udap.Common` from 0.3.47 to 0.3.48

Updates `Udap.Util` from 0.3.47 to 0.3.48

---
updated-dependencies:
- dependency-name: Udap.Client
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: Udap.Common
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: Udap.Util
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Bumps [FluentAssertions.Analyzers](https://github.com/fluentassertions/fluentassertions.analyzers) from 0.31.0 to 0.32.0.
- [Release notes](https://github.com/fluentassertions/fluentassertions.analyzers/releases)
- [Commits](fluentassertions/fluentassertions.analyzers@v0.31.0...v0.32.0)

---
updated-dependencies:
- dependency-name: FluentAssertions.Analyzers
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Bumps [xunit](https://github.com/xunit/xunit) from 2.8.0 to 2.8.1.
- [Commits](xunit/xunit@2.8.0...2.8.1)

---
updated-dependencies:
- dependency-name: xunit
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Bumps [Microsoft.IdentityModel.Tokens](https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet) from 7.5.2 to 7.6.0.
- [Release notes](https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/releases)
- [Changelog](https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/blob/dev/CHANGELOG.md)
- [Commits](AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet@7.5.2...7.6.0)

---
updated-dependencies:
- dependency-name: Microsoft.IdentityModel.Tokens
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
…workCore

Bumps [Microsoft.EntityFrameworkCore.InMemory](https://github.com/dotnet/efcore) and [Microsoft.EntityFrameworkCore](https://github.com/dotnet/efcore). These dependencies needed to be updated together.

Updates `Microsoft.EntityFrameworkCore.InMemory` from 8.0.5 to 8.0.6
- [Release notes](https://github.com/dotnet/efcore/releases)
- [Commits](dotnet/efcore@v8.0.5...v8.0.6)

Updates `Microsoft.EntityFrameworkCore` from 8.0.5 to 8.0.6
- [Release notes](https://github.com/dotnet/efcore/releases)
- [Commits](dotnet/efcore@v8.0.5...v8.0.6)

---
updated-dependencies:
- dependency-name: Microsoft.EntityFrameworkCore.InMemory
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: Microsoft.EntityFrameworkCore
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Bumps [Microsoft.AspNetCore.Mvc.Testing](https://github.com/dotnet/aspnetcore) from 8.0.5 to 8.0.6.
- [Release notes](https://github.com/dotnet/aspnetcore/releases)
- [Changelog](https://github.com/dotnet/aspnetcore/blob/main/docs/ReleasePlanning.md)
- [Commits](dotnet/aspnetcore@v8.0.5...v8.0.6)

---
updated-dependencies:
- dependency-name: Microsoft.AspNetCore.Mvc.Testing
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
…oft.NET.Test.Sdk-17.10.0

Bump Microsoft.NET.Test.Sdk from 17.9.0 to 17.10.0
…8286cd2757

Bump Udap.Client, Udap.Common and Udap.Util
…Assertions.Analyzers-0.32.0

Bump FluentAssertions.Analyzers from 0.31.0 to 0.32.0
…oft.IdentityModel.Tokens-7.6.0

Bump Microsoft.IdentityModel.Tokens from 7.5.2 to 7.6.0
…c8bcf64f23

Bump Microsoft.EntityFrameworkCore.InMemory and Microsoft.EntityFrameworkCore
…oft.AspNetCore.Mvc.Testing-8.0.6

Bump Microsoft.AspNetCore.Mvc.Testing from 8.0.5 to 8.0.6
Bumps [xunit.runner.visualstudio](https://github.com/xunit/visualstudio.xunit) from 2.8.0 to 2.8.1.
- [Release notes](https://github.com/xunit/visualstudio.xunit/releases)
- [Commits](xunit/visualstudio.xunit@2.8.0...2.8.1)

---
updated-dependencies:
- dependency-name: xunit.runner.visualstudio
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
…runner.visualstudio-2.8.1

Bump xunit.runner.visualstudio from 2.8.0 to 2.8.1
Bumps [Microsoft.EntityFrameworkCore](https://github.com/dotnet/efcore) from 8.0.5 to 8.0.6.
- [Release notes](https://github.com/dotnet/efcore/releases)
- [Commits](dotnet/efcore@v8.0.5...v8.0.6)

---
updated-dependencies:
- dependency-name: Microsoft.EntityFrameworkCore
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Bumps [Microsoft.IdentityModel.JsonWebTokens](https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet) from 7.5.2 to 7.6.0.
- [Release notes](https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/releases)
- [Changelog](https://github.com/AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet/blob/dev/CHANGELOG.md)
- [Commits](AzureAD/azure-activedirectory-identitymodel-extensions-for-dotnet@7.5.2...7.6.0)

---
updated-dependencies:
- dependency-name: Microsoft.IdentityModel.JsonWebTokens
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Bumps [Microsoft.AspNetCore.DataProtection.Abstractions](https://github.com/dotnet/aspnetcore) from 8.0.5 to 8.0.6.
- [Release notes](https://github.com/dotnet/aspnetcore/releases)
- [Changelog](https://github.com/dotnet/aspnetcore/blob/main/docs/ReleasePlanning.md)
- [Commits](dotnet/aspnetcore@v8.0.5...v8.0.6)

---
updated-dependencies:
- dependency-name: Microsoft.AspNetCore.DataProtection.Abstractions
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Bumps [Microsoft.Data.SqlClient](https://github.com/dotnet/sqlclient) from 5.2.0 to 5.2.1.
- [Release notes](https://github.com/dotnet/sqlclient/releases)
- [Changelog](https://github.com/dotnet/SqlClient/blob/main/CHANGELOG.md)
- [Commits](dotnet/SqlClient@V5.2.0...v5.2.1)

---
updated-dependencies:
- dependency-name: Microsoft.Data.SqlClient
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Bumps [dotnet-ef](https://github.com/dotnet/efcore) from 8.0.5 to 8.0.6.
- [Release notes](https://github.com/dotnet/efcore/releases)
- [Commits](dotnet/efcore@v8.0.5...v8.0.6)

---
updated-dependencies:
- dependency-name: dotnet-ef
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Bumps [MudBlazor](https://github.com/MudBlazor/MudBlazor) from 6.19.1 to 6.20.0.
- [Release notes](https://github.com/MudBlazor/MudBlazor/releases)
- [Changelog](https://github.com/MudBlazor/MudBlazor/blob/dev/CHANGELOG.md)
- [Commits](MudBlazor/MudBlazor@v6.19.1...v6.20.0)

---
updated-dependencies:
- dependency-name: MudBlazor
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <[email protected]>
Bumps [Microsoft.AspNetCore.Authentication.JwtBearer](https://github.com/dotnet/aspnetcore) from 8.0.3 to 8.0.6.
- [Release notes](https://github.com/dotnet/aspnetcore/releases)
- [Changelog](https://github.com/dotnet/aspnetcore/blob/main/docs/ReleasePlanning.md)
- [Commits](dotnet/aspnetcore@v8.0.3...v8.0.6)

---
updated-dependencies:
- dependency-name: Microsoft.AspNetCore.Authentication.JwtBearer
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
dependabot bot and others added 29 commits July 9, 2024 12:31
Bumps xunit.runner.visualstudio from 2.8.1 to 2.8.2.

---
updated-dependencies:
- dependency-name: xunit.runner.visualstudio
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Deployed first mtls.fhirlabs.net proxy to GCP.
…runner.visualstudio-2.8.2

Bump xunit.runner.visualstudio from 2.8.1 to 2.8.2
Bumps dotnet-ef from 8.0.6 to 8.0.7.

---
updated-dependencies:
- dependency-name: dotnet-ef
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
…entityModel.Tokens

Bumps Microsoft.IdentityModel.Protocols.OpenIdConnect and Microsoft.IdentityModel.Tokens. These dependencies needed to be updated together.

Updates `Microsoft.IdentityModel.Protocols.OpenIdConnect` from 7.6.2 to 7.6.3

Updates `Microsoft.IdentityModel.Tokens` from 7.6.2 to 7.6.3

---
updated-dependencies:
- dependency-name: Microsoft.IdentityModel.Protocols.OpenIdConnect
  dependency-type: direct:production
  update-type: version-update:semver-patch
- dependency-name: Microsoft.IdentityModel.Tokens
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Bumps Microsoft.AspNetCore.Authentication.OpenIdConnect from 8.0.6 to 8.0.7.

---
updated-dependencies:
- dependency-name: Microsoft.AspNetCore.Authentication.OpenIdConnect
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
Allow the consumer to pass a fully build UDAP well-known url with community parameter and handle it.
…oft.AspNetCore.Authentication.OpenIdConnect-8.0.7

Bump Microsoft.AspNetCore.Authentication.OpenIdConnect from 8.0.6 to 8.0.7
…799d6280f1

Bump Microsoft.IdentityModel.Protocols.OpenIdConnect and Microsoft.IdentityModel.Tokens
…-ef-8.0.7

Bump dotnet-ef from 8.0.6 to 8.0.7
Bumps Microsoft.AspNetCore.DataProtection.Abstractions from 8.0.6 to 8.0.7.

---
updated-dependencies:
- dependency-name: Microsoft.AspNetCore.DataProtection.Abstractions
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <[email protected]>
…oft.AspNetCore.DataProtection.Abstractions-8.0.7

Bump Microsoft.AspNetCore.DataProtection.Abstractions from 8.0.6 to 8.0.7
…munity parameter and handle it.

Continued with more paths that need this feature.
This is a result of me testing what it would be like to host a community based metadata URL in a Directory like National Directory.
A client registers and two entries are set in the Secrets table.  Those entries contain an expires column that is the same as the UDAP client certificate expiration.  Some time in the future the client Authorizes with a signed client_assertion.  On the IdentityServer side the secrets are resolved from the secret table.  But because they are expired the secrets are not available to the UdapJwtSecretValidator.   The validator needs to handle this situation by informing the Client Store to updated the secrets in supplied by the signed client_assertion.  Of course this should not happen until the signed client_assertion has been validated with the JsonWebTokenHandler.  Once this is done the expiration dates for the existing secrets can be updated and then the lookups for anchors related to the community can be resolved and finally the x509 Chaining process can be validated.
Need it for access to the pre-release System.CommandLine packages
Need it for access to the pre-release System.CommandLine packages
Post CMS Connect-a-thon 5
@JoeShook JoeShook merged commit 6116c6d into udap-tools:main Jul 19, 2024
3 checks passed
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.

1 participant