Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -21,4 +21,6 @@ assertation
JavaScript
Autoconfigure
requester(?('s))
rewrap(?(s))
rewrap(?(s))
Keycloak
ERS
150 changes: 150 additions & 0 deletions docs/components/entity_resolution.md
Original file line number Diff line number Diff line change
Expand Up @@ -192,3 +192,153 @@
```

In the above example, each entity in the request is resolved into its corresponding entity data.

## Built-In Entity Resolution Services

The platform includes two built-in Entity Resolution Services (ERS): **Keycloak ERS** and **Claims ERS**. These services provide flexibility for different use cases and IdP configurations.

Check failure on line 198 in docs/components/entity_resolution.md

View workflow job for this annotation

GitHub Actions / Vale

[vale] reported by reviewdog 🐶 [Vale.Terms] Use 'ECDSA' instead of 'ERS'. Raw Output: {"message": "[Vale.Terms] Use 'ECDSA' instead of 'ERS'.", "location": {"path": "docs/components/entity_resolution.md", "range": {"start": {"line": 198, "column": 64}}}, "severity": "ERROR"}

Check failure on line 198 in docs/components/entity_resolution.md

View workflow job for this annotation

GitHub Actions / Vale

[vale] reported by reviewdog 🐶 [Vale.Terms] Use 'Docusaurus' instead of 'Keycloak'. Raw Output: {"message": "[Vale.Terms] Use 'Docusaurus' instead of 'Keycloak'.", "location": {"path": "docs/components/entity_resolution.md", "range": {"start": {"line": 198, "column": 72}}}, "severity": "ERROR"}

Check failure on line 198 in docs/components/entity_resolution.md

View workflow job for this annotation

GitHub Actions / Vale

[vale] reported by reviewdog 🐶 [Vale.Terms] Use 'ECDSA' instead of 'ERS'. Raw Output: {"message": "[Vale.Terms] Use 'ECDSA' instead of 'ERS'.", "location": {"path": "docs/components/entity_resolution.md", "range": {"start": {"line": 198, "column": 81}}}, "severity": "ERROR"}

Check failure on line 198 in docs/components/entity_resolution.md

View workflow job for this annotation

GitHub Actions / Vale

[vale] reported by reviewdog 🐶 [Vale.Terms] Use 'ECDSA' instead of 'ERS'. Raw Output: {"message": "[Vale.Terms] Use 'ECDSA' instead of 'ERS'.", "location": {"path": "docs/components/entity_resolution.md", "range": {"start": {"line": 198, "column": 100}}}, "severity": "ERROR"}

Check failure on line 198 in docs/components/entity_resolution.md

View workflow job for this annotation

GitHub Actions / Vale

[vale] reported by reviewdog 🐶 [Vale.Terms] Use 'FQN' instead of 'IdP'. Raw Output: {"message": "[Vale.Terms] Use 'FQN' instead of 'IdP'.", "location": {"path": "docs/components/entity_resolution.md", "range": {"start": {"line": 198, "column": 170}}}, "severity": "ERROR"}

### Keycloak Entity Resolution Service

Check failure on line 200 in docs/components/entity_resolution.md

View workflow job for this annotation

GitHub Actions / Vale

[vale] reported by reviewdog 🐶 [Vale.Terms] Use 'Docusaurus' instead of 'Keycloak'. Raw Output: {"message": "[Vale.Terms] Use 'Docusaurus' instead of 'Keycloak'.", "location": {"path": "docs/components/entity_resolution.md", "range": {"start": {"line": 200, "column": 5}}}, "severity": "ERROR"}
The **Keycloak ERS** is tightly integrated with Keycloak, a popular open-source identity and access management solution. It retrieves entity information directly from Keycloak's APIs and is ideal for environments where Keycloak is the primary IdP.

Check failure on line 201 in docs/components/entity_resolution.md

View workflow job for this annotation

GitHub Actions / Vale

[vale] reported by reviewdog 🐶 [Vale.Terms] Use 'Docusaurus' instead of 'Keycloak'. Raw Output: {"message": "[Vale.Terms] Use 'Docusaurus' instead of 'Keycloak'.", "location": {"path": "docs/components/entity_resolution.md", "range": {"start": {"line": 201, "column": 7}}}, "severity": "ERROR"}

Check failure on line 201 in docs/components/entity_resolution.md

View workflow job for this annotation

GitHub Actions / Vale

[vale] reported by reviewdog 🐶 [Vale.Terms] Use 'ECDSA' instead of 'ERS'. Raw Output: {"message": "[Vale.Terms] Use 'ECDSA' instead of 'ERS'.", "location": {"path": "docs/components/entity_resolution.md", "range": {"start": {"line": 201, "column": 16}}}, "severity": "ERROR"}

Check failure on line 201 in docs/components/entity_resolution.md

View workflow job for this annotation

GitHub Actions / Vale

[vale] reported by reviewdog 🐶 [Vale.Terms] Use 'Docusaurus' instead of 'Keycloak'. Raw Output: {"message": "[Vale.Terms] Use 'Docusaurus' instead of 'Keycloak'.", "location": {"path": "docs/components/entity_resolution.md", "range": {"start": {"line": 201, "column": 49}}}, "severity": "ERROR"}

#### Key Features:
- Direct integration with Keycloak's identity management system.
- Supports resolving entities using Keycloak-specific attributes and roles.
- Leverages Keycloak's APIs for detailed entity information.

#### Behavior of `CreateEntityChainFromJwt`
The **Keycloak ERS** processes each JWT by interacting with Keycloak's APIs to extract entity information. The behavior includes:
- Parsing the JWT to extract claims such as `client_id` and `username`.
- Categorizing entities as either `CATEGORY_SUBJECT` (e.g., users) or `CATEGORY_ENVIRONMENT` (e.g., clients or service accounts).
- Constructing an entity chain for each token, where each chain contains the extracted entities and their associated metadata.

For example:
- A token with a `client_id` claim is resolved into a chain with the client as the environment entity and the client service account as the subject entity.
- A token with a `username` claim is resolved into a chain with the user as the subject entity and the client as the environment entity.

#### Behavior of `ResolveEntities`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[LanguageTool] reported by reviewdog 🐶
Possible spelling mistake found. (MORFOLOGIK_RULE_EN_US)
Suggestions: Resolve Entities
Rule: https://community.languagetool.org/rule/show/MORFOLOGIK_RULE_EN_US?lang=en-US
Category: TYPOS

The **Keycloak ERS** resolves entities by querying Keycloak's APIs based on the provided entity identifiers (e.g., `email`, `username`, or `client_id`). The behavior includes:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[LanguageTool] reported by reviewdog 🐶
Possible spelling mistake found. (MORFOLOGIK_RULE_EN_US)
Suggestions: Key cloak
Rule: https://community.languagetool.org/rule/show/MORFOLOGIK_RULE_EN_US?lang=en-US
Category: TYPOS

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[LanguageTool] reported by reviewdog 🐶
Possible spelling mistake found. (MORFOLOGIK_RULE_EN_US)
Suggestions: Key cloak
Rule: https://community.languagetool.org/rule/show/MORFOLOGIK_RULE_EN_US?lang=en-US
Category: TYPOS

- Looking up users or clients in Keycloak using the provided identifiers.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[LanguageTool] reported by reviewdog 🐶
Possible spelling mistake found. (MORFOLOGIK_RULE_EN_US)
Suggestions: Key cloak
Rule: https://community.languagetool.org/rule/show/MORFOLOGIK_RULE_EN_US?lang=en-US
Category: TYPOS

- Returning detailed entity representations, including attributes such as roles, permissions, and metadata.

For example:
- An entity with an `email` identifier is resolved into a user entity with detailed attributes.
- An entity with a `client_id` identifier is resolved into a client entity with its associated permissions.

### Claims Entity Resolution Service
The **Claims ERS** is a more flexible service that resolves entities based on claims embedded in tokens (e.g., JWTs). It is designed for environments where tokens come from multiple sources or where Keycloak is not used.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[LanguageTool] reported by reviewdog 🐶
Possible spelling mistake found. (MORFOLOGIK_RULE_EN_US)
Suggestions: Key cloak
Rule: https://community.languagetool.org/rule/show/MORFOLOGIK_RULE_EN_US?lang=en-US
Category: TYPOS


#### Key Features:
- Processes claims-based tokens to extract and resolve entities.
- Supports custom token formats and claims structures.
- Does not require Keycloak as a dependency.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[LanguageTool] reported by reviewdog 🐶
Possible spelling mistake found. (MORFOLOGIK_RULE_EN_US)
Suggestions: Key cloak
Rule: https://community.languagetool.org/rule/show/MORFOLOGIK_RULE_EN_US?lang=en-US
Category: TYPOS


#### Behavior of `CreateEntityChainFromJwt`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[LanguageTool] reported by reviewdog 🐶
Possible spelling mistake found. (MORFOLOGIK_RULE_EN_US)
Rule: https://community.languagetool.org/rule/show/MORFOLOGIK_RULE_EN_US?lang=en-US
Category: TYPOS

The **Claims ERS** processes each JWT by extracting claims directly from the token without relying on an external IdP. The behavior includes:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[LanguageTool] reported by reviewdog 🐶
Possible spelling mistake found. (MORFOLOGIK_RULE_EN_US)
Suggestions: IDP, GDP, FDP, ID, IDF, Id, ADP, ISP, PDP, UDP, ICP, IDs, IAP, IDC, IEP, IFP, IPP, Imp, EDP, IBP, IDB, IDG, IDL, MDP, CDP, IP, NDP, BDP, DP, I3P, IBDP, ID3, IDE, IDH, IDK, IDM, IDN, IDPs, IDQ, IDR, IDS, IDT, IGP, IHP, ILP, IMP, INP, IOP, IRP, ITP, Ida, KDP, ODP, RDP, SDP, TDP, Ids, Id P, I2P, In, Is, I, It, Did, If, Its, Up, Do, Side, Top, Idea, Mid, Wide, CD, Dr, Add, Aid, Ice, Map, Pop, AIDS, IBM, Ad, Bid, Cap, Cup, Gap, Hip, Hop, Lap, Odd, Ride, Tip, CDs, HD, IRA, MVP, Ads, Hide, Ill, Ink, Ion, Kids, Rap, Tide, HP, ICT, IOC, IQ, SD, SVP, Aide, Aids, Bids, Cop, Hid, Idol, Inn, Kid, Lid, Lip, Rid, Tap, ADC, BNP, CDC, CDU, DA, DDR, DDT, DL, DM, DSP, DT, DX, ESP, GDR, GOP, ICU, IEC, IIT, IMF, INS, IPA, IPO, IRS, ITF, ITU, JD, JP, NADP, NP, PD, PDF, PPP, PSP, SAP, SDS, SNP, TCP, VIP, VP, Amp, dB, Dip, Eds, Icy, Idle, Ire, Rip, Sap, Zip, ADR, ARP, Ada, BMP, CCP, CDA, CDR, CPP, CSP, DG, DUP, EPP, FD, FDR, FP, GBP, GNP, IAS, IAU, ICL, ICS, IFA, IFC, IG, ILS, IMG, IMO, IPC, IPS, IRL, ISDN, ITC, ITN, ITT, Indy, Kidd, LD, MCP, MDC, MDR, MMP, MPP, NDA, NLP, PCP, PDA, PDS, PNP, RDS, Rep, SDA, SDK, SDL, SSP, TDI, UDF, USP, Vida, Bhp, Bop, Ivy, Limp, Ode, Pep, AD, ADD, ADT, Aida, BDS, CBP, CDO, CDT, CEP, CFP, CLP, CTP, DDS, DPI, DQ, Dido, FDI, FIP, FLP, GDF, GDI, GRP, HDB, HDD, HDR, HDV, HSP, IAA, IAC, IBS, ICM, ICMP, ICR, IEA, IED, IFL, IFPI, IFR, IGA, IH, IHS, IMA, IMAP, IMC, IMT, IMU, IOM, IPN, IPR, IVB, IVs, JDM, LDA, LDAP, LMP, LSP, MDI, MDS, NDC, NEP, NTP, ORP, PDT, PFP, PKP, RCP, RDA, RDC, RIP, SDI, SDR, SIDS, SLP, SMP, SOP, STP, UDC, UDR, UUP, WAP, WD, Asp, Esp, Exp, Ftp, Lids, Midi, Mop, Nap, Pip, Pup, Sip, Sup, Tidy, Vide, Adm, CDN, CIDR, DDA, DDB, DDC, DDD, DDE, DMP, DPD, DPT, DTP, FDC, GDS, GLP, IAB, ICN, ICO, IPI, IQs, ITE, IUD, Ina, Iva, JDL, KTP, KVP, LDC, LPP, MDF, MDL, MDM, MDT, MDX, MIP, MNP, NDB, RSP, SDC, SDM, SGP, TDD, Dz, Idly, Ilk, Imps, Inf, Kip, Lido, Lisp, Mp, Nip, Pap, Wisp, CDV, DPN, DPs, DVP, Fido, Gide, HDS, IOU, IRQ, OAP, PDQ, Twp, VDU, Adj, Ado, Alp, Bide, Fop, Gimp, Hep, Idem, Ifs, Sop, Wimp, Zap, FIDS, VDT, Adv, App, Hap, Ides, Opp, Rids, Tsp, Yip, Yup, Ind, ODs, Gyp, Irk, Simp, Yap, Yep, ATP, DJ, ICC, ITV, LDS, MD, TD, Dpt, Op, Avdp, Dds, 1D, 2D, 3D, 3DO, 4D, 8D, A&P, AAP, ABP, ACP, ADA, ADB, ADF, ADG, ADH, ADI, ADJ, ADK, ADL, ADM, ADN, ADQ, ADS, ADU, ADV, ADX, ADY, ADZ, AEP, AGP, AID, AIP, AIPP, AJP, AKP, ALP, AMP, ANP, AOP, AP, APP, AQP, ASP, AUP, AVP, AWP, AXP, AYP, BAP, BBP, BCP, BD, BDA, BDB, BDC, BDD, BDE, BDF, BDG, BDH, BDI, BDJ, BDK, BDL, BDM, BDMP, BDN, BDO, BDQ, BDR, BDT, BDU, BDV, BDW, BDX, BDY, BDZ, BEP, BFP, BGP, BHP, BID, BJP, BKP, BLP, BOP, BP, BPP, BQP, BRP, BSP, BTP, BUP, BVP, BWP, BZP, CAP, CDB, CDD, CDDP, CDE, CDF, CDG, CDH, CDI, CDJ, CDK, CDL, CDM, CDS, CDW, CDZ, CHP, CID, CIEP, CIP, CISP, CMP, CNDP, CNP, COP, CP, CPDP, CQP, CRDP, CRP, CUP, CVP, CWP, CXP, CYP, CZP, Cd, Cid, CoP, D, D8, DAP, DBP, DC, DCP, DD, DDH, DDI, DDL, DDM, DDO, DDSP, DDV, DE, DEP, DFP, DGP, DH, DHP, DI, DID, DIP, DIPP, DK, DKP, DLP, DN, DNP, DO, DOP, DPA, DPB, DPC, DPE, DPH, DPO, DPS, DPU, DPW, DR, DRP, DS, Di, Didi, Du, Dy, E&P, EAP, EBP, ECP, EDA, EDB, EDC, EDD, EDF, EDI, EDL, EDM, EDPR, EDS, EDT, EDU, EDW, EDX, EEP, EGP, EID, EIDE, EIP, EJP, ELP, EMP, ENP, EP, ERP, ETP, EWP, Ed, FAP, FCP, FDA, FDB, FDF, FDM, FDS, FEP, FFP, FICP, FID, FIDA, FIDE, FMP, FOP, FPP, FRP, FSP, FTP, FUP, GAP, GCP, GDB, GDC, GDD, GDE, GDM, GDN, GDPR, GDPs, GDT, GID, GIP, GKP, GMP, GP, GPP, GSP, GTP, GWP, Gd, HAP, HBP, HDCP, HDE, HDF, HDI, HDL, HDM, HDO, HDPE, HDPS, HIP, HLP, HMP, HTP, I&S, I10, I11, I12, I15, I16, I19, I20, I21, I22, I24, I25, I26, I27, I29, I30, I35, I37, I39, I40, I42, I43, I44, I45, I49, I53, I64, I65, I66, I68, I69, I70, I71, I72, I73, I74, I77, I78, I79, I80, I81, I82, I83, I84, I85, I86, I87, I88, I89, I95, I97, I99, IA, IA4, IA8, IAD, IADC, IAE, IAF, IAG, IAH, IAI, IAN, IAO, IAV, IB1, IBA, IBB, IBC, IBD, IBE, IBL, IBO, IBR, IC, ICA, ICAP, ICB, ICD, ICE, ICF, ICH, ICI, ICPE, ID.3, ID3S, IDES, IDEs, IDFA, IDMS, IDSL, IDed, IE, IEF, IEG, IEM, IEPs, IES, IF, IFD, IFF, IFI, IFM, IFN, IFO, IFOP, IFS, IFU, IGC, IGE, IGF, IGH, IGI, IGM, IGN, IGRP, IGS, IHT, IHU, IIA, IIC, IIF, IIM, IIN, IIS, IJ, IJF, IJM, IKB, IL, IL2, ILC, ILG, ILM, ILN, IM, IMB, IMD, IMDB, IMDb, IME, IMH, IMK, IMN, IMS, IMV, IMs, IN, INA, INB, INC, IND, INE, INF, ING, INH, INM, INPP, INPT, INR, INSP, INT, IOB, IOF, IOI, ION, IOPG, IOR, IOS, IOT, IOV, IPB, IPD, IPE, IPF, IPG, IPGP, IPJ, IPM, IPPJ, IPT, IPY, IPs, IQR, IR, IRB, IRC, IRD, IRDE, IRE, IRG, IRI, IRM, IRN, IRR, IRT, IRU, IS, ISA, ISB, ISC, ISD, ISDA, ISEP, ISF, ISG, ISI, ISIP, ISK, ISL, ISM, ISN, ISO, ISPS, ISPs, ISR, ISS, IST, ISU, ISV, IT, ITA, ITB, ITK, ITL, ITPC, ITS, IU, IUF, IV, IVD, IVF, IVG, IVI, IVR, IWC, IWF, IXC, IXL, IXV, IZ, Ia, Ian, Ibo, Ike, Ila, Inc, Io, IoT, Ir, Ira, Ito, JAP, JCP, JDE, JDG, JDK, JDN, JMP, JPP, JSP, Jap, KDG, KDS, KOP, KP, LBP, LCP, LDD, LDE, LDF, LDH, LDK, LDL, LDT, LDW, LEP, LFP, LISP, LLP, LP, LRP, Lidl, MAP, MBP, MDA, MDB, MDD, MDE, MDG, MDJ, MDK, MDN, MDQ, MDV, MDs, MEP, MFP, MHP, MID, MIDI, MKP, MLP, MOP, MP, MTP, MUP, Md, NAP, NCDP, NCP, ND, NDF, NDH, NDK, NDMP, NDR, NDS, NDT, NID, NIDA, NJP, NPP, NRP, NVP, Nd, Np, OCP, OD, ODB, ODC, ODD, ODF, ODG, ODI, ODM, ODN, ODR, ODS, ODT, OEP, OLP, OMP, ONP, OOP, OTP, OVP, P, P&P, P2P, PAP, PDB, PDC, PDD, PDG, PDI, PDJ, PDK, PDL, PDO, PDU, PDX, PEP, PGP, PHP, PID, PIDs, PIP, PLP, PMP, POP, PP, PQP, PRP, PTP, PUP, PVP, Pd, QDD, QDR, QFP, RAP, RD, RDB, RDF, RDI, RDJ, RDM, RDT, REP, RFP, RGP, RHP, RP, RPP, RTP, RUP, Rd, S&P, SCP, SDD, SDE, SDF, SDG, SDH, SDJ, SDN, SDO, SDPC, SDPJ, SDPS, SDU, SDV, SEP, SFP, SHP, SID, SIDA, SIP, SIPP, SIRP, SJP, SP, SPP, SQP, SRP, Sep, Sid, Sp, TAP, TBP, TDA, TDC, TDE, TDF, TDG, TDM, TDPS, TDR, TDS, TDT, TEP, TGP, THP, TID, TIP, TIPP, TKP, TLP, TMP, TNP, TOP, TP, TPP, TRP, TSP, TTP, TUP, TVP, UAP, UCP, UDB, UDL, UDM, UDPS, UDS, UFP, UID, UIP, UMP, UNDP, UP, UPP, UTP, UWP, Udo, VAP, VCP, VD, VDA, VDB, VDC, VDD, VDI, VDM, VDN, VDX, VHP, VMP, VOP, VPP, VRP, VSP, VTP, WDC, WDI, WDM, WDS, WFP, WIMP, WIP, WP, WPP, WSP, WTP, XAP, XD, XMP, XP, XTP, YP, ZAP, ZDJ, ZEP, ZIP, ZMP, ZNP, ZPP, ZSP, ZUP, Bap, Db, Dd, Dep, Didn, Dm, Dpi, Hp, iOS, Ii, Iii, Int, Isl, Ism, Isn, Ite, Iv, Ix, Lop, Pimp, Pp, Tmp, Ump, Vid, Yd, Yid, Yids, ÉTP, ICQ, INI, IOPS, KDE, NXP, OIDC
Rule: https://community.languagetool.org/rule/show/MORFOLOGIK_RULE_EN_US?lang=en-US
Category: TYPOS

- Parsing the JWT to extract claims.
- Wrapping the claims in a structured format (e.g., `structpb.Struct`) for further processing.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[LanguageTool] reported by reviewdog 🐶
Possible spelling mistake found. (MORFOLOGIK_RULE_EN_US)
Suggestions: struct, structs
Rule: https://community.languagetool.org/rule/show/MORFOLOGIK_RULE_EN_US?lang=en-US
Category: TYPOS

- Categorizing all produced entities as `CATEGORY_SUBJECT`.
- Constructing an entity chain for each token, where each chain contains a single entity of type `claims` with the claims of that token.


#### Behavior of `ResolveEntities`
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[LanguageTool] reported by reviewdog 🐶
Possible spelling mistake found. (MORFOLOGIK_RULE_EN_US)
Suggestions: Resolve Entities
Rule: https://community.languagetool.org/rule/show/MORFOLOGIK_RULE_EN_US?lang=en-US
Category: TYPOS

The **Claims ERS** resolves entities by processing the claims embedded in the provided entities. The behavior includes:
- Extracting claims from the entity's `claims` field.
- Converting the claims into a structured format for further processing.
- Returning detailed entity representations, including the extracted claims as additional properties.

For example:
- An entity with a `claims` field containing `roles` and `department` is resolved into a subject entity with those attributes.
- An entity with a `claims` field containing custom attributes is resolved into a subject entity with those custom attributes.

### Comparison: Keycloak ERS vs. Claims ERS
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[LanguageTool] reported by reviewdog 🐶
Possible spelling mistake found. (MORFOLOGIK_RULE_EN_US)
Suggestions: Key cloak
Rule: https://community.languagetool.org/rule/show/MORFOLOGIK_RULE_EN_US?lang=en-US
Category: TYPOS


| Feature | Keycloak ERS | Claims ERS |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[LanguageTool] reported by reviewdog 🐶
Possible spelling mistake found. (MORFOLOGIK_RULE_EN_US)
Suggestions: Key cloak
Rule: https://community.languagetool.org/rule/show/MORFOLOGIK_RULE_EN_US?lang=en-US
Category: TYPOS

|--------------------------------|-----------------------------------------------|---------------------------------------------|
| **Primary Use Case** | Keycloak-based identity resolution. | Claims-based token resolution. |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[LanguageTool] reported by reviewdog 🐶
Possible spelling mistake found. (MORFOLOGIK_RULE_EN_US)
Suggestions: Key cloak-based
Rule: https://community.languagetool.org/rule/show/MORFOLOGIK_RULE_EN_US?lang=en-US
Category: TYPOS

| **Integration** | Tightly coupled with Keycloak. | Works with any token format containing claims. |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[LanguageTool] reported by reviewdog 🐶
Possible spelling mistake found. (MORFOLOGIK_RULE_EN_US)
Suggestions: Key cloak
Rule: https://community.languagetool.org/rule/show/MORFOLOGIK_RULE_EN_US?lang=en-US
Category: TYPOS

| **Customization** | Limited to Keycloak's identity model. | Highly customizable for different token formats. |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[LanguageTool] reported by reviewdog 🐶
Possible spelling mistake found. (MORFOLOGIK_RULE_EN_US)
Suggestions: Key cloak
Rule: https://community.languagetool.org/rule/show/MORFOLOGIK_RULE_EN_US?lang=en-US
Category: TYPOS

| **Dependency** | Requires Keycloak as the IdP. | No external dependency on Keycloak. |
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[LanguageTool] reported by reviewdog 🐶
Possible spelling mistake found. (MORFOLOGIK_RULE_EN_US)
Suggestions: Key cloak
Rule: https://community.languagetool.org/rule/show/MORFOLOGIK_RULE_EN_US?lang=en-US
Category: TYPOS

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[LanguageTool] reported by reviewdog 🐶
Possible spelling mistake found. (MORFOLOGIK_RULE_EN_US)
Suggestions: IDP, GDP, FDP, ID, IDF, Id, ADP, ISP, PDP, UDP, ICP, IDs, IAP, IDC, IEP, IFP, IPP, Imp, EDP, IBP, IDB, IDG, IDL, MDP, CDP, IP, NDP, BDP, DP, I3P, IBDP, ID3, IDE, IDH, IDK, IDM, IDN, IDPs, IDQ, IDR, IDS, IDT, IGP, IHP, ILP, IMP, INP, IOP, IRP, ITP, Ida, KDP, ODP, RDP, SDP, TDP, Ids, Id P, I2P, In, Is, I, It, Did, If, Its, Up, Do, Side, Top, Idea, Mid, Wide, CD, Dr, Add, Aid, Ice, Map, Pop, AIDS, IBM, Ad, Bid, Cap, Cup, Gap, Hip, Hop, Lap, Odd, Ride, Tip, CDs, HD, IRA, MVP, Ads, Hide, Ill, Ink, Ion, Kids, Rap, Tide, HP, ICT, IOC, IQ, SD, SVP, Aide, Aids, Bids, Cop, Hid, Idol, Inn, Kid, Lid, Lip, Rid, Tap, ADC, BNP, CDC, CDU, DA, DDR, DDT, DL, DM, DSP, DT, DX, ESP, GDR, GOP, ICU, IEC, IIT, IMF, INS, IPA, IPO, IRS, ITF, ITU, JD, JP, NADP, NP, PD, PDF, PPP, PSP, SAP, SDS, SNP, TCP, VIP, VP, Amp, dB, Dip, Eds, Icy, Idle, Ire, Rip, Sap, Zip, ADR, ARP, Ada, BMP, CCP, CDA, CDR, CPP, CSP, DG, DUP, EPP, FD, FDR, FP, GBP, GNP, IAS, IAU, ICL, ICS, IFA, IFC, IG, ILS, IMG, IMO, IPC, IPS, IRL, ISDN, ITC, ITN, ITT, Indy, Kidd, LD, MCP, MDC, MDR, MMP, MPP, NDA, NLP, PCP, PDA, PDS, PNP, RDS, Rep, SDA, SDK, SDL, SSP, TDI, UDF, USP, Vida, Bhp, Bop, Ivy, Limp, Ode, Pep, AD, ADD, ADT, Aida, BDS, CBP, CDO, CDT, CEP, CFP, CLP, CTP, DDS, DPI, DQ, Dido, FDI, FIP, FLP, GDF, GDI, GRP, HDB, HDD, HDR, HDV, HSP, IAA, IAC, IBS, ICM, ICMP, ICR, IEA, IED, IFL, IFPI, IFR, IGA, IH, IHS, IMA, IMAP, IMC, IMT, IMU, IOM, IPN, IPR, IVB, IVs, JDM, LDA, LDAP, LMP, LSP, MDI, MDS, NDC, NEP, NTP, ORP, PDT, PFP, PKP, RCP, RDA, RDC, RIP, SDI, SDR, SIDS, SLP, SMP, SOP, STP, UDC, UDR, UUP, WAP, WD, Asp, Esp, Exp, Ftp, Lids, Midi, Mop, Nap, Pip, Pup, Sip, Sup, Tidy, Vide, Adm, CDN, CIDR, DDA, DDB, DDC, DDD, DDE, DMP, DPD, DPT, DTP, FDC, GDS, GLP, IAB, ICN, ICO, IPI, IQs, ITE, IUD, Ina, Iva, JDL, KTP, KVP, LDC, LPP, MDF, MDL, MDM, MDT, MDX, MIP, MNP, NDB, RSP, SDC, SDM, SGP, TDD, Dz, Idly, Ilk, Imps, Inf, Kip, Lido, Lisp, Mp, Nip, Pap, Wisp, CDV, DPN, DPs, DVP, Fido, Gide, HDS, IOU, IRQ, OAP, PDQ, Twp, VDU, Adj, Ado, Alp, Bide, Fop, Gimp, Hep, Idem, Ifs, Sop, Wimp, Zap, FIDS, VDT, Adv, App, Hap, Ides, Opp, Rids, Tsp, Yip, Yup, Ind, ODs, Gyp, Irk, Simp, Yap, Yep, ATP, DJ, ICC, ITV, LDS, MD, TD, Dpt, Op, Avdp, Dds, 1D, 2D, 3D, 3DO, 4D, 8D, A&P, AAP, ABP, ACP, ADA, ADB, ADF, ADG, ADH, ADI, ADJ, ADK, ADL, ADM, ADN, ADQ, ADS, ADU, ADV, ADX, ADY, ADZ, AEP, AGP, AID, AIP, AIPP, AJP, AKP, ALP, AMP, ANP, AOP, AP, APP, AQP, ASP, AUP, AVP, AWP, AXP, AYP, BAP, BBP, BCP, BD, BDA, BDB, BDC, BDD, BDE, BDF, BDG, BDH, BDI, BDJ, BDK, BDL, BDM, BDMP, BDN, BDO, BDQ, BDR, BDT, BDU, BDV, BDW, BDX, BDY, BDZ, BEP, BFP, BGP, BHP, BID, BJP, BKP, BLP, BOP, BP, BPP, BQP, BRP, BSP, BTP, BUP, BVP, BWP, BZP, CAP, CDB, CDD, CDDP, CDE, CDF, CDG, CDH, CDI, CDJ, CDK, CDL, CDM, CDS, CDW, CDZ, CHP, CID, CIEP, CIP, CISP, CMP, CNDP, CNP, COP, CP, CPDP, CQP, CRDP, CRP, CUP, CVP, CWP, CXP, CYP, CZP, Cd, Cid, CoP, D, D8, DAP, DBP, DC, DCP, DD, DDH, DDI, DDL, DDM, DDO, DDSP, DDV, DE, DEP, DFP, DGP, DH, DHP, DI, DID, DIP, DIPP, DK, DKP, DLP, DN, DNP, DO, DOP, DPA, DPB, DPC, DPE, DPH, DPO, DPS, DPU, DPW, DR, DRP, DS, Di, Didi, Du, Dy, E&P, EAP, EBP, ECP, EDA, EDB, EDC, EDD, EDF, EDI, EDL, EDM, EDPR, EDS, EDT, EDU, EDW, EDX, EEP, EGP, EID, EIDE, EIP, EJP, ELP, EMP, ENP, EP, ERP, ETP, EWP, Ed, FAP, FCP, FDA, FDB, FDF, FDM, FDS, FEP, FFP, FICP, FID, FIDA, FIDE, FMP, FOP, FPP, FRP, FSP, FTP, FUP, GAP, GCP, GDB, GDC, GDD, GDE, GDM, GDN, GDPR, GDPs, GDT, GID, GIP, GKP, GMP, GP, GPP, GSP, GTP, GWP, Gd, HAP, HBP, HDCP, HDE, HDF, HDI, HDL, HDM, HDO, HDPE, HDPS, HIP, HLP, HMP, HTP, I&S, I10, I11, I12, I15, I16, I19, I20, I21, I22, I24, I25, I26, I27, I29, I30, I35, I37, I39, I40, I42, I43, I44, I45, I49, I53, I64, I65, I66, I68, I69, I70, I71, I72, I73, I74, I77, I78, I79, I80, I81, I82, I83, I84, I85, I86, I87, I88, I89, I95, I97, I99, IA, IA4, IA8, IAD, IADC, IAE, IAF, IAG, IAH, IAI, IAN, IAO, IAV, IB1, IBA, IBB, IBC, IBD, IBE, IBL, IBO, IBR, IC, ICA, ICAP, ICB, ICD, ICE, ICF, ICH, ICI, ICPE, ID.3, ID3S, IDES, IDEs, IDFA, IDMS, IDSL, IDed, IE, IEF, IEG, IEM, IEPs, IES, IF, IFD, IFF, IFI, IFM, IFN, IFO, IFOP, IFS, IFU, IGC, IGE, IGF, IGH, IGI, IGM, IGN, IGRP, IGS, IHT, IHU, IIA, IIC, IIF, IIM, IIN, IIS, IJ, IJF, IJM, IKB, IL, IL2, ILC, ILG, ILM, ILN, IM, IMB, IMD, IMDB, IMDb, IME, IMH, IMK, IMN, IMS, IMV, IMs, IN, INA, INB, INC, IND, INE, INF, ING, INH, INM, INPP, INPT, INR, INSP, INT, IOB, IOF, IOI, ION, IOPG, IOR, IOS, IOT, IOV, IPB, IPD, IPE, IPF, IPG, IPGP, IPJ, IPM, IPPJ, IPT, IPY, IPs, IQR, IR, IRB, IRC, IRD, IRDE, IRE, IRG, IRI, IRM, IRN, IRR, IRT, IRU, IS, ISA, ISB, ISC, ISD, ISDA, ISEP, ISF, ISG, ISI, ISIP, ISK, ISL, ISM, ISN, ISO, ISPS, ISPs, ISR, ISS, IST, ISU, ISV, IT, ITA, ITB, ITK, ITL, ITPC, ITS, IU, IUF, IV, IVD, IVF, IVG, IVI, IVR, IWC, IWF, IXC, IXL, IXV, IZ, Ia, Ian, Ibo, Ike, Ila, Inc, Io, IoT, Ir, Ira, Ito, JAP, JCP, JDE, JDG, JDK, JDN, JMP, JPP, JSP, Jap, KDG, KDS, KOP, KP, LBP, LCP, LDD, LDE, LDF, LDH, LDK, LDL, LDT, LDW, LEP, LFP, LISP, LLP, LP, LRP, Lidl, MAP, MBP, MDA, MDB, MDD, MDE, MDG, MDJ, MDK, MDN, MDQ, MDV, MDs, MEP, MFP, MHP, MID, MIDI, MKP, MLP, MOP, MP, MTP, MUP, Md, NAP, NCDP, NCP, ND, NDF, NDH, NDK, NDMP, NDR, NDS, NDT, NID, NIDA, NJP, NPP, NRP, NVP, Nd, Np, OCP, OD, ODB, ODC, ODD, ODF, ODG, ODI, ODM, ODN, ODR, ODS, ODT, OEP, OLP, OMP, ONP, OOP, OTP, OVP, P, P&P, P2P, PAP, PDB, PDC, PDD, PDG, PDI, PDJ, PDK, PDL, PDO, PDU, PDX, PEP, PGP, PHP, PID, PIDs, PIP, PLP, PMP, POP, PP, PQP, PRP, PTP, PUP, PVP, Pd, QDD, QDR, QFP, RAP, RD, RDB, RDF, RDI, RDJ, RDM, RDT, REP, RFP, RGP, RHP, RP, RPP, RTP, RUP, Rd, S&P, SCP, SDD, SDE, SDF, SDG, SDH, SDJ, SDN, SDO, SDPC, SDPJ, SDPS, SDU, SDV, SEP, SFP, SHP, SID, SIDA, SIP, SIPP, SIRP, SJP, SP, SPP, SQP, SRP, Sep, Sid, Sp, TAP, TBP, TDA, TDC, TDE, TDF, TDG, TDM, TDPS, TDR, TDS, TDT, TEP, TGP, THP, TID, TIP, TIPP, TKP, TLP, TMP, TNP, TOP, TP, TPP, TRP, TSP, TTP, TUP, TVP, UAP, UCP, UDB, UDL, UDM, UDPS, UDS, UFP, UID, UIP, UMP, UNDP, UP, UPP, UTP, UWP, Udo, VAP, VCP, VD, VDA, VDB, VDC, VDD, VDI, VDM, VDN, VDX, VHP, VMP, VOP, VPP, VRP, VSP, VTP, WDC, WDI, WDM, WDS, WFP, WIMP, WIP, WP, WPP, WSP, WTP, XAP, XD, XMP, XP, XTP, YP, ZAP, ZDJ, ZEP, ZIP, ZMP, ZNP, ZPP, ZSP, ZUP, Bap, Db, Dd, Dep, Didn, Dm, Dpi, Hp, iOS, Ii, Iii, Int, Isl, Ism, Isn, Ite, Iv, Ix, Lop, Pimp, Pp, Tmp, Ump, Vid, Yd, Yid, Yids, ÉTP, ICQ, INI, IOPS, KDE, NXP, OIDC
Rule: https://community.languagetool.org/rule/show/MORFOLOGIK_RULE_EN_US?lang=en-US
Category: TYPOS

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[LanguageTool] reported by reviewdog 🐶
Possible spelling mistake found. (MORFOLOGIK_RULE_EN_US)
Suggestions: Key cloak
Rule: https://community.languagetool.org/rule/show/MORFOLOGIK_RULE_EN_US?lang=en-US
Category: TYPOS


---

## Selecting an Entity Resolution Service

You can configure which ERS to use by updating the platform's configuration file (e.g., `config.yaml`).
```yaml
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[LanguageTool] reported by reviewdog 🐶
Possible spelling mistake found. (MORFOLOGIK_RULE_EN_US)
Suggestions: YAML, yam, yams, yawl, AML, SAML, Yael, ya ml, all, game, name, same, came, call, fall, Hall, Paul, am, ball, camp, hall, rail, tail, wall, yard, Earl, fame, jail, mail, mall, tall, Carl, Karl, Sam, Tamil, Wall, calm, fail, lamp, palm, sail, Ball, Dame, HTML, RAM, XML, Yale, Yang, bail, dam, dams, hail, haul, nail, ram, ramp, AOL, Gaul, Ham, Lamb, Rama, SAM, amp, cam, camel, damp, earl, ham, jams, lamb, ml, tame, yarn, AMX, ARL, Camel, Dahl, Gael, Jamal, Nam, Pam, Reims, Saul, cal, cams, gal, gall, lame, pal, rams, yang, yaw, yell, Baal, EAM, Gall, JAL, Kama, Neill, Raul, SGML, Weill, Yuma, balm, dame, hams, lama, mama, marl, pall, tam, vamp, yak, FAM, GAM, Jami, NAL, Yalu, Yank, amt, maul, pail, pawl, val, wail, yaks, yum, Tami, UAM, awl, bam, jamb, yank, yawn, yay, Gail, Jamel, RAMs, ail, amu, iamb, mam, tamp, tams, yawls, yaws, bawl, yap, yaps, yowl, AMC, Amy, gamy, jam, lams, AAL, AAM, AAPL, ABL, ACL, ADL, AEL, AFL, AGL, AHL, AJL, AKL, AL, ALL, AM, AMA, AMD, AME, AMF, AMG, AMH, AMI, AMJ, AMK, AMLA, AMLO, AMM, AMN, AMO, AMP, AMQ, AMR, AMS, AMSL, AMT, AMU, AMV, AMW, AMY, AMZ, ANL, APL, AQL, ASL, ATL, AUL, AVL, AXL, AYL, Al, Am, BAEL, BAM, BML, CAL, CAM, CAMT, CAMY, CAVL, CML, Cal, DAL, EAL, EARL, EML, GAL, GHML, GML, Gama, HAMC, Hal, Hamm, IAMT, Jame, Jamil, KAL, Kamal, Kamil, LAMA, LAMP, MAL, MAM, ML, MML, NAM, NAMC, OAL, OAM, OPML, Ocaml, PAL, PAM, PML, RAMA, RAMQ, RAMS, Raúl, SAMLE, SAMU, SARL, SML, Sal, Sami, Saúl, TAM, UAL, UML, VAM, VML, VRML, Val, WAM, WAMP, WML, YAC, YAG, YAR, YEM, YKL, YL, YM, YMMV, YMN, YMO, YQM, YTL, YUL, YUM, Yacc, Yann, ZAM, camo, damn, lam, mL, mams, natl, ya, ASML, CATL, FBML, OCaml, RAPL, TOML
Rule: https://community.languagetool.org/rule/show/MORFOLOGIK_RULE_EN_US?lang=en-US
Category: TYPOS

services:
entityresolution:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[LanguageTool] reported by reviewdog 🐶
Possible spelling mistake found. (MORFOLOGIK_RULE_EN_US)
Suggestions: entity resolution
Rule: https://community.languagetool.org/rule/show/MORFOLOGIK_RULE_EN_US?lang=en-US
Category: TYPOS

mode: "claims" # Options: "keycloak", "claims"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[LanguageTool] reported by reviewdog 🐶
Possible spelling mistake found. (MORFOLOGIK_RULE_EN_US)
Suggestions: key cloak
Rule: https://community.languagetool.org/rule/show/MORFOLOGIK_RULE_EN_US?lang=en-US
Category: TYPOS

```

### Default Behavior:
If no ERS is specified, the platform defaults to the Keycloak ERS.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[LanguageTool] reported by reviewdog 🐶
Possible spelling mistake found. (MORFOLOGIK_RULE_EN_US)
Suggestions: Key cloak
Rule: https://community.languagetool.org/rule/show/MORFOLOGIK_RULE_EN_US?lang=en-US
Category: TYPOS


By configuring the appropriate ERS, you can tailor the platform to your specific IdP and token requirements.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[LanguageTool] reported by reviewdog 🐶
Possible spelling mistake found. (MORFOLOGIK_RULE_EN_US)
Suggestions: IDP, GDP, FDP, ID, IDF, Id, ADP, ISP, PDP, UDP, ICP, IDs, IAP, IDC, IEP, IFP, IPP, Imp, EDP, IBP, IDB, IDG, IDL, MDP, CDP, IP, NDP, BDP, DP, I3P, IBDP, ID3, IDE, IDH, IDK, IDM, IDN, IDPs, IDQ, IDR, IDS, IDT, IGP, IHP, ILP, IMP, INP, IOP, IRP, ITP, Ida, KDP, ODP, RDP, SDP, TDP, Ids, Id P, I2P, In, Is, I, It, Did, If, Its, Up, Do, Side, Top, Idea, Mid, Wide, CD, Dr, Add, Aid, Ice, Map, Pop, AIDS, IBM, Ad, Bid, Cap, Cup, Gap, Hip, Hop, Lap, Odd, Ride, Tip, CDs, HD, IRA, MVP, Ads, Hide, Ill, Ink, Ion, Kids, Rap, Tide, HP, ICT, IOC, IQ, SD, SVP, Aide, Aids, Bids, Cop, Hid, Idol, Inn, Kid, Lid, Lip, Rid, Tap, ADC, BNP, CDC, CDU, DA, DDR, DDT, DL, DM, DSP, DT, DX, ESP, GDR, GOP, ICU, IEC, IIT, IMF, INS, IPA, IPO, IRS, ITF, ITU, JD, JP, NADP, NP, PD, PDF, PPP, PSP, SAP, SDS, SNP, TCP, VIP, VP, Amp, dB, Dip, Eds, Icy, Idle, Ire, Rip, Sap, Zip, ADR, ARP, Ada, BMP, CCP, CDA, CDR, CPP, CSP, DG, DUP, EPP, FD, FDR, FP, GBP, GNP, IAS, IAU, ICL, ICS, IFA, IFC, IG, ILS, IMG, IMO, IPC, IPS, IRL, ISDN, ITC, ITN, ITT, Indy, Kidd, LD, MCP, MDC, MDR, MMP, MPP, NDA, NLP, PCP, PDA, PDS, PNP, RDS, Rep, SDA, SDK, SDL, SSP, TDI, UDF, USP, Vida, Bhp, Bop, Ivy, Limp, Ode, Pep, AD, ADD, ADT, Aida, BDS, CBP, CDO, CDT, CEP, CFP, CLP, CTP, DDS, DPI, DQ, Dido, FDI, FIP, FLP, GDF, GDI, GRP, HDB, HDD, HDR, HDV, HSP, IAA, IAC, IBS, ICM, ICMP, ICR, IEA, IED, IFL, IFPI, IFR, IGA, IH, IHS, IMA, IMAP, IMC, IMT, IMU, IOM, IPN, IPR, IVB, IVs, JDM, LDA, LDAP, LMP, LSP, MDI, MDS, NDC, NEP, NTP, ORP, PDT, PFP, PKP, RCP, RDA, RDC, RIP, SDI, SDR, SIDS, SLP, SMP, SOP, STP, UDC, UDR, UUP, WAP, WD, Asp, Esp, Exp, Ftp, Lids, Midi, Mop, Nap, Pip, Pup, Sip, Sup, Tidy, Vide, Adm, CDN, CIDR, DDA, DDB, DDC, DDD, DDE, DMP, DPD, DPT, DTP, FDC, GDS, GLP, IAB, ICN, ICO, IPI, IQs, ITE, IUD, Ina, Iva, JDL, KTP, KVP, LDC, LPP, MDF, MDL, MDM, MDT, MDX, MIP, MNP, NDB, RSP, SDC, SDM, SGP, TDD, Dz, Idly, Ilk, Imps, Inf, Kip, Lido, Lisp, Mp, Nip, Pap, Wisp, CDV, DPN, DPs, DVP, Fido, Gide, HDS, IOU, IRQ, OAP, PDQ, Twp, VDU, Adj, Ado, Alp, Bide, Fop, Gimp, Hep, Idem, Ifs, Sop, Wimp, Zap, FIDS, VDT, Adv, App, Hap, Ides, Opp, Rids, Tsp, Yip, Yup, Ind, ODs, Gyp, Irk, Simp, Yap, Yep, ATP, DJ, ICC, ITV, LDS, MD, TD, Dpt, Op, Avdp, Dds, 1D, 2D, 3D, 3DO, 4D, 8D, A&P, AAP, ABP, ACP, ADA, ADB, ADF, ADG, ADH, ADI, ADJ, ADK, ADL, ADM, ADN, ADQ, ADS, ADU, ADV, ADX, ADY, ADZ, AEP, AGP, AID, AIP, AIPP, AJP, AKP, ALP, AMP, ANP, AOP, AP, APP, AQP, ASP, AUP, AVP, AWP, AXP, AYP, BAP, BBP, BCP, BD, BDA, BDB, BDC, BDD, BDE, BDF, BDG, BDH, BDI, BDJ, BDK, BDL, BDM, BDMP, BDN, BDO, BDQ, BDR, BDT, BDU, BDV, BDW, BDX, BDY, BDZ, BEP, BFP, BGP, BHP, BID, BJP, BKP, BLP, BOP, BP, BPP, BQP, BRP, BSP, BTP, BUP, BVP, BWP, BZP, CAP, CDB, CDD, CDDP, CDE, CDF, CDG, CDH, CDI, CDJ, CDK, CDL, CDM, CDS, CDW, CDZ, CHP, CID, CIEP, CIP, CISP, CMP, CNDP, CNP, COP, CP, CPDP, CQP, CRDP, CRP, CUP, CVP, CWP, CXP, CYP, CZP, Cd, Cid, CoP, D, D8, DAP, DBP, DC, DCP, DD, DDH, DDI, DDL, DDM, DDO, DDSP, DDV, DE, DEP, DFP, DGP, DH, DHP, DI, DID, DIP, DIPP, DK, DKP, DLP, DN, DNP, DO, DOP, DPA, DPB, DPC, DPE, DPH, DPO, DPS, DPU, DPW, DR, DRP, DS, Di, Didi, Du, Dy, E&P, EAP, EBP, ECP, EDA, EDB, EDC, EDD, EDF, EDI, EDL, EDM, EDPR, EDS, EDT, EDU, EDW, EDX, EEP, EGP, EID, EIDE, EIP, EJP, ELP, EMP, ENP, EP, ERP, ETP, EWP, Ed, FAP, FCP, FDA, FDB, FDF, FDM, FDS, FEP, FFP, FICP, FID, FIDA, FIDE, FMP, FOP, FPP, FRP, FSP, FTP, FUP, GAP, GCP, GDB, GDC, GDD, GDE, GDM, GDN, GDPR, GDPs, GDT, GID, GIP, GKP, GMP, GP, GPP, GSP, GTP, GWP, Gd, HAP, HBP, HDCP, HDE, HDF, HDI, HDL, HDM, HDO, HDPE, HDPS, HIP, HLP, HMP, HTP, I&S, I10, I11, I12, I15, I16, I19, I20, I21, I22, I24, I25, I26, I27, I29, I30, I35, I37, I39, I40, I42, I43, I44, I45, I49, I53, I64, I65, I66, I68, I69, I70, I71, I72, I73, I74, I77, I78, I79, I80, I81, I82, I83, I84, I85, I86, I87, I88, I89, I95, I97, I99, IA, IA4, IA8, IAD, IADC, IAE, IAF, IAG, IAH, IAI, IAN, IAO, IAV, IB1, IBA, IBB, IBC, IBD, IBE, IBL, IBO, IBR, IC, ICA, ICAP, ICB, ICD, ICE, ICF, ICH, ICI, ICPE, ID.3, ID3S, IDES, IDEs, IDFA, IDMS, IDSL, IDed, IE, IEF, IEG, IEM, IEPs, IES, IF, IFD, IFF, IFI, IFM, IFN, IFO, IFOP, IFS, IFU, IGC, IGE, IGF, IGH, IGI, IGM, IGN, IGRP, IGS, IHT, IHU, IIA, IIC, IIF, IIM, IIN, IIS, IJ, IJF, IJM, IKB, IL, IL2, ILC, ILG, ILM, ILN, IM, IMB, IMD, IMDB, IMDb, IME, IMH, IMK, IMN, IMS, IMV, IMs, IN, INA, INB, INC, IND, INE, INF, ING, INH, INM, INPP, INPT, INR, INSP, INT, IOB, IOF, IOI, ION, IOPG, IOR, IOS, IOT, IOV, IPB, IPD, IPE, IPF, IPG, IPGP, IPJ, IPM, IPPJ, IPT, IPY, IPs, IQR, IR, IRB, IRC, IRD, IRDE, IRE, IRG, IRI, IRM, IRN, IRR, IRT, IRU, IS, ISA, ISB, ISC, ISD, ISDA, ISEP, ISF, ISG, ISI, ISIP, ISK, ISL, ISM, ISN, ISO, ISPS, ISPs, ISR, ISS, IST, ISU, ISV, IT, ITA, ITB, ITK, ITL, ITPC, ITS, IU, IUF, IV, IVD, IVF, IVG, IVI, IVR, IWC, IWF, IXC, IXL, IXV, IZ, Ia, Ian, Ibo, Ike, Ila, Inc, Io, IoT, Ir, Ira, Ito, JAP, JCP, JDE, JDG, JDK, JDN, JMP, JPP, JSP, Jap, KDG, KDS, KOP, KP, LBP, LCP, LDD, LDE, LDF, LDH, LDK, LDL, LDT, LDW, LEP, LFP, LISP, LLP, LP, LRP, Lidl, MAP, MBP, MDA, MDB, MDD, MDE, MDG, MDJ, MDK, MDN, MDQ, MDV, MDs, MEP, MFP, MHP, MID, MIDI, MKP, MLP, MOP, MP, MTP, MUP, Md, NAP, NCDP, NCP, ND, NDF, NDH, NDK, NDMP, NDR, NDS, NDT, NID, NIDA, NJP, NPP, NRP, NVP, Nd, Np, OCP, OD, ODB, ODC, ODD, ODF, ODG, ODI, ODM, ODN, ODR, ODS, ODT, OEP, OLP, OMP, ONP, OOP, OTP, OVP, P, P&P, P2P, PAP, PDB, PDC, PDD, PDG, PDI, PDJ, PDK, PDL, PDO, PDU, PDX, PEP, PGP, PHP, PID, PIDs, PIP, PLP, PMP, POP, PP, PQP, PRP, PTP, PUP, PVP, Pd, QDD, QDR, QFP, RAP, RD, RDB, RDF, RDI, RDJ, RDM, RDT, REP, RFP, RGP, RHP, RP, RPP, RTP, RUP, Rd, S&P, SCP, SDD, SDE, SDF, SDG, SDH, SDJ, SDN, SDO, SDPC, SDPJ, SDPS, SDU, SDV, SEP, SFP, SHP, SID, SIDA, SIP, SIPP, SIRP, SJP, SP, SPP, SQP, SRP, Sep, Sid, Sp, TAP, TBP, TDA, TDC, TDE, TDF, TDG, TDM, TDPS, TDR, TDS, TDT, TEP, TGP, THP, TID, TIP, TIPP, TKP, TLP, TMP, TNP, TOP, TP, TPP, TRP, TSP, TTP, TUP, TVP, UAP, UCP, UDB, UDL, UDM, UDPS, UDS, UFP, UID, UIP, UMP, UNDP, UP, UPP, UTP, UWP, Udo, VAP, VCP, VD, VDA, VDB, VDC, VDD, VDI, VDM, VDN, VDX, VHP, VMP, VOP, VPP, VRP, VSP, VTP, WDC, WDI, WDM, WDS, WFP, WIMP, WIP, WP, WPP, WSP, WTP, XAP, XD, XMP, XP, XTP, YP, ZAP, ZDJ, ZEP, ZIP, ZMP, ZNP, ZPP, ZSP, ZUP, Bap, Db, Dd, Dep, Didn, Dm, Dpi, Hp, iOS, Ii, Iii, Int, Isl, Ism, Isn, Ite, Iv, Ix, Lop, Pimp, Pp, Tmp, Ump, Vid, Yd, Yid, Yids, ÉTP, ICQ, INI, IOPS, KDE, NXP, OIDC
Rule: https://community.languagetool.org/rule/show/MORFOLOGIK_RULE_EN_US?lang=en-US
Category: TYPOS


## Examples

### Claims Entity Resolution Service with Token and Subject Mapping

This example demonstrates how the **Claims Entity Resolution Service (ERS)** processes a token to resolve claims into entities and maps a specific claim value to an attribute using a subject mapping.

#### Scenario

A user has a token with the following claims:
```json
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[LanguageTool] reported by reviewdog 🐶
Possible spelling mistake found. (MORFOLOGIK_RULE_EN_US)
Suggestions: Jason, JSON, son, Jon, SON, Son, j son, BSON, on, so, won, non, upon, John, San, job, join, soon, iron, song, sons, ISBN, Jean, Joe, moon, sun, ton, ESPN, José, Juan, Moon, icon, ion, lion, Jo, Joan, Jose, Josh, Leon, Lyon, Mason, Sony, arson, con, joy, noon, Aston, Avon, DSO, Dion, Eton, Jain, Joy, Jun, Juno, MSN, SOS, Sol, Zion, bison, neon, soy, Anson, ISDN, JSA, Jen, Mon, Olson, Orson, SOE, SSN, Tyson, USO, axon, boon, boson, mason, sod, sow, sown, syn, ASN, Aron, CSO, ESO, ISSN, JSC, Jan, Joni, Jonson, Judson, LSO, Lon, PSO, SOP, eon, exon, jog, jun, ESOL, JSTOR, Jolson, SSO, goon, jinn, loon, meson, ESN, ESOP, Epson, Jayson, Jenn, SLN, SOB, anon, jean, joss, jot, sob, soc, sop, sou, josh, peon, sot, Jpn, Ron, SOs, assn, econ, sin, AON, ASIN, ASOS, Aon, BSN, BSO, CON, CSOB, CSOs, DON, DSN, DSTN, Deon, Don, Dyson, Edson, Elon, FSN, GSO, GSOC, HON, Hon, ION, ISEN, ISIN, ISN, ISO, ISOC, ISOs, JDN, JGO, JO, JOC, JOJ, JOR, JPN, JPO, JS, JS2, JSB, JSDB, JSF, JSL, JSP, JSU, JSX, Jaén, Jin, Jio, Job, Joop, Jørn, Keon, LSN, León, Léon, MON, MSIN, MSO, MSRN, NON, ON, PON, PSN, PSOH, PSTN, RSO, SAN, SCN, SDN, SGN, SHN, SIN, SKN, SMN, SN, SO, SOA, SOC, SOD, SOI, SOX, STN, SVN, SYN, Sen, Sion, Sn, SoC, Soc, Sun, TSN, TSO, USN, VSN, VSOP, VSOT, WON, WSN, XSN, don, hon, isn, john, muon, pron, sen, sol, tron, yon
Rule: https://community.languagetool.org/rule/show/MORFOLOGIK_RULE_EN_US?lang=en-US
Category: TYPOS

{
"sub": "user123",
"roles": ["developer", "admin"],
"department": "engineering"
}
```
We want to map the `department` claim `"engineering"` to an attribute that grants access to a specific resource.

#### Step 1: Token Processing by Claims ERS
The **Claims ERS** processes the token to extract claims and resolve them into entities. The getEntitiesFromToken function in the Claims ERS converts the token into an entity representation.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[LanguageTool] reported by reviewdog 🐶
Possible spelling mistake found. (MORFOLOGIK_RULE_EN_US)
Rule: https://community.languagetool.org/rule/show/MORFOLOGIK_RULE_EN_US?lang=en-US
Category: TYPOS


##### Resolved entity:
```json
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[LanguageTool] reported by reviewdog 🐶
Possible spelling mistake found. (MORFOLOGIK_RULE_EN_US)
Suggestions: Jason, JSON, son, Jon, SON, Son, j son, BSON, on, so, won, non, upon, John, San, job, join, soon, iron, song, sons, ISBN, Jean, Joe, moon, sun, ton, ESPN, José, Juan, Moon, icon, ion, lion, Jo, Joan, Jose, Josh, Leon, Lyon, Mason, Sony, arson, con, joy, noon, Aston, Avon, DSO, Dion, Eton, Jain, Joy, Jun, Juno, MSN, SOS, Sol, Zion, bison, neon, soy, Anson, ISDN, JSA, Jen, Mon, Olson, Orson, SOE, SSN, Tyson, USO, axon, boon, boson, mason, sod, sow, sown, syn, ASN, Aron, CSO, ESO, ISSN, JSC, Jan, Joni, Jonson, Judson, LSO, Lon, PSO, SOP, eon, exon, jog, jun, ESOL, JSTOR, Jolson, SSO, goon, jinn, loon, meson, ESN, ESOP, Epson, Jayson, Jenn, SLN, SOB, anon, jean, joss, jot, sob, soc, sop, sou, josh, peon, sot, Jpn, Ron, SOs, assn, econ, sin, AON, ASIN, ASOS, Aon, BSN, BSO, CON, CSOB, CSOs, DON, DSN, DSTN, Deon, Don, Dyson, Edson, Elon, FSN, GSO, GSOC, HON, Hon, ION, ISEN, ISIN, ISN, ISO, ISOC, ISOs, JDN, JGO, JO, JOC, JOJ, JOR, JPN, JPO, JS, JS2, JSB, JSDB, JSF, JSL, JSP, JSU, JSX, Jaén, Jin, Jio, Job, Joop, Jørn, Keon, LSN, León, Léon, MON, MSIN, MSO, MSRN, NON, ON, PON, PSN, PSOH, PSTN, RSO, SAN, SCN, SDN, SGN, SHN, SIN, SKN, SMN, SN, SO, SOA, SOC, SOD, SOI, SOX, STN, SVN, SYN, Sen, Sion, Sn, SoC, Soc, Sun, TSN, TSO, USN, VSN, VSOP, VSOT, WON, WSN, XSN, don, hon, isn, john, muon, pron, sen, sol, tron, yon
Rule: https://community.languagetool.org/rule/show/MORFOLOGIK_RULE_EN_US?lang=en-US
Category: TYPOS

{
"id": "jwtentity-claims",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[LanguageTool] reported by reviewdog 🐶
Possible spelling mistake found. (MORFOLOGIK_RULE_EN_US)
Rule: https://community.languagetool.org/rule/show/MORFOLOGIK_RULE_EN_US?lang=en-US
Category: TYPOS

"category": "CATEGORY_SUBJECT",
"additional_props": [
{
"department": "engineering",
"roles": ["developer", "admin"]
}
]
}
```

#### Step 2: Subject Mapping Configuration
The subject mapping defines how the `department` claim is mapped to an attribute. For example:
```yaml
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[LanguageTool] reported by reviewdog 🐶
Possible spelling mistake found. (MORFOLOGIK_RULE_EN_US)
Suggestions: YAML, yam, yams, yawl, AML, SAML, Yael, ya ml, all, game, name, same, came, call, fall, Hall, Paul, am, ball, camp, hall, rail, tail, wall, yard, Earl, fame, jail, mail, mall, tall, Carl, Karl, Sam, Tamil, Wall, calm, fail, lamp, palm, sail, Ball, Dame, HTML, RAM, XML, Yale, Yang, bail, dam, dams, hail, haul, nail, ram, ramp, AOL, Gaul, Ham, Lamb, Rama, SAM, amp, cam, camel, damp, earl, ham, jams, lamb, ml, tame, yarn, AMX, ARL, Camel, Dahl, Gael, Jamal, Nam, Pam, Reims, Saul, cal, cams, gal, gall, lame, pal, rams, yang, yaw, yell, Baal, EAM, Gall, JAL, Kama, Neill, Raul, SGML, Weill, Yuma, balm, dame, hams, lama, mama, marl, pall, tam, vamp, yak, FAM, GAM, Jami, NAL, Yalu, Yank, amt, maul, pail, pawl, val, wail, yaks, yum, Tami, UAM, awl, bam, jamb, yank, yawn, yay, Gail, Jamel, RAMs, ail, amu, iamb, mam, tamp, tams, yawls, yaws, bawl, yap, yaps, yowl, AMC, Amy, gamy, jam, lams, AAL, AAM, AAPL, ABL, ACL, ADL, AEL, AFL, AGL, AHL, AJL, AKL, AL, ALL, AM, AMA, AMD, AME, AMF, AMG, AMH, AMI, AMJ, AMK, AMLA, AMLO, AMM, AMN, AMO, AMP, AMQ, AMR, AMS, AMSL, AMT, AMU, AMV, AMW, AMY, AMZ, ANL, APL, AQL, ASL, ATL, AUL, AVL, AXL, AYL, Al, Am, BAEL, BAM, BML, CAL, CAM, CAMT, CAMY, CAVL, CML, Cal, DAL, EAL, EARL, EML, GAL, GHML, GML, Gama, HAMC, Hal, Hamm, IAMT, Jame, Jamil, KAL, Kamal, Kamil, LAMA, LAMP, MAL, MAM, ML, MML, NAM, NAMC, OAL, OAM, OPML, Ocaml, PAL, PAM, PML, RAMA, RAMQ, RAMS, Raúl, SAMLE, SAMU, SARL, SML, Sal, Sami, Saúl, TAM, UAL, UML, VAM, VML, VRML, Val, WAM, WAMP, WML, YAC, YAG, YAR, YEM, YKL, YL, YM, YMMV, YMN, YMO, YQM, YTL, YUL, YUM, Yacc, Yann, ZAM, camo, damn, lam, mL, mams, natl, ya, ASML, CATL, FBML, OCaml, RAPL, TOML
Rule: https://community.languagetool.org/rule/show/MORFOLOGIK_RULE_EN_US?lang=en-US
Category: TYPOS

subject_mappings:
- attribute_value_id: "74babca6-016f-4f3e-a99b-4e46ea8d0fd8" # ID of the attribute value
subject_condition_set:
conditions:
- key: "department"
operator: "SUBJECT_MAPPING_OPERATOR_ENUM_IN"
values:
- "engineering"
```
This configuration specifies:

- The `department` claim must have the value `"engineering"`.
- If the condition is met, the user is granted the attribute with ID `74babca6-016f-4f3e-a99b-4e46ea8d0fd8`.

#### Step 3: Subject Mapping Evaluation
The resolved entity is evaluated against the subject mapping. The `department` claim matches the condition `"engineering"`, so the mapping is applied.

Evaluation Logic:

1. The `department` claim is extracted from the resolved entity.
2. The value `"engineering"` is checked against the subject mapping condition.
3. Since the condition is satisfied, the attribute value (`74babca6-016f-4f3e-a99b-4e46ea8d0fd8`) is granted.

#### Step 4: Result
The user is granted an entitlement to the attribute value corresponding to `74babca6-016f-4f3e-a99b-4e46ea8d0fd8`. Ex: `https://example.com/attr/department/value/engineering`


#### Summary
This example illustrates how the **Claims ERS** processes a token, resolves claims into entities, and evaluates subject mappings to grant entitlements. By defining subject mappings, administrators can enforce fine-grained access control based on token claims.
Loading