2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

NRI OpenStandia (IAM編)Advent Calendar 2024

Day 15

SaviyntのIDリポジトリとユーザ管理について

Last updated at Posted at 2024-12-14

はじめに

本記事では、SaviyntにおけるIDリポジトリの機能とそれに関連するデータモデルを説明し、その後ユーザ管理としてユーザの作成、更新の方法の1つであるスキーマアップロード方式によるユーザ作成の例を紹介します。

IDリポジトリ

SaviyntのIDリポジトリは、ユーザ、アカウント、ロール、権限、リソースなど、組織内のアイデンティティに関するデータを保存、管理するデータベースのようなもので、次のような機能を中心に構成されています。

  • アイデンティティ管理
  • アクセス管理
  • アプリケーション管理

Saviyntでは、これらをユーザ、アカウント、権限、セキュリティシステム、エンドポイント、コネクタ、ロール等の基本的なデータモデルによって管理します。機能とデータモデルの対応は下表のとおりです。

# 機能 データモデル 概要
1 アイデンティティ管理 ユーザ、アカウント ユーザ情報(氏名、メールアドレス、役職など)を管理
2 アクセス管理 権限、ロール ユーザがどのアプリケーションや機能にアクセスできるかの権限情報を管理
3 アプリケーション管理 セキュリティシステム、エンドポイント、コネクタ アプリケーションの接続情報の管理

Sayviyntでは、これらの基本的なデータモデルは、Saviynt Enterprise Identity Cloud (以下EIC)から登録や参照が可能です。EICには様々な機能がありますが、本記事では割愛します。

次にそれぞれのデータモデルについて説明します。

ユーザ(Users)

ユーザは、人を意味するデータモデルで、従業員(正社員または契約社員)のIDを表す一意の識別子です。ユーザには、名、姓、役職、メールアドレス等の複数の属性があります。

アカウント(Accounts)

アカウントは、アプリケーション内のユーザに対して作成されたIDです。アカウントはユーザに紐づきます。ユーザはアプリケーション内の異なる権限を持つ1以上のアカウントを持つことが出来ます。これは1人のユーザに対して、GmailやOffice365等のアプリケーションのアカウントを紐づけることができることを意味します。

権限(Entitlements)とロール(Roles)

権限は、アプリケーションに対するアクセスを表し、ユーザがアプリケーションで特定のアクションの実行できるようにします。権限はアカウントに紐づきます。
ロールは権限のコレクションです。ロールを用いることで権限の割り当てや割り当ての解除を容易に行うことが出来ます。
image.png

セキュリティシステム(Security Systems)とエンドポイント(Endpoints)

セキュリティシステムは、Saviyntとターゲットとなるシステム間の接続を表します。例えばAD、LDAP、AWS、Azure、Boxなどがセキュリティシステムに相当します。
セキュリティシステムは、エンドポイントの集合として構成されます。エンドポイントとは、実際のアプリケーションです。たとえば、セキュリティシステムをMicrosoft Office365とする場合、エンドポイントに相当するのは、Word、Excel、PowerPointなどです。
セキュリティシステムとエンドポイントの関係については、下図のとおりです。

image.png

コネクタ(Connectors)

コネクタはSaviyntとアプリケーション間の接続を設定するインターフェイスで、アプリケーションからユーザ、アカウント、権限、ロールなどのデータを同期します。
Saviyntで利用できるコネクタには、ほとんどの標準的なアプリケーションに対応できる認定コネクタコミュニティ版のコネクタなどがあります。また独自でコネクタ開発が可能なSaviyntコネクタフレームワークを使用することでSaviyntがコネクタを提供していないその他のアプリケーション用のカスタムコネクタを開発、構築できます。

ユーザ管理

Saviyntにおいてユーザとは、組織内の従業員、契約社員などの人情報を識別するための一意のエンティティを表します。ユーザは通常、人事アプリケーションからユーザ情報をインポートすることで作成、更新されます。Saviyntで提供している代表的なユーザの作成、更新方法には以下のようなものがあります。

  • EICのUIでユーザを作成
  • スキーマアップロード方式によるユーザのインポート
  • ファイルからユーザをインポート
  • データベースやアプリケーションをEICに統合してインポート
  • Access Request System(ARS)を利用したユーザの申請や招待
  • APIによるユーザの作成、更新

今回はこれらのうち「スキーマアップロード方式によるユーザ作成」について紹介します。

スキーマアップロード方式によるユーザのインポート

スキーマアップロード方式によるユーザのインポートとは、源泉となるシステムやアプリケーションからユーザデータをファイルとして受領し、それを取り込むことによってSaviynt上に源泉からのユーザデータを反映する方式のことです。

