From ada10a344dfc22fc90b33120c44573788ce09d79 Mon Sep 17 00:00:00 2001 From: Arnab Dutta Date: Thu, 7 Dec 2023 14:09:22 +0530 Subject: [PATCH 1/5] docs: update readme -- steps to test janssen IdP with self-signed certificate #6976 (#6977) Signed-off-by: Arnab Dutta --- demos/jans-tarp/README.md | 13 ++++++++++--- .../docs/images/untrusted_cert_risk.png | Bin 0 -> 105946 bytes 2 files changed, 10 insertions(+), 3 deletions(-) create mode 100644 demos/jans-tarp/docs/images/untrusted_cert_risk.png diff --git a/demos/jans-tarp/README.md b/demos/jans-tarp/README.md index ebf23cbd507..f086bf060ef 100644 --- a/demos/jans-tarp/README.md +++ b/demos/jans-tarp/README.md @@ -40,6 +40,15 @@ The extension can directly installed on Firefox browser from https://addons.mozi 2. Click the `This Firefox` option. 3. Click the `Load Temporary Add-on` button, then select the `jans-tarp-firefox-v{}.zip` zip file from `/jans-tarp/release/`. +##### Note: + +When you are testing Janssen IdP with self-signed cert then follow below steps before client registration using jans-tarp. + +1. Open the OP_HOST url on browser. +2. Accept the security risk due to self-signed cert and continue. + +![self-signed cert risk](./docs/images/untrusted_cert_risk.png) + ## Testing with Keycloak (installed on localhost) 1. Login to KC admin console @@ -52,6 +61,4 @@ The extension can directly installed on Firefox browser from https://addons.mozi ![Client scopes](./docs/images/kc_add_scope.png) - -Suggestions and pull requests are welcomed!. - +Once above configuration is done, jans-tarp can be used test KC IdP. diff --git a/demos/jans-tarp/docs/images/untrusted_cert_risk.png b/demos/jans-tarp/docs/images/untrusted_cert_risk.png new file mode 100644 index 0000000000000000000000000000000000000000..46c481d49bcd7d7e0bdaee00321847e42a42834f GIT binary patch literal 105946 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

