ユーザープロファイルAPIの有効化
ユーザープロファイル機能は、KibanaおよびElasticのObservability、Enterprise Search、Elastic Securityソリューション専用に設計されています。個々のユーザーや外部アプリケーションは、このAPIを直接呼び出すべきではありません。Elasticは、事前通知なしに将来のリリースでこの機能を変更または削除する権利を留保します。
他のユーザーに代わってユーザープロファイルを作成または更新します。
リクエスト
POST /_security/profile/_activate
前提条件
- このAPIを使用するには、
manage_user_profile
クラスター権限を持っている必要があります。
説明
ユーザープロファイルを有効化するAPIは、ユーザーの認証オブジェクトから抽出された情報を含むエンドユーザーのプロファイルドキュメントを作成または更新します。これには、username
、full_name
、roles
、および認証レルムが含まれます。たとえば、JWT access_token
の場合、プロファイルユーザーのusername
は、トークンを認証したJWTレルムのclaims.principal
設定が指すJWTトークンのクレームから抽出されます。
プロファイルドキュメントを更新する際、APIはドキュメントが無効であった場合にそれを有効にします。いかなる更新も、labels
またはdata
フィールドの既存の内容を変更しません。
このAPIは、エンドユーザーのプロファイルを作成または更新する必要があるアプリケーション(Kibanaなど)専用です。
呼び出しアプリケーションは、プロファイルドキュメントが対象とするユーザーに対して、access_token
、またはusername
とpassword
の組み合わせを持っている必要があります。
リクエストボディ
access_token
- (必須*、文字列)ユーザーのElasticsearchアクセストークンまたはJWT。両方のアクセストークンおよびid JWTトークンタイプがサポートされており、基盤となるJWTレルムの構成に依存します。
access_token
グラントタイプを指定する場合、このパラメータは必須です。他のグラントタイプでは無効です。 client_authentication
- (オプション、オブジェクト)
access_token
グラントタイプを使用し、JWTを提供する場合、これは必要なJWTのクライアント認証を指定します(通常、ES-Client-Authentication
リクエストヘッダーで指定されるもの)。scheme
- (必須、文字列)
ES-Client-Authentication
リクエストヘッダーで提供されるスキーム(大文字と小文字を区別)。現在、サポートされている唯一の値はSharedSecret
です。 value
- (必須、文字列)
ES-Client-Authentication
リクエストヘッダーで提供されるクライアント資格情報のスキームに続く値。たとえば、リクエストヘッダーがES-Client-Authentication: SharedSecret myShar3dS3cret
であれば、クライアントがJWTで直接認証する場合、ここではvalue
である必要があります。
grant_type
- (必須*、文字列)ユーザーのパスワード。
password
グラントタイプを指定する場合、このパラメータは必須です。他のグラントタイプでは無効です。 username
- (必須*、文字列)ユーザーを識別するユーザー名。
password
グラントタイプを指定する場合、このパラメータは必須です。他のグラントタイプでは無効です。
*設定が一部の状況で必須であることを示しますが、すべての状況ではありません。
レスポンスボディ
成功したユーザープロファイルAPI呼び出しは、プロファイルのユニークID、ユーザー情報、操作のタイムスタンプ、およびバージョン管理番号を含むJSON構造を返します。
例
Python
resp = client.security.activate_user_profile(
grant_type="password",
username="jacknich",
password="l0ng-r4nd0m-p@ssw0rd",
)
print(resp)
Js
const response = await client.security.activateUserProfile({
grant_type: "password",
username: "jacknich",
password: "l0ng-r4nd0m-p@ssw0rd",
});
console.log(response);
コンソール
POST /_security/profile/_activate
{
"grant_type": "password",
"username" : "jacknich",
"password" : "l0ng-r4nd0m-p@ssw0rd"
}
コンソール-結果
{
"uid": "u_79HkWkwmnBH5gqFKwoxggWPjEBOur1zLPXQPEl1VBW0_0",
"enabled": true,
"last_synchronized": 1642650651037,
"user": {
"username": "jacknich",
"roles": [
"admin", "other_role1"
],
"realm_name": "native",
"full_name": "Jack Nicholson",
"email": "[email protected]"
},
"labels": {},
"data": {},
"_doc": {
"_primary_term": 88,
"_seq_no": 66
}
}