From 408da6151fb595f72da6cec4b692d543d66773d4 Mon Sep 17 00:00:00 2001 From: Yevgen Kreshchenko <147668911+yevgenkre@users.noreply.github.com> Date: Tue, 11 Jun 2024 12:10:34 -0400 Subject: [PATCH] Updating the parameter name to audience_for_saml_response (#41) * .NET Framework 471 architecture added. Version bump to 1.2.3 * renaming the audience for saml response parameter * fixing the wrong casing * version bump --- DuoUniversal.Tests/TestGenerateAuthUrl.cs | 6 +++--- DuoUniversal/Client.cs | 20 ++++++++++---------- DuoUniversal/DuoUniversal.csproj | 6 +++--- DuoUniversal/Labels.cs | 2 +- 4 files changed, 17 insertions(+), 17 deletions(-) diff --git a/DuoUniversal.Tests/TestGenerateAuthUrl.cs b/DuoUniversal.Tests/TestGenerateAuthUrl.cs index c62a58d..1ae60c7 100644 --- a/DuoUniversal.Tests/TestGenerateAuthUrl.cs +++ b/DuoUniversal.Tests/TestGenerateAuthUrl.cs @@ -36,7 +36,7 @@ public void TestSuccess(string username) [TestCase("user@foo.bar")] public void TestSuccessWithIssuer(string username) { - Client clientWithIssuer = new ClientBuilder(CLIENT_ID, CLIENT_SECRET, API_HOST, REDIRECT_URI).UseAudienceIssuer("http://issuer").Build(); + Client clientWithIssuer = new ClientBuilder(CLIENT_ID, CLIENT_SECRET, API_HOST, REDIRECT_URI).UseAudienceForSamlResponse("http://issuer").Build(); string authUri = clientWithIssuer.GenerateAuthUri(username, STATE); Assert.True(Uri.IsWellFormedUriString(authUri, UriKind.Absolute)); Assert.True(authUri.StartsWith($"https://{API_HOST}")); @@ -46,7 +46,7 @@ public void TestSuccessWithIssuer(string username) [TestCase(" ")] public void TestInvalidIssuer(string issuer) { - Client clientWithIssuer = new ClientBuilder(CLIENT_ID, CLIENT_SECRET, API_HOST, REDIRECT_URI).UseAudienceIssuer(issuer).Build(); + Client clientWithIssuer = new ClientBuilder(CLIENT_ID, CLIENT_SECRET, API_HOST, REDIRECT_URI).UseAudienceForSamlResponse(issuer).Build(); Assert.Throws(() => clientWithIssuer.GenerateAuthUri("username", STATE)); } @@ -54,7 +54,7 @@ public void TestInvalidIssuer(string issuer) [TestCase(null)] public void TestNullIssuer(string issuer) { - Client clientWithIssuer = new ClientBuilder(CLIENT_ID, CLIENT_SECRET, API_HOST, REDIRECT_URI).UseAudienceIssuer(issuer).Build(); + Client clientWithIssuer = new ClientBuilder(CLIENT_ID, CLIENT_SECRET, API_HOST, REDIRECT_URI).UseAudienceForSamlResponse(issuer).Build(); string authUri = clientWithIssuer.GenerateAuthUri("username", STATE); Assert.True(Uri.IsWellFormedUriString(authUri, UriKind.Absolute)); } diff --git a/DuoUniversal/Client.cs b/DuoUniversal/Client.cs index 3846922..6acec8f 100644 --- a/DuoUniversal/Client.cs +++ b/DuoUniversal/Client.cs @@ -39,7 +39,7 @@ public class Client internal bool UseDuoCodeAttribute { get; set; } = false; - internal string AudienceIssuer { get; set; } = null; + internal string AudienceForSamlResponse { get; set; } = null; internal Client() { @@ -85,7 +85,7 @@ public async Task DoHealthCheck(bool handleException = true) /// A URL to redirect the user's browser to public string GenerateAuthUri(string username, string state) { - ValidateAuthUriInputs(username, state, AudienceIssuer); + ValidateAuthUriInputs(username, state, AudienceForSamlResponse); string authEndpoint = CustomizeApiUri(AUTH_ENDPOINT); @@ -203,9 +203,9 @@ private string GenerateAuthJwt(string username, string state, string authEndpoin }; // issuer parameter is used for the Epic Hyperdrive integration only - if (AudienceIssuer != null) + if (AudienceForSamlResponse != null) { - additionalClaims[Labels.AUDIENCE_ISSUER] = AudienceIssuer; + additionalClaims[Labels.AUDIENCE_FOR_SAML_RESPONSE] = AudienceForSamlResponse; } if (UseDuoCodeAttribute) @@ -311,7 +311,7 @@ public class ClientBuilder private bool _sslCertValidation = true; private X509Certificate2Collection _customRoots = null; private IWebProxy proxy = null; - private string _audienceIssuer = null; + private string _audienceForSamlResponse = null; // For testing only @@ -425,13 +425,13 @@ public ClientBuilder UseHttpProxy(IWebProxy proxy) } /// - /// Set an audienceIssuer value to generate a SAML response for the Epic integration + /// Set an audienceForSamlResponse value to generate a SAML response for the Epic integration /// - /// Specific parameter for the Epic integration for the SAML response generation + /// Specific parameter for the Epic integration for the SAML response generation /// The ClientBuilder - public ClientBuilder UseAudienceIssuer(string audienceIssuer) + public ClientBuilder UseAudienceForSamlResponse(string audienceForSamlResponse) { - _audienceIssuer = audienceIssuer; + _audienceForSamlResponse = audienceForSamlResponse; return this; } @@ -451,7 +451,7 @@ public Client Build() ApiHost = _apiHost, RedirectUri = _redirectUri, UseDuoCodeAttribute = _useDuoCodeAttribute, - AudienceIssuer = _audienceIssuer + AudienceForSamlResponse = _audienceForSamlResponse }; var httpClient = BuildHttpClient(); diff --git a/DuoUniversal/DuoUniversal.csproj b/DuoUniversal/DuoUniversal.csproj index 2152e34..9beb6dd 100644 --- a/DuoUniversal/DuoUniversal.csproj +++ b/DuoUniversal/DuoUniversal.csproj @@ -6,7 +6,7 @@ netstandard2.0;net471 DuoUniversal - 1.2.4 + 1.2.5 Duo Security Duo Security Cisco Systems, Inc. and/or its affiliates @@ -26,9 +26,9 @@ - + - + diff --git a/DuoUniversal/Labels.cs b/DuoUniversal/Labels.cs index 0ce7d33..908eb7d 100644 --- a/DuoUniversal/Labels.cs +++ b/DuoUniversal/Labels.cs @@ -41,6 +41,6 @@ internal class Labels public const string DUO_UNAME = "duo_uname"; public const string PREFERRED_USERNAME = "preferred_username"; public const string USE_DUO_CODE_ATTRIBUTE = "use_duo_code_attribute"; - public const string AUDIENCE_ISSUER = "issuer"; + public const string AUDIENCE_FOR_SAML_RESPONSE = "audience_for_saml_response"; } }