> ## Documentation Index
> Fetch the complete documentation index at: https://bloodhound.specterops.io/llms.txt
> Use this file to discover all available pages before exploring further.

# GH_HasExternalIdentity

> SAML identity provider has this external identity

<img noZoom src="https://mintcdn.com/specterops/tTIczgde9H07oLXf/assets/enterprise-AND-community-edition-pill-tag.svg?fit=max&auto=format&n=tTIczgde9H07oLXf&q=85&s=ad49a576589f4d2a8081df77d07fdf56" alt="Applies to BloodHound Enterprise and CE" width="482" height="45" data-path="assets/enterprise-AND-community-edition-pill-tag.svg" />

## Edge Schema

* Source: [GH\_SamlIdentityProvider](/opengraph/extensions/github/nodes/gh_samlidentityprovider)
* Destination: [GH\_ExternalIdentity](/opengraph/extensions/github/nodes/gh_externalidentity)
* Traversable: ❌

## General Information

The non-traversable GH\_HasExternalIdentity edge represents the relationship between a SAML identity provider and the external identities (SSO users) it manages. This edge links each external identity to the SAML provider that authenticated it. External identities are a key component in cross-platform attack path analysis because they bridge the gap between corporate identity providers and GitHub user accounts via the [GH\_MapsToUser](/opengraph/extensions/github/edges/gh_mapstouser) edge. Enumerating external identities reveals which corporate users have linked GitHub accounts and enables mapping from IdP compromise to GitHub access.

```mermaid theme={null}
graph LR
    node1("GH_SamlIdentityProvider entra-id-sso")
    node2("GH_ExternalIdentity alice\@specterops.io")
    node3("GH_ExternalIdentity bob\@specterops.io")
    node4("GH_User alice")
    node1 -- GH_HasExternalIdentity --> node2
    node1 -- GH_HasExternalIdentity --> node3
    node2 -- GH_MapsToUser --> node4
```
