SaviyntのPoliciesについて

## はじめに
ID管理には登録・変更・有効化/無効化・削除のライフサイクル管理がつきものです。
例えば、新入社員として入社した際にIDを登録、異動によって所属部署を変更、退職によってIDを削除するといったことが考えられます。
Saviyntではこの一連のライフサイクル管理をPoliciesで実現します。
SaviyntにおいてPoliciesはいくつかのRulesによって構成されています。
Rulesは主に以下の３つがあります。

:::note
機能の概要についてはSaviyntのドキュメントより引用しています。[Enterprise Identity Cloud Administration Guide - Policies](https://docs.saviyntcloud.com/bundle/EIC-Admin-v24x/page/Content/Chapter05-Policies/Policies.htm)
:::

**・Technical Rules**
>This rule is mainly used to provision birth-right access (also called zero-day provisioning) to employees joining the company based on specified conditions. 

このルールは主に、指定された条件に基づいて入社する従業員に生得権アクセス(ゼロデイプロビジョニングとも呼ばれます)をプロビジョニングするために使用されます。



**・User Update Rules**
>The User Update Rule is mainly used when there is any change to user attribute values. For example, contractor to permanent, department change of a user, an employee or contractor gets terminated.

ユーザー更新ルールは、主にユーザー属性値に変更がある場合に使用されます。例えば、契約社員が正社員になる場合、部署が変更になる場合、正社員や契約社員が退職する場合などです。

**・Request Rules**
>This rule is mainly used when there is an access request sent and it matches the condition given in the Request Rule. Request rule works in conjunction with Organization and Dynamic attributes specified in an endpoint.

このルールは主に、アクセスリクエストが送信され、リクエストルールで指定された条件に一致する場合に使用されます。要求ルールは、エンドポイントで指定された組織属性と動的属性と連携して機能します。



この記事では3つのRulesの機能を一部紹介します。



## Technical Rules
入社などによって新規にユーザーを作成した際、関連するシステムへのアクセス権（Entitlementやロール）を割り当てる必要が出てきます。
Saviyntではユーザーが追加された際、Technical Rulesというものを使用して、条件に一致した場合は特定のEndpointへのアクセス権やEntitlement、ロールの割り当てが可能です。
例えば、ユーザー項目の一つである「city」の値に基づいて、「"city名"Finance」というロールを割り当てたい場合を考えてみます。
Condition(条件)にcityが「Null」ではない場合を設定します。
Objecto TypeにはEnterprise Rolesを指定、Objectには${user.city}Financeを指定することで動的にユーザー情報のcity値を設定することが可能です。
これにより、ユーザーAのCityが「Tokyo」だった場合に「TokyoFinace」というロールに割り当てることが可能です。（ロールについては事前に作成しておく必要があります。）
Technical Rulesの設定例を以下に示します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3940977/86f1347f-a0da-7cf0-7483-03d4a6113102.png)

:::note
画像はSaviyntサイトより引用
:::

https://docs.saviyntcloud.com/bundle/EIC-Admin-v24x/page/Content/Chapter05-Policies/Creating-Technical-Rules.htm

## User Update Rules
異動などによって部署が変わる場合や派遣社員が正社員として雇用される場合、退職によって現場を離れる場合などユーザーの情報は状況によって変更する必要があります。
SaviyntではUser Update Rulesを利用してユーザーの情報が変更された場合に様々なアクションを実行することができます。
例えば、配属先が変わりユーザー項目の「city」が変更された場合に変更後はアクセスする必要がなくなるEndpointへのアクセス権を取り消すことができます。
Condition(条件)にcityが「Is Update」(更新された場合)を設定します。
ActionにRevoke Selected Accessを選択することで、指定したEndpointに対するアクセスを取り消すことができます。

User Update Rulesではこの他にも様々なアクションが用意されています。
実行できるアクションの詳細については以下に記載があります。

https://docs.saviyntcloud.com/bundle/EIC-Admin-v24x/page/Content/Chapter05-Policies/Creating-User-Update-Rules.htm

## Request Rules
Saviyntでは、システム管理者や承認者に対してアクセス権限の付与を要求できます。
アクセス権限の要求をアクセスリクエストと言います。（アクセスリクエストについては明日の記事にて取り上げます。）
アクセスリクエストが承認されることでEndpointへアクセスできるようになるのですが、Request Rulesを使用することで一度のアクセスリクエストの中に組織(Organizations)に関連付けられた権限へのリクエストを含められます。
例えば、ユーザーが特定のEndpointへのアクセスリクエストを行う際にcityをTokyoとして選択した際にTokyoOrganizationという組織に関連付けられた権限をリクエストに含められます。
この機能を使用することで、申請忘れや複数回申請する手間を省けます。


## 最後に
IGAにおいてIDライフサイクルを考えることは重要です。
SaviyntのPoliciesにはライフサイクルを実現するための機能が備わっています。
今回紹介した機能の他にもSaviyntのPoliciesにはEntitlement Update RulesやScan Rulesなどがあります。
気になる方はSaviyntのガイドをチェックしてみてください。

https://docs.saviyntcloud.com/bundle/EIC-Admin-v24x/page/Content/Chapter05-Policies/Policies.htm