この方式には2つのファイルが必要になります。1つ目は、savファイルと呼ばれるユーザデータをSaviyntへ反映するために必要なマッピング情報やユーザデータ取り込み時の振る舞いを記載したファイル。2つ目はユーザデータそのものとなるcsvファイルです。

これら2つのファイルの組み合わせでユーザデータをインポートします。
実際には次のような手順でユーザデータをインポートします。

  1. savファイルを定義する
  2. savファイルをEICにアップロードする
  3. スキーマインポートジョブを作成する
  4. ユーザデータのcsvファイルを作成する
  5. csvファイルをEICにアップロードする

savファイルの定義

savファイルのサンプルを以下(sample_users.sav)に示します。

sample_users.sav
#USER_NOT_IN_FILE_ACTION=NOACTION
#FILENAME=sys01_
#UERTHRESHOLD=2
#DELIMITER=,
#SKIP_NUMBER_OF_LINES=1
#ZERODAYPROVISIONING=TRUE
#userReconcilliationField=customProperty1
#GENERATESYSTEMUSERNAME=FLASE
#GENERATEEMAIL=FALSE
#EMAILTEMPLATE="Email Template Name"
#CHECKRULES=TRUE
#STATUSKEYJSON={"STATUS_ACTIVE":["1","Active","TRUE"],"STATUS_INACTIVE":["0","Inactive","FALSE"]}
EMPLOYEEID,FIRSTNAME,LASTNAME,COMPANYNAME,LOCATION,STATUSKEY,CUSTOMPROPERTY1

savファイルを作成する上での注意点として、savファイルのファイル名の末尾は必ずusers.savになっている必要があることと#(ハッシュ文字)で始まる行が、所謂コメント行のように見えますが、savファイルでは有効な設定なのでご注意ください。

savファイルに設定できる項目の詳細はUploading Users Using Schema Uploadをご確認いただくとして、csvファイルを作成する上で必要となる主要な項目として、#FILENAME、#DELIMITER、#SKIP_NUMBER_OF_LINES、#userReconcilliationFieldがあります。それぞれの簡単な説明は下表のとおりです。

# 項目名 説明
1 #FILENAME savファイルに対応するcsvファイルの接頭辞を指定します。#FILENAMEに指定した接頭辞にマッチするcsvファイルが複数あった場合、全てがインポートの対象になります。
2 #DELIMITER csvファイル内のデータ項目を区切りために使用する区切り文字を指定します。サポートされている区切り文字は、カンマ(,)、パイプ(|)、タブ(\t)、チルダ(~)です。
3 #SKIP_NUMBER_OF_LINES csvファイル内で読み飛ばす行数を指定します。csvにヘッダ行がある場合は1を指定します。
4 #userReconcilliationField ユーザデータをインポートする際に、Saviyntの既存ユーザとのマッピングに使用する項目を指定。csvファイルのこの項目の値が既存ユーザの属性と一致する場合は更新となり、それ以外の場合は、新しいユーザが作成されます。

savファイルの最終行には、#(ハッシュ文字)が無しの行がありますが、これがユーザデータのcsvファイルのフォーマットに相当するものです。Saviyntのusersテーブルの属性名(後述)を列挙する形式で定義します。

savファイルはユーザインポートだけでなく、アカウント、ロール、権限、組織をインポートする際にも利用されます。
ユーザインポート用のsavファイルがそうであるように、ファイル名の末尾は、それぞれaccounts.sav、roles.sav、entitylement_values.sav、organization.savとする必要があります。

savファイルをEICへアップロード

savファイルをEICへアップロードするには、管理者ユーザでEICへログインし、File Directory画面を使用します。File Directory画面には、アップロードするファイルの種類を選択するタブがありますので、SAV Filesを選択し、アップロードするsavファイルを指定しアップロードします。

スキーマインポートジョブの作成

次にsavファイルに対応したcsvファイルを取り込むためのジョブを作成します。ジョブの作成はJob Control Panel画面で行います。
スキーマインポートジョブを作成する上で最低限必要な項目は下表のとおりなので、これらをJob Control Panel画面で設定します。

# 項目名 設定内容
1 Job Name ジョブ名を設定。
2 Job Type Schema based Users Import(SchemaUserJob)を設定。
3 SAV Files EICにアップロードしたユーザインポート用のsavを選択。
4 Trigger ジョブの起動トリガー(日次、毎時、分次など任意)を設定。

ジョブ作成後、Job Control Panel画面にジョブ一覧の中に作成したジョブが確認できれば無事ジョブを作成できています。

ユーザデータ作成

ユーザデータのcsvファイルは、savファイルに定義した項目順で作成します。今回の場合だと、savファイルの定義に従って、以下のsys01_schemaupload.csvのようにヘッダを付与した状態で、EMPLOYEEIDからCUSTOMPROPERTY1までの各項目をカンマ(,)区切りで設定します。

