Git Product home page Git Product logo

eosc-kc / keycloak Goto Github PK

View Code? Open in Web Editor NEW

This project forked from keycloak/keycloak

4.0 4.0 4.0 502.19 MB

Open Source Identity and Access Management For Modern Applications and Services

Home Page: https://www.keycloak.org

License: Apache License 2.0

HTML 0.06% Java 90.45% JavaScript 0.54% CSS 0.11% Shell 0.08% XSLT 0.13% AMPL 0.01% FreeMarker 0.43% Batchfile 0.02% TypeScript 8.15% Groovy 0.01% Dockerfile 0.01% Fluent 0.01% Mustache 0.01%

keycloak's People

Contributors

agagancarczyk avatar ahus1 avatar andymunro avatar dependabot[bot] avatar dguhr avatar edewit avatar hmlnarik avatar jenmalloy avatar jenny-s51 avatar jonkoops avatar k-tamura avatar mabartos avatar martin-kanis avatar matthewhelmke avatar mfrances17 avatar mhajas avatar mposolda avatar mstruk avatar patriot1burke avatar pdrozd avatar pedroigor avatar rmartinc avatar sguilhen avatar ssilvert avatar stianst avatar thomasdarimont avatar tkyjovsk avatar tnorimat avatar vmuzikar avatar vramik avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

keycloak's Issues

Add support for different user identifiers

KC should be able to uniquely idenify users that authenticate via IdPs that release one or more of the following users identifiers:

  • Subject Persistent NameID
  • subject-id (attribute)
  • eduPersonPrincipalName (attribute)
  • eduPersonUniqueId (attribute)
  • eduPersonTargetedID (attribute)
  • other custom attribute

Support entityId-based filtering

Support filtering of entities imported from SAML aggregates by whitelisting/blacklisting entityIds. The realm admin should be able to supply whitelists/blacklists through the SAML aggregate configuration UI.

Support AUP on-demand renewal

Realm administrator should be able to update the current Acceptable Use Policy (AUP or Terms & Conditions).

  • New users should be required to accept the AUP during registration (first login)
  • Existing users who have already agreed to a previous version of the AUP should be required to accept the new AUP the next time they login

Test SAML federation approach 1 in HA mode

We need to test SAML federation approach 1 in HA mode. It may be required to extend caching mechanism to properly support HA.

Last resort: Disable cache for entities only?

Test VMs:

  1. cappakleis3.aai-dev.grnet.gr
  2. cappakleis4.aai-dev.grnet.gr

Allow realm admin to disable automatic updates for specific entities.

Realm admins should be able to disable automatic updates for specific entities.

Two approaches:

  1. Extend (individual) IdP configuration to allow disabling automatic updates (automatic updates should be enabled by default when the IdP is configured via remote XML metadata URL)
  2. Extend saml aggregate configuration to allow specifying IdPs that should be excluded from the automatic update process

Add support for entity filtering

When configuring a SAML metadata aggregate it should be possible to specify filters for including and/or excluding entities based on:

  1. Entity Category (e.g. Research and Scholarship, Sirtfi, GÉANT Data Protection Code of Conduct)
  2. Entity type, i.e. IdP, SP or Attribute Authority
  3. Identity Federation: Typically this information is specified in the mdrpi:registrationAuthority attribute in the md:EntityDescriptor element of the entity’s metadata (see eduGAIN SAML Profile)

=== 1 Entity category filtering
Example for including REFEDS R&S, GEANT DPCoCo and Sirtfi
Attribute Name="http://macedir.org/entity-category-support"
Attribute value=[
"http://refeds.org/category/research-and-scholarship",
"http://www.geant.net/uri/dataprotection-code-of-conduct/v1"
]
Attribute Name="urn:oasis:names:tc:SAML:attribute:assurance-certification"
Attribute value=[
"https://refeds.org/sirtfi"
]

=== 2 Entity type

=== 3 Entity type
To filter entities based on their identity federation it should be possible to specify include/exclude lists for matching the registrationAuthority. E.g.

<mdrpi:RegistrationInfo values: [

Support AUP periodic renewal

Realm administrator should be able to configure the periodic renewal of the current Acceptable Use Policy (AUP or Terms & Conditions). Effectively, users will be required to renew their acceptance of the AUP following the configured period (e.g. every 12 months). Users who don't renew their acceptance should be put in grace period after which they should be removed from the user database (or set their status to expired)

Linked Account ui

In linked Account ui a same filter as login page must be created

theme/keycloak.v2/account/src/app/content/linked-accounts-page/LinkedAccountsPage.tsx file

Create federation entity

Need to extend the keycloak's current db model to hold saml federation properties.
Create the federation entity, with a one-to-many relationship with IdentityProviderEntity and a many-to-one relationship with the RealmEntity

  • create entitiy, relationships

  • create a changeset for the database changes

Proposed fields :

  • String url

  • String alias

  • String providerId ( saml-federation or oidc-federation )

  • Integer updateEveryHours

  • Integer totalIdps

  • Integer addedIdps

  • Long created

  • Long lastUpdated

  • RealmEntity realm

  • Set skipEntities

  • Set erroneousEntities ( entities that failed to add in database)

Save federation along with IdPs in realm

Send a federation url,the IdPs type, an alias name for the federation , a "refresh every X hours" parameter and an idp skip-list (entityID list). This will result into having the federation along with its IdPs saved into the database.

Add support for external attribute providers

Attribute providers include external API servers and databases.

Investigate if these attribute providers can be implemented as User Storage Providers (KC currently supports LDAP and Active Directory)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.