We+{60N0REpGVq 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 z Date: Thu, 7 Dec 2023 09:32:53 +0000 Subject: [PATCH 2/5] chore(deps): bump gitpython from 3.1.30 to 3.1.37 in /docs (#6233) Bumps [gitpython](https://github.com/gitpython-developers/GitPython) from 3.1.30 to 3.1.37. - [Release notes](https://github.com/gitpython-developers/GitPython/releases) - [Changelog](https://github.com/gitpython-developers/GitPython/blob/main/CHANGES) - [Commits](https://github.com/gitpython-developers/GitPython/compare/3.1.30...3.1.37) --- updated-dependencies: - dependency-name: gitpython dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Mohammad Abudayyeh <47318409+moabu@users.noreply.github.com> --- docs/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/requirements.txt b/docs/requirements.txt index a69985dc40f..3dcccd74327 100644 --- a/docs/requirements.txt +++ b/docs/requirements.txt @@ -28,7 +28,7 @@ verspec==0.1.0 --hash=sha256:741877d5633cc9464c45a469ae2a31e801e6dbbaa85b9675d48 watchdog==2.1.9 --hash=sha256:4f4e1c4aa54fb86316a62a87b3378c025e228178d55481d30d857c6c438897d6 zipp==3.8.1 --hash=sha256:47c40d7fe183a6f21403a199b3e4192cca5774656965b0a4988ad2f8feb5f009 babel==2.10.3 --hash=sha256:ff56f4892c1c4bf0d814575ea23471c230d544203c7748e8c68f0089478d48eb -GitPython==3.1.30 --hash=sha256:cd455b0000615c60e286208ba540271af9fe531fa6a87cc590a7298785ab2882 +GitPython==3.1.37 --hash=sha256:5f4c4187de49616d710a77e98ddf17b4782060a1788df441846bddefbb89ab33 --hash=sha256:f9b9ddc0761c125d5780eab2d64be4873fc6817c2899cbcb34b02344bdc7bc54 requests==2.28.1 --hash=sha256:8fefa2a1a1365bf5520aac41836fbee479da67864514bdb821f31ce07ce65349 pytz==2022.2.1 --hash=sha256:220f481bdafa09c3955dfbdddb7b57780e9a94f5127e35456a48589b9e0c0197 gitdb==4.0.9 --hash=sha256:8033ad4e853066ba6ca92050b9df2f89301b8fc8bf7e9324d412a63f8bf1a8fd From f46776f0603424648b0f8ef4ffd4c4b773b301c3 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Dec 2023 09:33:58 +0000 Subject: [PATCH 3/5] chore(deps): bump gitpython from 3.1.27 to 3.1.37 in /demos/jans-tent (#6232) Bumps [gitpython](https://github.com/gitpython-developers/GitPython) from 3.1.27 to 3.1.37. - [Release notes](https://github.com/gitpython-developers/GitPython/releases) - [Changelog](https://github.com/gitpython-developers/GitPython/blob/main/CHANGES) - [Commits](https://github.com/gitpython-developers/GitPython/compare/3.1.27...3.1.37) --- updated-dependencies: - dependency-name: gitpython dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Mohammad Abudayyeh <47318409+moabu@users.noreply.github.com> Co-authored-by: mo-auto <54212639+mo-auto@users.noreply.github.com> --- demos/jans-tent/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demos/jans-tent/requirements.txt b/demos/jans-tent/requirements.txt index bc311b8a662..434b8996382 100644 --- a/demos/jans-tent/requirements.txt +++ b/demos/jans-tent/requirements.txt @@ -26,7 +26,7 @@ Flask==2.2.2 flask-oidc==1.4.0 future==0.18.3 gitdb==4.0.9 -GitPython==3.1.27 +GitPython==3.1.37 h11==0.13.0 httplib2==0.21.0 idna==3.3 From 9953a36022518e4697c3774b0caf29387751b957 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 7 Dec 2023 10:43:56 +0000 Subject: [PATCH 4/5] chore(deps): bump ipython from 8.4.0 to 8.10.0 in /demos/jans-tent (#3833) Bumps [ipython](https://github.com/ipython/ipython) from 8.4.0 to 8.10.0. - [Release notes](https://github.com/ipython/ipython/releases) - [Commits](https://github.com/ipython/ipython/compare/8.4.0...8.10.0) --- updated-dependencies: - dependency-name: ipython dependency-type: direct:production ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Mohammad Abudayyeh <47318409+moabu@users.noreply.github.com> --- demos/jans-tent/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/demos/jans-tent/requirements.txt b/demos/jans-tent/requirements.txt index 434b8996382..68f9c5f27a3 100644 --- a/demos/jans-tent/requirements.txt +++ b/demos/jans-tent/requirements.txt @@ -34,7 +34,7 @@ importlib-metadata==4.12.0 iniconfig==1.1.1 install==1.3.5 ipdb==0.13.9 -ipython==8.4.0 +ipython==8.10.0 ipython-genutils==0.2.0 isort==5.10.1 itsdangerous==2.0.0 From ad3041d35134c7eca49379267c7fa1835e11a989 Mon Sep 17 00:00:00 2001 From: pujavs <43700552+pujavs@users.noreply.github.com> Date: Thu, 7 Dec 2023 16:53:45 +0530 Subject: [PATCH 5/5] fix(kc-saml-plugin): error while updating SAML TR (#6974) * fix(config-api): source LDAP server test * feat(config-api): pom changes for org json Signed-off-by: pujavs * fix(config-api): sync with main Signed-off-by: pujavs * docs(config-api): issue 6382 - regen spec to reflect new fields in ClientAttributes Signed-off-by: pujavs * feat(config-api): json dependency changes Signed-off-by: pujavs * fix(config-api): json build issue and saml plugin swagger spec annotation Signed-off-by: pujavs * docs(config-api): auth featureFlags should be described as enum in spec Signed-off-by: pujavs * docs(saml-plugin): saml swagger spec rectification #6604 Signed-off-by: pujavs * fix(config-api): made clientId optional for TR and customScript changes for returning types Signed-off-by: pujavs * fix(config-api): new endpoint to return featureflag - issue#6612 Signed-off-by: pujavs * fix(config-api): feature flag endpoint Signed-off-by: pujavs * fix(config-api): feature flag endpoint Signed-off-by: pujavs * fix(config-api): feature flag endpoint Signed-off-by: pujavs * fix(kc-saml-plugin): setting KC SP metadata url and fixing openapi spec Signed-off-by: pujavs * fix(config-api): kc-saml-plugin cleanup and removed redundany dependency Signed-off-by: pujavs --------- Signed-off-by: pujavs Co-authored-by: Mohammad Abudayyeh <47318409+moabu@users.noreply.github.com> --- .../docs/jans-config-api-swagger.yaml | 10 +-- .../plugins/docs/kc-saml-plugin-swagger.yaml | 4 +- .../saml/rest/TrustRelationshipResource.java | 2 +- .../plugin/saml/service/IdpService.java | 67 ++++++++++++------- jans-config-api/pom.xml | 10 --- jans-config-api/server/pom.xml | 10 +-- .../jans_setup/templates/base.ldif | 4 -- .../jans-config-api/dynamic-conf.json | 5 -- 8 files changed, 50 insertions(+), 62 deletions(-) diff --git a/jans-config-api/docs/jans-config-api-swagger.yaml b/jans-config-api/docs/jans-config-api-swagger.yaml index be217663233..3d1bfb02073 100644 --- a/jans-config-api/docs/jans-config-api-swagger.yaml +++ b/jans-config-api/docs/jans-config-api-swagger.yaml @@ -7611,13 +7611,13 @@ components: type: boolean selected: type: boolean - userCanView: + adminCanEdit: type: boolean - userCanEdit: + userCanView: type: boolean adminCanView: type: boolean - adminCanEdit: + userCanEdit: type: boolean adminCanAccess: type: boolean @@ -9773,10 +9773,10 @@ components: ttl: type: integer format: int32 - opbrowserState: - type: string persisted: type: boolean + opbrowserState: + type: string SessionIdAccessMap: type: object properties: diff --git a/jans-config-api/plugins/docs/kc-saml-plugin-swagger.yaml b/jans-config-api/plugins/docs/kc-saml-plugin-swagger.yaml index 036a801d07d..daa779fc021 100644 --- a/jans-config-api/plugins/docs/kc-saml-plugin-swagger.yaml +++ b/jans-config-api/plugins/docs/kc-saml-plugin-swagger.yaml @@ -672,9 +672,9 @@ paths: requestBody: description: Trust Relationship object content: - application/json: + multipart/form-data: schema: - $ref: '#/components/schemas/TrustRelationship' + $ref: '#/components/schemas/TrustRelationshipForm' examples: Request example: description: Request example diff --git a/jans-config-api/plugins/kc-saml-plugin/src/main/java/io/jans/configapi/plugin/saml/rest/TrustRelationshipResource.java b/jans-config-api/plugins/kc-saml-plugin/src/main/java/io/jans/configapi/plugin/saml/rest/TrustRelationshipResource.java index 7d4a9626779..f57646130e3 100644 --- a/jans-config-api/plugins/kc-saml-plugin/src/main/java/io/jans/configapi/plugin/saml/rest/TrustRelationshipResource.java +++ b/jans-config-api/plugins/kc-saml-plugin/src/main/java/io/jans/configapi/plugin/saml/rest/TrustRelationshipResource.java @@ -127,7 +127,7 @@ public Response createTrustRelationshipWithFile(@MultipartForm TrustRelationship @Operation(summary = "Update TrustRelationship", description = "Update TrustRelationship", operationId = "put-trust-relationship", tags = { "SAML - Trust Relationship" }, security = @SecurityRequirement(name = "oauth2", scopes = { Constants.SAML_WRITE_ACCESS })) - @RequestBody(description = "Trust Relationship object", content = @Content(mediaType = MediaType.APPLICATION_JSON, schema = @Schema(implementation = TrustRelationship.class), examples = @ExampleObject(name = "Request example", value = "example/trust-relationship/trust-relationship-put.json"))) + @RequestBody(description = "Trust Relationship object", content = @Content(mediaType = MediaType.MULTIPART_FORM_DATA, schema = @Schema(implementation = TrustRelationshipForm.class), examples = @ExampleObject(name = "Request example", value = "example/trust-relationship/trust-relationship-post.json"))) @ApiResponses(value = { @ApiResponse(responseCode = "200", description = "Ok", content = @Content(mediaType = MediaType.APPLICATION_JSON, schema = @Schema(implementation = TrustRelationship.class))), @ApiResponse(responseCode = "401", description = "Unauthorized"), diff --git a/jans-config-api/plugins/kc-saml-plugin/src/main/java/io/jans/configapi/plugin/saml/service/IdpService.java b/jans-config-api/plugins/kc-saml-plugin/src/main/java/io/jans/configapi/plugin/saml/service/IdpService.java index 0695ed6d540..4605f9c1591 100644 --- a/jans-config-api/plugins/kc-saml-plugin/src/main/java/io/jans/configapi/plugin/saml/service/IdpService.java +++ b/jans-config-api/plugins/kc-saml-plugin/src/main/java/io/jans/configapi/plugin/saml/service/IdpService.java @@ -6,49 +6,27 @@ package io.jans.configapi.plugin.saml.service; -import io.jans.as.common.model.registration.Client; -import io.jans.as.common.service.common.InumService; + import io.jans.as.common.service.OrganizationService; -import io.jans.as.common.util.AttributeConstants; -import io.jans.configapi.configuration.ConfigurationFactory; import io.jans.configapi.plugin.saml.client.IdpClientFactory; import io.jans.configapi.plugin.saml.mapper.IdentityProviderMapper; import io.jans.configapi.plugin.saml.model.IdentityProvider; -import io.jans.configapi.plugin.saml.service.SamlService; -import io.jans.configapi.plugin.saml.timer.MetadataValidationTimer; -import io.jans.configapi.plugin.saml.util.Constants; -import io.jans.model.GluuStatus; import io.jans.model.SearchRequest; import io.jans.orm.PersistenceEntryManager; import io.jans.orm.model.PagedResult; -import io.jans.orm.model.SortOrder; -import io.jans.orm.search.filter.Filter; -import io.jans.util.StringHelper; import io.jans.util.exception.InvalidAttributeException; import jakarta.enterprise.context.ApplicationScoped; import jakarta.inject.Inject; -import java.io.File; import java.io.IOException; import java.io.InputStream; -import java.nio.file.Files; -import java.nio.file.Paths; -import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.UUID; -import java.util.stream.Collectors; - import jakarta.ws.rs.core.Response; -import org.apache.commons.lang.StringUtils; -import org.apache.commons.io.FileUtils; -import org.apache.commons.io.filefilter.AgeFileFilter; -import org.apache.commons.io.filefilter.TrueFileFilter; import org.slf4j.Logger; - import org.keycloak.representations.idm.IdentityProviderRepresentation; @ApplicationScoped @@ -136,9 +114,15 @@ public IdentityProvider createSamlIdentityProvider(IdentityProvider identityProv idpMetadataStream.available()); kcIdp = keycloakService.createIdentityProvider(identityProvider.getRealm(), kcIdp); log.debug("Newly created kcIdp:{}", kcIdp); - identityProvider = this.convertToIdentityProvider(kcIdp); + identityProvider = this.convertToIdentityProvider(identityProvider, kcIdp); log.debug("Final created identityProvider:{}", identityProvider); + // set KC SP MetadataURL name + if (identityProvider != null) { + String spMetadataUrl = getSpMetadataUrl(identityProvider.getRealm(), identityProvider.getName()); + log.info(" Setting KC SP Metadata URL - spMetadataUrl:{} ", spMetadataUrl); + identityProvider.setSpMetaDataURL(spMetadataUrl); + } } return identityProvider; } @@ -165,7 +149,8 @@ public IdentityProvider updateSamlIdentityProvider(IdentityProvider identityProv // Update IDP in Jans DB updateIdentityProvider(identityProvider); - log.debug("Updated IdentityProvider dentityProvider:{})", identityProvider); + log.debug("Updated IdentityProvider dentityProvider:{}, , identityProvider.getRealm():{})", identityProvider, + identityProvider.getRealm()); if (samlConfigService.isSamlEnabled()) { // Update IDP in KC @@ -174,7 +159,14 @@ public IdentityProvider updateSamlIdentityProvider(IdentityProvider identityProv kcIdp = keycloakService.updateIdentityProvider(identityProvider.getRealm(), kcIdp); log.debug("Updated kcIdp:{}", kcIdp); - identityProvider = this.convertToIdentityProvider(kcIdp); + identityProvider = this.convertToIdentityProvider(identityProvider, kcIdp); + + // set KC SP MetadataURL name + if (identityProvider != null) { + String spMetadataUrl = getSpMetadataUrl(identityProvider.getRealm(), identityProvider.getName()); + log.info(" Updating KC SP Metadata URL - spMetadataUrl:{} ", spMetadataUrl); + identityProvider.setSpMetaDataURL(spMetadataUrl); + } } return identityProvider; } @@ -217,6 +209,29 @@ private Map validateSamlMetadata(String realmName, InputStream i return keycloakService.validateSamlMetadata(realmName, idpMetadataStream); } + private IdentityProvider convertToIdentityProvider(IdentityProvider identityProvider, + IdentityProviderRepresentation kcIdp) { + log.debug("identityProvider:{}, kcIdp:{}", identityProvider, kcIdp); + + IdentityProvider idp = this.convertToIdentityProvider(kcIdp); + log.info("convertToIdentityProvider - idp:{}", idp); + + if (idp != null && identityProvider != null) { + idp.setRealm(identityProvider.getRealm()); + idp.setSpMetaDataFN(identityProvider.getSpMetaDataFN()); + idp.setSpMetaDataURL(identityProvider.getSpMetaDataURL()); + idp.setSpMetaDataLocation(identityProvider.getSpMetaDataLocation()); + idp.setIdpMetaDataFN(identityProvider.getIdpMetaDataFN()); + idp.setIdpMetaDataLocation(identityProvider.getIdpMetaDataLocation()); + idp.setIdpMetaDataURL(identityProvider.getIdpMetaDataURL()); + idp.setStatus(identityProvider.getStatus()); + idp.setValidationStatus(identityProvider.getValidationStatus()); + idp.setValidationLog(identityProvider.getValidationLog()); + } + + return idp; + } + private IdentityProvider convertToIdentityProvider(IdentityProviderRepresentation kcIdp) { log.debug("kcIdp:{}", kcIdp); IdentityProvider idp = null; diff --git a/jans-config-api/pom.xml b/jans-config-api/pom.xml index f70c336e861..953ef85a4ea 100644 --- a/jans-config-api/pom.xml +++ b/jans-config-api/pom.xml @@ -244,16 +244,6 @@ - - org.bouncycastle - bcprov-jdk15on - 1.70 - - - org.bouncycastle - bcpkix-jdk15on - 1.70 - com.nimbusds nimbus-jose-jwt diff --git a/jans-config-api/server/pom.xml b/jans-config-api/server/pom.xml index a55828e844e..18eb5cfba8c 100644 --- a/jans-config-api/server/pom.xml +++ b/jans-config-api/server/pom.xml @@ -83,15 +83,7 @@ weld-core-impl - - - org.bouncycastle - bcprov-jdk15on - - - org.bouncycastle - bcpkix-jdk15on - + diff --git a/jans-linux-setup/jans_setup/templates/base.ldif b/jans-linux-setup/jans_setup/templates/base.ldif index 6600e396211..a183ab910e1 100644 --- a/jans-linux-setup/jans_setup/templates/base.ldif +++ b/jans-linux-setup/jans_setup/templates/base.ldif @@ -143,7 +143,3 @@ objectClass: top objectClass: organizationalUnit ou: trusted-idp -dn: ou=realm,o=jans -objectClass: top -objectClass: organizationalUnit -ou: trusted-idp diff --git a/jans-linux-setup/jans_setup/templates/jans-config-api/dynamic-conf.json b/jans-linux-setup/jans_setup/templates/jans-config-api/dynamic-conf.json index a517c41739f..2f0f17fb8c7 100644 --- a/jans-linux-setup/jans_setup/templates/jans-config-api/dynamic-conf.json +++ b/jans-linux-setup/jans_setup/templates/jans-config-api/dynamic-conf.json @@ -97,11 +97,6 @@ "name": "saml", "description": "saml plugin", "className": "io.jans.configapi.plugin.saml.rest.ApiApplication" - }, - { - "name": "idp", - "description": "idp plugin", - "className": "io.jans.configapi.plugin.keycloak.idp.broker.rest.IdpApiApplication" } ]