Okta Expression Languageの例
Okta Expression Language(EL)を使用すると、スーパー管理者、アプリ管理者、および特定の権限を持つカスタム管理者は、ユーザー属性とグループ情報を参照、変換、組み合わせることができます。ポリシールールの作成または変更中に、Okta Expression Language式を使用してユーザースコープを定義できます。
ヒント
- Okta Expression Languageドキュメントを確認して、構文を理解してください。
- ユーザーを定義するときは、式がブール値に評価されることを確認してください。
- ユーザーをルールに含める場合はTrue。
- ユーザーをルールから除外する場合はTrue。
- 単純な式から始め、徐々に条件を追加して、式が期待どおりに機能することを確認します。
- [Preview(プレビュー)]機能を使用して式をテストします。
- ユーザーのプロファイルに保存されている任意の値を使用して、ルールのスコープを制限します。
- グループのIDまたは名前を使用して、式でグループを参照します。グループのIDは変更されないため、これを使用することをお勧めします。
- 演算子を示すには次の記号を使用します。
- ANDまたは&&:And演算子を示します。
- ORまたは|| :Or演算子を示します。
- !:Not演算子を示します。
式のサンプル
ユースケース | 式のサンプル |
---|---|
ルールを特定のグループのメンバーに限定します。 |
次のいずれかの式を使用します。
|
ポリシールール内の特定のレルムに属するユーザーのみを含めます。 | user.realmId == "o4cbj6ybZl1QShj0g7"、またはuser.realmId == "guo4c8usniIlFgluO0g7"、またはuser.realmId == "guo4c7skrkbxDgJ140g7"
この式は、レルム機能を有効にした場合にのみ使用します。 |
特定のグループのメンバーを除くすべてのユーザーを含めます。 |
次のいずれかの式を使用します。
|
両方のグループのメンバーであるユーザーを含めます。 | user.isMemberOf({'group.id': '00gjitX9HqABSoqTB0g3'}) && user.isMemberOf({'group.id': '00garwpuyxHaWOkdV0g4'}) |
2つのグループの少なくとも1つのメンバーであるユーザーのみを含めます。 |
次のいずれかの式を使用します。
|
1つのグループのメンバーであるが、別のグループのメンバーではないユーザーを含めます。 | user.isMemberOf({'group.profile.name': 'West Coast Users', 'operator': 'EXACT'})&& !user.isMemberOf({'group.id': '00garwpuyxHaWOkdV0g4'}) |
ステータスが[アクティブ]であるユーザーをルールに含めます。 | user.status == 'ACTIVE' |
部門、状態、コストセンターなど、ユーザーのプロファイル属性に基づいてルールを制限します。 | 完全一致の場合:
user.profile.department != null && user.profile.department == "Finance Department" 部分一致の場合: user.profile.department != null && user.profile.department.contains("Finance") |
ユーザープロファイル属性とグループの組み合わせを使用して複雑な式を定義し、次のようなユーザーを含めます。
|
user.profile.department != null &&(user.profile.department.contains("Communications") || user.profile.department == "Human Resources") && !user.isMemberOf({'group.profile.name': 'EMEA', 'operator': 'EXACT'}) && user.isMemberOf({'group.profile.name': {"Interns", "Contractors", "Partners"}, 'operator': 'EXACT'}) |