Skip to content

[Entity Store] Use seed as related.user alias resolution target - #280870

Merged
maxcold merged 4 commits into
mainfrom
worktree-related-user-seed-target
Aug 7, 2026
Merged

[Entity Store] Use seed as related.user alias resolution target#280870
maxcold merged 4 commits into
mainfrom
worktree-related-user-seed-target

Conversation

@maxcold

@maxcold maxcold commented Jul 24, 2026

Copy link
Copy Markdown
Contributor

Summary

Fixes related.user alias resolution target selection so the seed IDP entity always becomes the resolution target, instead of namespace-priority selection (AD > Okta > Entra ID).

Previously, when Entra ID (or another lower-priority IDP) asserted cross-system aliases via related.user, Active Directory could still win as the golden/target entity. The seed is the data-driven authority because it is the IDP that declared the aliases.

Resolves the "target-direction product confirm" open item from the QA report in #275776.

Checklist

Check the PR satisfies following conditions.

Reviewers should verify this PR satisfies this list as well.

  • Any text added follows EUI's writing guidelines, uses sentence case text and includes i18n support
  • Documentation was added for features that require explanation or tutorials
  • Unit or functional tests were updated or added to match the most common scenarios
  • If a plugin configuration key changed, check if it needs to be allowlisted in the cloud and added to the docker list
  • This was checked for breaking HTTP API changes, and any breaking changes have been approved by the breaking-change committee. The release_note:breaking label should be applied in these situations.
  • Flaky Test Runner was used on any tests changed
  • The PR description includes the appropriate Release Notes section, and the correct release_note:* label is applied per the guidelines
  • Review the backport guidelines and apply applicable backport:* labels.

Identify risks

Behavior change in alias target direction (medium). Existing related.user resolution groups that previously preferred AD via namespace priority will now prefer the asserting seed IDP. Mitigated by unit coverage for seed-vs-higher-priority-candidate, and scoped only to the default-off related_user_alias_resolution maintainer (email automated-resolution unchanged).

The asserting IDP that declared cross-system aliases is the authority,
so cascade-link onto the seed instead of namespace-priority selection.
@maxcold maxcold added release_note:skip Skip the PR/issue when compiling release notes backport:skip This PR does not require backporting Team:Cloud Security Cloud Security team related v9.6.0 labels Jul 24, 2026
@maxcold

maxcold commented Aug 5, 2026

Copy link
Copy Markdown
Contributor Author

/ci

@kibanamachine

Copy link
Copy Markdown
Contributor

💛 Build succeeded, but was flaky

Failed CI Steps

Test Failures

  • [job] [logs] FTR Configs #126 / Entity Analytics - Watchlists @ess @serverless @skipInServerlessMKI Watchlist Lifecycle should remove all entities from the watchlist index when the watchlist is deleted

Metrics [docs]

✅ unchanged

History

@maxcold maxcold added backport:version Backport to applied version labels v9.5.0 and removed backport:skip This PR does not require backporting labels Aug 6, 2026
@maxcold
maxcold marked this pull request as ready for review August 6, 2026 18:27
@maxcold
maxcold requested a review from a team as a code owner August 6, 2026 18:27
@maxcold
maxcold requested a review from ymao1 August 6, 2026 18:27
@infra-vault-gh-plugin-prod

Copy link
Copy Markdown

Pinging @elastic/contextual-security-apps (Team:Cloud Security)

@CAWilson94 CAWilson94 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM

@maxcold
maxcold merged commit 407a3b5 into main Aug 7, 2026
75 checks passed
@maxcold
maxcold deleted the worktree-related-user-seed-target branch August 7, 2026 09:10
@kibanamachine

Copy link
Copy Markdown
Contributor

Starting backport for target branches: 9.5

https://github.com/elastic/kibana/actions/runs/31164797031

@kibanamachine

Copy link
Copy Markdown
Contributor

💚 All backports created successfully

Status Branch Result
9.5

Note: Successful backport PRs will be merged automatically after passing CI.

Questions ?

Please refer to the Backport tool documentation

kibanamachine added a commit that referenced this pull request Aug 7, 2026
…#280870) (#283605)

# Backport

