> For the complete documentation index, see [llms.txt](https://docs.euno.ai/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.euno.ai/sources/identity-and-organization/okta-integration/okta-integration-discovered-resources.md).

# Okta Integration Discovered Resources

## Overview

The Euno Okta integration discovers the users and groups in an Okta organization, and the direct user membership of each group. It discovers the following resources:

* User (`user`)
* User group (`user_group`, subtype `okta`)

User URIs use the prefix `user_account`, so an Okta user resolves to the same `user` resource as the same person observed by other integrations. Group URIs use the prefix `user_group`.

## User (`user`)

An identity in Okta, identified by its primary email.

| Property        | Type   | Description                                                                      |
| --------------- | ------ | -------------------------------------------------------------------------------- |
| `name`          | string | The Okta primary email.                                                          |
| `type`          | string | Always `user`.                                                                   |
| `email_address` | string | Same value as `name`.                                                            |
| `label`         | string | Display name from the Okta profile (`displayName`, otherwise first + last name). |

{% hint style="info" %}
Okta requires a login and a primary email. Euno uses the primary email for `name`, `email_address`, and the user URI. A username that is not an email still has a primary email, and Euno uses that email.
{% endhint %}

**URI pattern**

User URIs are built from the primary email, with `@` replaced by `_at_` and the result lowercased. Group members use the same rule.

```
user_account.<EMAIL_WITH_AT_REPLACED>
```

Example: `user_account.jane.doe_at_example.com`

## User group (`user_group`)

A user group in Okta.

| Property     | Type      | Description                                              |
| ------------ | --------- | -------------------------------------------------------- |
| `name`       | string    | Group name from the Okta profile.                        |
| `type`       | string    | Always `user_group`.                                     |
| `subtype`    | string    | Always `okta` for groups observed from this integration. |
| `native_id`  | string    | Okta group ID.                                           |
| `created_at` | timestamp | When the group was created in Okta.                      |

**URI pattern**

Group URIs use the Okta group ID.

```
user_group.<OKTA_GROUP_ID>
```

Example: `user_group.00gz751533qdcfa7h697`

## Relationships

Each row is one relationship edge, written in the canonical direction for its family. Use the predicate in each heading to search for these relationships in EQL.

### Membership (`has group` / `has member`)

| Source type | Relationship | Target type  | Notes                                                           |
| ----------- | ------------ | ------------ | --------------------------------------------------------------- |
| `user`      | has group    | `user_group` | Direct Okta group members. Okta does not support nested groups. |

{% hint style="info" %}
Okta groups are flat. Euno records direct user memberships only, and each Okta group is its own `user_group`.
{% endhint %}

## Usage in EQL

```
# Groups that include a user
type = "user_group" and has member(uri="user_account.jane.doe_at_example.com")

# Users in a group
type = "user" and has group(uri="user_group.00gz751533qdcfa7h697")
```

## Known limitations

* If Euno cannot read the members of a group, the group is still observed, but without membership relationships.


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation by asking a question.

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.euno.ai/sources/identity-and-organization/okta-integration/okta-integration-discovered-resources.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