sys01_schemaupload.csv
"EMPLOYEEID","FIRSTNAME","LASTNAME","COMPANYNAME","LOCATION","STATUSKEY","CUSTOMPROPERTY1"
"EMP0001","FN001","LN001","Company001","Location001","1","SYSUNAME001"
"EMP0002","FN002","LN002","Company002","Location002","1","SYSUNAME002"
"EMP0003","FN003","LN003","Company003","Location003","1","SYSUNAME003"

ユーザデータcsvをEICへアップロード

csvファイルをEICへアップロードするのは、savファイルと同様でFile Directory画面を使用します。savファイルをアップロードする時と異なり、アップロードするファイルの種別を選択するタブにData Filesを指定しアップロードしてください。

ユーザデータインポート

後はジョブを作成した際に、指定したジョブ起動トリガーでジョブが起動するとcsvファイルのインポートが開始されます。ジョブの実行が完了すると、Job Control Panelにジョブの実行結果が success または failure で表示されています。ジョブの実行が失敗した場合は、詳細画面にエラーメッセージが表示されています。

image.png

ジョブの実行が完了すると、アップロードしたユーザデータのcsvファイルは処理済みとなるため削除されます。csvに設定したユーザがEICにインポートできているか確認するには、ユーザ一覧から参照できます。

ユーザは一度作成すると、非アクティブにすることはできますが、削除することはできません。

usersテーブル

ユーザはIDリポジトリの中核となる主要なオブジェクトです。アカウントや権限などの他のオブジェクトは、ユーザを中心に展開されます。作成方法に寄らずSaviyntへ作成されたユーザはusersテーブルに格納されます。usersテーブルには以下のような項目があります。

usersテーブルの属性

usersテーブルには下表のような項目があります。

# 項目 概要
1 USERKEY usersテーブルのキー項目
2 ACCOUNTEXPIRED
3 ACCOUNTLOCKED
4 CITY
5 COMMENTS
6 COMPANYNAME
7 COSTCENTER
8 COUNTRY
9 CREATEDBY 作成者
10 CREATEDATE ユーザーが作成された日時
11 CUSTOMER
12 CUSTOMPROPERTY1~65 利用目的が特に定められていない任意に利用できる項目
13 DEPARTMENTNUMBER
14 DEPARTMENTNAME
15 DONOTDISTURBDELEGATE
16 PIIERASURESTATUS
17 EMAIL メールアドレス
18 EMPLOYEETYPE 従業員種別。正社員や契約社員など、ユーザの雇用形態
19 EMPLOYEECLASS
20 EMPLOYEEID
21 ENABLED
22 ENDDATE
23 ENTITY
24 FAILEDTRIES
25 FISTNAME ユーザの名
26 HANARULEKEY
27 JOBCODE
28 JOBDESCRIPTION
29 JOBID
30 JOB_FUNCTION
31 JOBCODEDESC
32 LASTCERTIFIEDCAMPAIGNNAME
33 LASTCERTIFIEDDATE
34 LASTCERTIFIEDUSER
35 LASTPASSWORDUPDATEDATE
36 LASTNAME ユーザの姓
37 LASTSYNCDATE
38 LEAVESTATUS
39 LOCALE
40 LOCATION
41 LOCATIONDESC
42 LOCATIONNUMBER
43 MANAGER
44 MIDDLENAME
45 ORGUNITID
46 OWNER
47 OWNERONTERMINATE
48 PASSWORDEXPIRED
49 PHONENUMBER
50 PREFEREDFIRSTNAME
51 REGION
52 RISKCORE
53 RULEACTION
54 SAVUPDATEDATE
55 SECONDARYMAIL
56 SECONDARYMANAGER
57 SECONDARYPHONE
58 SITEID
59 STARTDATE
60 STATE
61 STATUSKEY ユーザのステータス (Active or Inactive)
62 STREET
63 SYSTEMUSERNAME
64 TASKCREATEDFORTERMINATE
65 TERMDATE
66 TITLE
67 UPDATEDATE ユーザーの最終更新の日時
68 UPDATEUSER 更新者
69 USERSOURCE
70 USERSOURCEKEY
71 UESRNAME usersテーブル内で一意となるユーザ名
72 VENDORMANAGER

実際に設定された値を確認するには、EICに管理者ユーザでログインし、Data Analyzerを開いてください。 Data Analyzerでは、Saviyntの内部テーブルにアクセスできるので、ここからusersテーブルを検索してみてください。

さいごに

本記事では、SaviyntのIDリポジトリが提供する基本的な機能をデータモデルの観点から紹介し、ユーザ管理のはじめの一歩となるユーザ作成について、スキーマアップロードによる作成方法を説明しました。ユーザ作成には今回紹介しきれなかったAccess Request System(ARS)を利用したものなど様々な方法があります。ご興味がある方は、EIC Administrator Guideをチェックしてみてください。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?