Skip to content

Commit 0acbe74

Browse files
authored
[DOCS] Add examples for security user profile and SAML APIs (#3520) (#3533)
(cherry picked from commit 72c9fef)
1 parent b628c5a commit 0acbe74

File tree

49 files changed

+750
-177
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+750
-177
lines changed

output/openapi/elasticsearch-openapi.json

Lines changed: 72 additions & 39 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

output/schema/schema.json

Lines changed: 138 additions & 93 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

specification/_doc_ids/table.csv

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -609,14 +609,17 @@ security-api-clear-role-cache,https://www.elastic.co/guide/en/elasticsearch/refe
609609
security-api-clear-service-token-caches,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-api-clear-service-token-caches.html
610610
security-api-create-api-key,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-api-create-api-key.html
611611
security-api-create-service-token,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-api-create-service-token.html
612+
security-api-cross-cluster-key-update,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-api-update-cross-cluster-api-key.html
612613
security-api-delegate-pki,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-api-delegate-pki-authentication.html
613614
security-api-delete-privilege,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-api-delete-privilege.html
614615
security-api-delete-role-mapping,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-api-delete-role-mapping.html
615616
security-api-delete-role,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-api-delete-role.html
616617
security-api-delete-service-token,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-api-delete-service-token.html
617618
security-api-delete-user,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-api-delete-user.html
618619
security-api-disable-user,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-api-disable-user.html
620+
security-api-disable-user-profile,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-api-disable-user-profile.html
619621
security-api-enable-user,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-api-enable-user.html
622+
security-api-enable-user-profile,https://www.elastic.co/guide/en/elasticsearch/reference/current/security-api-enable-user-profile.html
620623
security-api-get-api-key,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-api-get-api-key.html
621624
security-api-get-builtin-privileges,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-api-get-builtin-privileges.html
622625
security-api-get-privileges,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-api-get-privileges.html
@@ -628,8 +631,10 @@ security-api-get-settings,https://www.elastic.co/guide/en/elasticsearch/referenc
628631
security-api-get-token,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-api-get-token.html
629632
security-api-get-user-privileges,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-api-get-user-privileges.html
630633
security-api-get-user,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-api-get-user.html
634+
security-api-get-user-profile,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-api-get-user-profile.html
631635
security-api-grant-api-key,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-api-grant-api-key.html
632636
security-api-has-privileges,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-api-has-privileges.html
637+
security-api-has-privileges-user-profile,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-api-has-privileges-user-profile.html
633638
security-api-invalidate-api-key,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-api-invalidate-api-key.html
634639
security-api-invalidate-token,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-api-invalidate-token.html
635640
security-api-kibana-enrollment,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-api-kibana-enrollment.html
@@ -649,8 +654,13 @@ security-api-saml-logout,https://www.elastic.co/guide/en/elasticsearch/reference
649654
security-api-saml-prepare-authentication,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-api-saml-prepare-authentication.html
650655
security-api-saml-sp-metadata,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-api-saml-sp-metadata.html
651656
security-api-ssl,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-api-ssl.html
652-
security-privileges,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-privileges.html
657+
security-api-suggest,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-api-suggest-user-profile.html
658+
security-api-update-key,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-api-update-api-key.html
653659
security-api-update-settings,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-api-update-settings.html
660+
security-api-update-user-data,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-api-update-user-profile-data.html
661+
security-encrypt-internode,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-basic-setup.html#encrypt-internode-communication
662+
security-privileges,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/security-privileges.html
663+
security-saml-guide,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/saml-guide-stack.html
654664
service-accounts,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/service-accounts.html
655665
set-processor,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/set-processor.html
656666
shape,https://www.elastic.co/guide/en/elasticsearch/reference/{branch}/shape.html

specification/security/_types/GrantType.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ export enum GrantType {
2424
password,
2525
/**
2626
* In this type of grant, you must supply an access token that was created by the Elasticsearch token service.
27+
* If you are activating a user profile, you can alternatively supply a JWT (either a JWT `access_token` or a JWT `id_token`).
2728
*/
2829
access_token
2930
}

specification/security/activate_user_profile/Request.ts

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,16 +24,46 @@ import { RequestBase } from '@_types/Base'
2424
* Activate a user profile.
2525
*
2626
* Create or update a user profile on behalf of another user.
27+
*
28+
* NOTE: The user profile feature is designed only for use by Kibana and Elastic's Observability, Enterprise Search, and Elastic Security solutions.
29+
* Individual users and external applications should not call this API directly.
30+
* The calling application must have either an `access_token` or a combination of `username` and `password` for the user that the profile document is intended for.
31+
* Elastic reserves the right to change or remove this feature in future releases without prior notice.
32+
*
33+
* This API creates or updates a profile document for end users with information that is extracted from the user's authentication object including `username`, `full_name,` `roles`, and the authentication realm.
34+
* For example, in the JWT `access_token` case, the profile user's `username` is extracted from the JWT token claim pointed to by the `claims.principal` setting of the JWT realm that authenticated the token.
35+
*
36+
* When updating a profile document, the API enables the document if it was disabled.
37+
* Any updates do not change existing content for either the `labels` or `data` fields.
2738
* @rest_spec_name security.activate_user_profile
2839
* @availability stack since=8.2.0 stability=stable
2940
* @availability serverless stability=stable visibility=private
3041
* @cluster_privileges manage_user_profile
3142
*/
3243
export interface Request extends RequestBase {
3344
body: {
45+
/**
46+
* The user's Elasticsearch access token or JWT.
47+
* Both `access` and `id` JWT token types are supported and they depend on the underlying JWT realm configuration.
48+
* If you specify the `access_token` grant type, this parameter is required.
49+
* It is not valid with other grant types.
50+
*/
3451
access_token?: string
52+
/**
53+
* The type of grant.
54+
*/
3555
grant_type: GrantType
56+
/**
57+
* The user's password.
58+
* If you specify the `password` grant type, this parameter is required.
59+
* It is not valid with other grant types.
60+
*/
3661
password?: string
62+
/**
63+
* The username that identifies the user.
64+
* If you specify the `password` grant type, this parameter is required.
65+
* It is not valid with other grant types.
66+
*/
3767
username?: string
3868
}
3969
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
# summary:
2+
# method_request: POST /_security/profile/_activate
3+
description: >
4+
Run `POST /_security/profile/_activate` to activate a user profile.
5+
# type: request
6+
value: |-
7+
{
8+
"grant_type": "password",
9+
"username" : "jacknich",
10+
"password" : "l0ng-r4nd0m-p@ssw0rd"
11+
}

specification/security/disable_user_profile/Request.ts

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,10 +25,18 @@ import { Refresh } from '@_types/common'
2525
* Disable a user profile.
2626
*
2727
* Disable user profiles so that they are not visible in user profile searches.
28+
*
29+
* NOTE: The user profile feature is designed only for use by Kibana and Elastic's Observability, Enterprise Search, and Elastic Security solutions.
30+
* Individual users and external applications should not call this API directly.
31+
* Elastic reserves the right to change or remove this feature in future releases without prior notice.
32+
*
33+
* When you activate a user profile, its automatically enabled and visible in user profile searches. You can use the disable user profile API to disable a user profile so it’s not visible in these searches.
34+
* To re-enable a disabled user profile, use the enable user profile API .
2835
* @rest_spec_name security.disable_user_profile
2936
* @availability stack since=8.2.0 stability=stable
3037
* @availability serverless stability=stable visibility=private
3138
* @cluster_privileges manage_user_profile
39+
* @doc_id security-api-disable-user-profile
3240
*/
3341
export interface Request extends RequestBase {
3442
path_parts: {
@@ -39,9 +47,9 @@ export interface Request extends RequestBase {
3947
}
4048
query_parameters: {
4149
/**
42-
* If 'true', Elasticsearch refreshes the affected shards to make this operation
43-
* visible to search, if 'wait_for' then wait for a refresh to make this operation
44-
* visible to search, if 'false' do nothing with refreshes.
50+
* If 'true', Elasticsearch refreshes the affected shards to make this operation visible to search.
51+
* If 'wait_for', it waits for a refresh to make this operation visible to search.
52+
* If 'false', it does nothing with refreshes.
4553
* @server_default false
4654
*/
4755
refresh?: Refresh

specification/security/enable_user_profile/Request.ts

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,23 +25,32 @@ import { Refresh } from '@_types/common'
2525
* Enable a user profile.
2626
*
2727
* Enable user profiles to make them visible in user profile searches.
28+
*
29+
* NOTE: The user profile feature is designed only for use by Kibana and Elastic's Observability, Enterprise Search, and Elastic Security solutions.
30+
* Individual users and external applications should not call this API directly.
31+
* Elastic reserves the right to change or remove this feature in future releases without prior notice.
32+
*
33+
* When you activate a user profile, it's automatically enabled and visible in user profile searches.
34+
* If you later disable the user profile, you can use the enable user profile API to make the profile visible in these searches again.
2835
* @rest_spec_name security.enable_user_profile
2936
* @availability stack since=8.2.0 stability=stable
3037
* @availability serverless stability=stable visibility=private
3138
* @cluster_privileges manage_user_profile
39+
* @doc_id security-api-enable-user-profile
3240
*/
3341
export interface Request extends RequestBase {
3442
path_parts: {
3543
/**
36-
* Unique identifier for the user profile.
44+
* A unique identifier for the user profile.
3745
*/
3846
uid: UserProfileId
3947
}
4048
query_parameters: {
4149
/**
4250
* If 'true', Elasticsearch refreshes the affected shards to make this operation
43-
* visible to search, if 'wait_for' then wait for a refresh to make this operation
44-
* visible to search, if 'false' do nothing with refreshes.
51+
* visible to search.
52+
* If 'wait_for', it waits for a refresh to make this operation visible to search.
53+
* If 'false', nothing is done with refreshes.
4554
* @server_default false
4655
*/
4756
refresh?: Refresh

specification/security/get_user_profile/Request.ts

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,10 +24,15 @@ import { RequestBase } from '@_types/Base'
2424
* Get a user profile.
2525
*
2626
* Get a user's profile using the unique profile ID.
27+
*
28+
* NOTE: The user profile feature is designed only for use by Kibana and Elastic's Observability, Enterprise Search, and Elastic Security solutions.
29+
* Individual users and external applications should not call this API directly.
30+
* Elastic reserves the right to change or remove this feature in future releases without prior notice.
2731
* @rest_spec_name security.get_user_profile
2832
* @availability stack since=8.2.0 stability=stable
2933
* @availability serverless stability=stable visibility=private
30-
* @cluster_privileges manage_user_profile
34+
* @cluster_privileges read_security
35+
* @doc_id security-api-get-user-profile
3136
*/
3237
export interface Request extends RequestBase {
3338
path_parts: {
@@ -38,9 +43,9 @@ export interface Request extends RequestBase {
3843
}
3944
query_parameters: {
4045
/**
41-
* List of filters for the `data` field of the profile document.
42-
* To return all content use `data=*`. To return a subset of content
43-
* use `data=<key>` to retrieve content nested under the specified `<key>`.
46+
* A comma-separated list of filters for the `data` field of the profile document.
47+
* To return all content use `data=*`.
48+
* To return a subset of content use `data=<key>` to retrieve content nested under the specified `<key>`.
4449
* By default returns no `data` content.
4550
*/
4651
data?: string | string[]

specification/security/get_user_profile/Response.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,11 @@ import { GetUserProfileErrors } from './types'
2222

2323
export class Response {
2424
body: {
25+
/**
26+
* A successful call returns the JSON representation of the user profile and its internal versioning numbers.
27+
* The API returns an empty object if no profile document is found for the provided `uid`.
28+
* The content of the data field is not returned by default to avoid deserializing a potential large payload.
29+
*/
2530
profiles: UserProfileWithMetadata[]
2631
errors?: GetUserProfileErrors
2732
}

0 commit comments

Comments
 (0)