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

feat(config-api): saml config-api plugin #5148

Closed
pujavs opened this issue Jun 2, 2023 · 4 comments · Fixed by #6155
Closed

feat(config-api): saml config-api plugin #5148

pujavs opened this issue Jun 2, 2023 · 4 comments · Fixed by #6155
Assignees
Labels
kind-feature Issue or PR is a new feature request
Milestone

Comments

@pujavs
Copy link
Contributor

pujavs commented Jun 2, 2023

New plugin to support SAML functionality.
Jans SAML to use Keycloak as identity Provider(IdP). New config-api plugin to expose endpoints to create and manage trust relationships and persist in DB.

Based on discussion with @uprightech

  1. config-saml-plugin is not using Keycloak API.
  2. config-saml-plugin will upload metadata file on server using existing DocumentStore
  3. trust-relationship endpoint to expose methods to create and manage trust-relationship in DB
  • GET: Need list of trust-relationship
  • POST: Create trust-relationship .
  • PUT: Update trust-relationship
  • DELETE: Delete trust-relationship
  1. Config to be declared in DB
@mo-auto mo-auto added the kind-feature Issue or PR is a new feature request label Jun 2, 2023
@moabu moabu added this to the 1.0.14 milestone Jun 5, 2023
@moabu moabu modified the milestones: 1.0.14, 1.0.15 Jun 20, 2023
@pujavs
Copy link
Contributor Author

pujavs commented Jun 21, 2023

1.Keycloak client endpoints- This will be basically Trust Relationships. Implemented using keycloak-admin-client-jakarta using https://www.keycloak.org/docs-api/21.1.0/javadocs/org/keycloak/admin/client/resource/class-use/ClientResource.html****

  1. Local testing video:
    https://github.com/JanssenProject/jans/assets/43700552/83f44040-093e-4bc8-bf70-b72041173d4d

  2. Local testing screenshots:

  • GET: Need list of SAML clients
    image

  • POST: Create SAML client.
    image

  • PUT: Update SAML client
    image

  • DELETE: Delete SAML client
    image

@pujavs
Copy link
Contributor Author

pujavs commented Jul 21, 2023

Implemented and tested following endpoints:

  1. /jans-config-api/saml/trust-relationship endpoints: GET, POST,PUT,DELETE
    https://github.com/JanssenProject/jans/assets/43700552/5a412abe-b820-453e-929c-af97c485fb8f

  2. /jans-config-api/saml/samlConfig endpoints: GET, PUT & PATCH
    saml-plugin-config.zip

@pujavs
Copy link
Contributor Author

pujavs commented Jul 27, 2023

Review on config-saml-plugin by @uprightech as of 27-Jul-2023

  • Remove redirectUris. The reason being that this will be set by another
  • software.
  • webOrigins doesn't have a place either
  • jansSAMLMetaDataFilter should be removed too. It's only relevant to Shibboleth IDP and there
  • must be a better way to handle this.
  • jansIsFed should also be removed. Let's not handle federations early at this stage.
  • Also, temporarily , let's remove the entityType attribute. Again, there surely is a better
  • way to handle such. I would prefer a trust relationship for now represents a Single SP. We
  • will handle federations later on.
  • What is the jansProfileConf attribute for please , I could not find a clear reference
  • Do we need a protocol attribute ?
  • I see the endpoint for a trustRelationship allows a trustRelationship to be created without
  • a metadata file. That's a problem as it's needed to extract SP meta as we discussed once before
  • (at least the entityID). I think trustrelationship creation should fail if at the very least
  • a metadata file (or a metadata source) is not specified.
  • Is there a reason why we have a separate SamlIdpService just to save files ?
  • Beyond that, there are a few tweaks that will be done in time as we use the API in a real case scenario. They're not imporant for now.

@pujavs
Copy link
Contributor Author

pujavs commented Jul 27, 2023

Comments by @pujavs. Thankyou for your review comment Rolain Bonaventure

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind-feature Issue or PR is a new feature request
Projects
None yet
4 participants