This will backport the following commits from `main` to `9.5`:
- [[Entity Store] Use seed as related.user alias resolution target
(#280870)](#280870)

<!--- Backport version: 9.6.6 -->

### Questions ?
Please refer to the [Backport tool
documentation](https://github.com/sorenlouv/backport)

<!--BACKPORT [{"author":{"name":"Maxim
Kholod","email":"maxim.kholod@elastic.co"},"sourceCommit":{"committedDate":"2026-08-07T09:10:47Z","message":"[Entity
Store] Use seed as related.user alias resolution target (#280870)\n\n##
Summary\n\nFixes related.user alias resolution target selection so the
**seed IDP\nentity always becomes the resolution target**, instead
of\nnamespace-priority selection (`AD > Okta > Entra
ID`).\n\nPreviously, when Entra ID (or another lower-priority IDP)
asserted\ncross-system aliases via `related.user`, Active Directory
could still\nwin as the golden/target entity. The seed is the
data-driven authority\nbecause it is the IDP that declared the
aliases.\n\nResolves the \"target-direction product confirm\" open item
from the QA\nreport in
https://github.com/elastic/kibana/issues/275776.\n\n###
Checklist\n\nCheck the PR satisfies following conditions. \n\nReviewers
should verify this PR satisfies this list as well.\n\n- [x] Any text
added follows [EUI's
writing\nguidelines](https://elastic.github.io/eui/#/guidelines/writing),
uses\nsentence case text and includes
[i18n\nsupport](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)\n-
[
]\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\nwas
added for features that require explanation or tutorials\n- [x] [Unit or
functional\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\nwere
updated or added to match the most common scenarios\n- [x] If a plugin
configuration key changed, check if it needs to be\nallowlisted in the
cloud and added to the
[docker\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\n-
[x] This was checked for breaking HTTP API changes, and any
breaking\nchanges have been approved by the breaking-change committee.
The\n`release_note:breaking` label should be applied in these
situations.\n- [ ] [Flaky
Test\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1)
was\nused on any tests changed\n- [x] The PR description includes the
appropriate Release Notes section,\nand the correct `release_note:*`
label is applied per
the\n[guidelines](https://www.elastic.co/docs/extend/kibana/contributing/workflow/how-we-use-github#release-notes)\n-
[x] Review the
[backport\nguidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing)\nand
apply applicable `backport:*` labels.\n\n### Identify
risks\n\n**Behavior change in alias target direction (medium).**
Existing\nrelated.user resolution groups that previously preferred AD
via\nnamespace priority will now prefer the asserting seed IDP.
Mitigated by\nunit coverage for seed-vs-higher-priority-candidate, and
scoped only to\nthe default-off `related_user_alias_resolution`
maintainer (email\nautomated-resolution
unchanged).","sha":"407a3b576ef2db37b8aaaafebf856b95ed70da61","branchLabelMapping":{"^v9.6.0$":"main","^v(\\d+).(\\d+).\\d+$":"$1.$2"}},"sourcePullRequest":{"labels":["release_note:skip","Team:Cloud
Security","backport:version","v9.5.0","v9.6.0"],"title":"[Entity Store]
Use seed as related.user alias resolution
target","number":280870,"url":"https://github.com/elastic/kibana/pull/280870","mergeCommit":{"message":"[Entity
Store] Use seed as related.user alias resolution target (#280870)\n\n##
Summary\n\nFixes related.user alias resolution target selection so the
**seed IDP\nentity always becomes the resolution target**, instead
of\nnamespace-priority selection (`AD > Okta > Entra
ID`).\n\nPreviously, when Entra ID (or another lower-priority IDP)
asserted\ncross-system aliases via `related.user`, Active Directory
could still\nwin as the golden/target entity. The seed is the
data-driven authority\nbecause it is the IDP that declared the
aliases.\n\nResolves the \"target-direction product confirm\" open item
from the QA\nreport in
https://github.com/elastic/kibana/issues/275776.\n\n###
Checklist\n\nCheck the PR satisfies following conditions. \n\nReviewers
should verify this PR satisfies this list as well.\n\n- [x] Any text
added follows [EUI's
writing\nguidelines](https://elastic.github.io/eui/#/guidelines/writing),
uses\nsentence case text and includes
[i18n\nsupport](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)\n-
[
]\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\nwas
added for features that require explanation or tutorials\n- [x] [Unit or
functional\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\nwere
updated or added to match the most common scenarios\n- [x] If a plugin
configuration key changed, check if it needs to be\nallowlisted in the
cloud and added to the
[docker\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\n-
[x] This was checked for breaking HTTP API changes, and any
breaking\nchanges have been approved by the breaking-change committee.
The\n`release_note:breaking` label should be applied in these
situations.\n- [ ] [Flaky
Test\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1)
was\nused on any tests changed\n- [x] The PR description includes the
appropriate Release Notes section,\nand the correct `release_note:*`
label is applied per
the\n[guidelines](https://www.elastic.co/docs/extend/kibana/contributing/workflow/how-we-use-github#release-notes)\n-
[x] Review the
[backport\nguidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing)\nand
apply applicable `backport:*` labels.\n\n### Identify
risks\n\n**Behavior change in alias target direction (medium).**
Existing\nrelated.user resolution groups that previously preferred AD
via\nnamespace priority will now prefer the asserting seed IDP.
Mitigated by\nunit coverage for seed-vs-higher-priority-candidate, and
scoped only to\nthe default-off `related_user_alias_resolution`
maintainer (email\nautomated-resolution
unchanged).","sha":"407a3b576ef2db37b8aaaafebf856b95ed70da61"}},"sourceBranch":"main","suggestedTargetBranches":["9.5"],"targetPullRequestStates":[{"branch":"9.5","label":"v9.5.0","branchLabelMappingKey":"^v(\\d+).(\\d+).\\d+$","isSourceBranch":false,"state":"NOT_CREATED"},{"branch":"main","label":"v9.6.0","branchLabelMappingKey":"^v9.6.0$","isSourceBranch":true,"state":"MERGED","url":"https://github.com/elastic/kibana/pull/280870","number":280870,"mergeCommit":{"message":"[Entity
Store] Use seed as related.user alias resolution target (#280870)\n\n##
Summary\n\nFixes related.user alias resolution target selection so the
**seed IDP\nentity always becomes the resolution target**, instead
of\nnamespace-priority selection (`AD > Okta > Entra
ID`).\n\nPreviously, when Entra ID (or another lower-priority IDP)
asserted\ncross-system aliases via `related.user`, Active Directory
could still\nwin as the golden/target entity. The seed is the
data-driven authority\nbecause it is the IDP that declared the
aliases.\n\nResolves the \"target-direction product confirm\" open item
from the QA\nreport in
https://github.com/elastic/kibana/issues/275776.\n\n###
Checklist\n\nCheck the PR satisfies following conditions. \n\nReviewers
should verify this PR satisfies this list as well.\n\n- [x] Any text
added follows [EUI's
writing\nguidelines](https://elastic.github.io/eui/#/guidelines/writing),
uses\nsentence case text and includes
[i18n\nsupport](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)\n-
[
]\n[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)\nwas
added for features that require explanation or tutorials\n- [x] [Unit or
functional\ntests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)\nwere
updated or added to match the most common scenarios\n- [x] If a plugin
configuration key changed, check if it needs to be\nallowlisted in the
cloud and added to the
[docker\nlist](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)\n-
[x] This was checked for breaking HTTP API changes, and any
breaking\nchanges have been approved by the breaking-change committee.
The\n`release_note:breaking` label should be applied in these
situations.\n- [ ] [Flaky
Test\nRunner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1)
was\nused on any tests changed\n- [x] The PR description includes the
appropriate Release Notes section,\nand the correct `release_note:*`
label is applied per
the\n[guidelines](https://www.elastic.co/docs/extend/kibana/contributing/workflow/how-we-use-github#release-notes)\n-
[x] Review the
[backport\nguidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing)\nand
apply applicable `backport:*` labels.\n\n### Identify
risks\n\n**Behavior change in alias target direction (medium).**
Existing\nrelated.user resolution groups that previously preferred AD
via\nnamespace priority will now prefer the asserting seed IDP.
Mitigated by\nunit coverage for seed-vs-higher-priority-candidate, and
scoped only to\nthe default-off `related_user_alias_resolution`
maintainer (email\nautomated-resolution
unchanged).","sha":"407a3b576ef2db37b8aaaafebf856b95ed70da61"}}]}]
BACKPORT-->

Co-authored-by: Maxim Kholod <maxim.kholod@elastic.co>
qn895 pushed a commit to qn895/kibana that referenced this pull request Aug 11, 2026
…tic#280870)

## Summary

Fixes related.user alias resolution target selection so the **seed IDP
entity always becomes the resolution target**, instead of
namespace-priority selection (`AD > Okta > Entra ID`).

Previously, when Entra ID (or another lower-priority IDP) asserted
cross-system aliases via `related.user`, Active Directory could still
win as the golden/target entity. The seed is the data-driven authority
because it is the IDP that declared the aliases.

Resolves the "target-direction product confirm" open item from the QA
report in elastic#275776.

### Checklist

Check the PR satisfies following conditions. 

Reviewers should verify this PR satisfies this list as well.

- [x] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)
- [ ]
[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials
- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
- [x] If a plugin configuration key changed, check if it needs to be
allowlisted in the cloud and added to the [docker
list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)
- [x] This was checked for breaking HTTP API changes, and any breaking
changes have been approved by the breaking-change committee. The
`release_note:breaking` label should be applied in these situations.
- [ ] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed
- [x] The PR description includes the appropriate Release Notes section,
and the correct `release_note:*` label is applied per the
[guidelines](https://www.elastic.co/docs/extend/kibana/contributing/workflow/how-we-use-github#release-notes)
- [x] Review the [backport
guidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing)
and apply applicable `backport:*` labels.

### Identify risks

**Behavior change in alias target direction (medium).** Existing
related.user resolution groups that previously preferred AD via
namespace priority will now prefer the asserting seed IDP. Mitigated by
unit coverage for seed-vs-higher-priority-candidate, and scoped only to
the default-off `related_user_alias_resolution` maintainer (email
automated-resolution unchanged).
patrykkopycinski pushed a commit to patrykkopycinski/kibana that referenced this pull request Aug 18, 2026
…tic#280870)

## Summary

Fixes related.user alias resolution target selection so the **seed IDP
entity always becomes the resolution target**, instead of
namespace-priority selection (`AD > Okta > Entra ID`).

Previously, when Entra ID (or another lower-priority IDP) asserted
cross-system aliases via `related.user`, Active Directory could still
win as the golden/target entity. The seed is the data-driven authority
because it is the IDP that declared the aliases.

Resolves the "target-direction product confirm" open item from the QA
report in elastic#275776.

### Checklist

Check the PR satisfies following conditions. 

Reviewers should verify this PR satisfies this list as well.

- [x] Any text added follows [EUI's writing
guidelines](https://elastic.github.io/eui/#/guidelines/writing), uses
sentence case text and includes [i18n
support](https://github.com/elastic/kibana/blob/main/src/platform/packages/shared/kbn-i18n/README.md)
- [ ]
[Documentation](https://www.elastic.co/guide/en/kibana/master/development-documentation.html)
was added for features that require explanation or tutorials
- [x] [Unit or functional
tests](https://www.elastic.co/guide/en/kibana/master/development-tests.html)
were updated or added to match the most common scenarios
- [x] If a plugin configuration key changed, check if it needs to be
allowlisted in the cloud and added to the [docker
list](https://github.com/elastic/kibana/blob/main/src/dev/build/tasks/os_packages/docker_generator/resources/base/bin/kibana-docker)
- [x] This was checked for breaking HTTP API changes, and any breaking
changes have been approved by the breaking-change committee. The
`release_note:breaking` label should be applied in these situations.
- [ ] [Flaky Test
Runner](https://ci-stats.kibana.dev/trigger_flaky_test_runner/1) was
used on any tests changed
- [x] The PR description includes the appropriate Release Notes section,
and the correct `release_note:*` label is applied per the
[guidelines](https://www.elastic.co/docs/extend/kibana/contributing/workflow/how-we-use-github#release-notes)
- [x] Review the [backport
guidelines](https://docs.google.com/document/d/1VyN5k91e5OVumlc0Gb9RPa3h1ewuPE705nRtioPiTvY/edit?usp=sharing)
and apply applicable `backport:*` labels.

### Identify risks

**Behavior change in alias target direction (medium).** Existing
related.user resolution groups that previously preferred AD via
namespace priority will now prefer the asserting seed IDP. Mitigated by
unit coverage for seed-vs-higher-priority-candidate, and scoped only to
the default-off `related_user_alias_resolution` maintainer (email
automated-resolution unchanged).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backport:version Backport to applied version labels release_note:skip Skip the PR/issue when compiling release notes Team:Cloud Security Cloud Security team related v9.5.2 v9.6.0

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants