グループルールを作成する
グループルールを作成してユーザーをグループに割り当てたり、グループから除外したりできます。基本条件またはOkta Expression Languageを使用してルールを作成できます。
Workday、Active Directory、またはその他のソースに起因する属性を評価する場合は、まずそれらをOktaユーザープロファイル属性リストにマップする必要があります。
グループルールを作成する
- Admin Consoleで、 に移動します。
- [Rules(ルール)]タブを選択し、[Add Rule(ルールの追加)]をクリックします。
- ルールの名前を入力します。
- IF条件については、次のいずれかのオプションを選択します。
- [Use basic condition(基本条件を使用)]:ドロップダウンリストからオプションを選択し、文字列属性のみを使用してルールを作成します。単純なルールを作成するには、この方法を使用します。たとえば、単一の属性を使用して作成するルールや、1つまたは複数のグループから作成するルールです。
- [Okta Expression Language (advanced)(Expression Language:上級)]を[Use(使用する)]:カスタム式を用いて複雑なルールを作成する場合はこのオプションを選択します。
- 次の項目を使用してルールを作成できます。
- One or more(1つまたは複数の)属性
- One or more(1つまたは複数の)グループ
- 属性およびグループのCombinations(組み合わせ)
- 「Okta Expression Languageについて」を参照してください。
- [Then Assign to(割り当て先)]に、ルール条件を満たした場合にユーザーが割り当てられるグループを1つまたは複数入力します。
ユーザーは最大100個のグループに割り当てることができます。
- [Except The following users(以下のユーザーを除く)]に、ルールから除外するユーザーの名前を入力します。
最大100人のユーザーをルールから除外できます。
ルール管理対象ユーザーをグループから手作業で削除した場合、そのユーザーはそのルールの[Except The following users(以下のユーザーを除く)]リストに自動的に追加されます。
- [Save(保存)]をクリックします。
ルールを作成して保存すると、そのルールはデフォルトで[Inactive(非アクティブ)]になります。アクティブ化すると、ルールはorg全体に適用されます。その後、インポート、直接更新、またはその他の変更を通じてユーザーのプロファイルがアップデートされたときに新しいルールがそのユーザーに対して実施されます。ルールによって、[Pending(保留)]または[Inactive(非アクティブ)]状態のユーザーが移動されることはありません。グループルールの作成中に間違いを犯した場合、グループルールは無効と見なされ、[Active(アクティブ)]状態になりません。
Okta Expression Languageについて
Okta Expression Languageを使用して、グループルールにカスタム式を追加できます。カスタム式を使用すると、1つ以上の属性を参照して条件を絞り込むことができます。「Okta Expression Language」を参照してください。
制約
グループルールの条件には次の制約があります。
- 式ではOkta Expression Language(OEL)を使用する必要があります。
- 式では有効な構文と論理演算子を使用する必要があります。
- 式はブーリアンに評価される必要があります。
- 式に割り当て(= )演算子を含めることはできません。
- 式で使用されるユーザー属性では使用可能なOktaユーザー属性しか参照できません。
- グループ属性とユーザー属性のみがサポートされます。
- アプリケーション属性はサポートされません。
サポートされる関数
Okta Expression Languageでは、次のようなほとんどの関数がサポートされます。
- ブーリアン演算子:AND、OR、!(NOT)
- 算術演算子:<、>、<=、>=
- 等価性チェック:==
有効な条件式の例
ユーザーが以下のタイプの属性を持つと仮定します。
- firstName(文字列)
- lastName(文字列)
- city(文字列)
- salary (整数)
- isContractor(ブール値)
次の表では、OELを使用した式の例をいくつか示します。あるユーザーについて式がtrueに評価されると、指定した割り当てが実行されます。
If(暗黙的) |
条件式 |
割り当てるグループ(またはアクション) |
---|---|---|
If | String.stringContains(user.department, "Sales") | Sales(営業担当) |
If | user.city == "San Francisco" | SFOffice |
If | user.salary > 1000000 | expensiveEmployee |
If | ! user.isContractor | fullTimeEmployees |
If | user.salary > 1000000 AND !user.isContractor | expensiveFullTimeEmployee |