Okta式言語の例

Okta式言語(EL)を使用すると、スーパー管理者とアクセス認定管理者は、ユーザー属性とグループ情報を参照、変換、および組み合わせることができます。アクセス認定キャンペーンの作成または変更中に、Okta式言語式を使用して以下を定義できます。

  • キャンペーンをユーザーのサブセットに制限するためのユーザー。
  • 各ユーザーのレビュアーをカスタマイズするためのレビュアー。

ヒント

  • Okta式言語ドキュメントを確認して、構文を理解してください。
  • 三項演算子[条件] ? [TRUEの場合の値] : [FALSEの場合の値]を使用して、動的レビュアーを定義するための条件を構築します。
  • ユーザーを定義するときは、式がブール値に評価されることを確認してください。
    • ユーザーを含める場合はTrue。
    • キャンペーンから除外する場合はFalse。
  • レビュアーを定義する場合:
    • 式が単一OktaユーザーのユーザーIDまたはユーザー名のいずれかに評価されることを確認してください。式がそうでない場合、キャンペーンビルダーで定義された最終レビュアーが割り当てられ、そのユーザーのすべてのアイテムをレビューします。
    • 式を構築するときに、レビュアーのロジックをユーザーごとにIF/THEN用語で考えると役立ちます。たとえば、ユーザーAでは、条件Pがtrueの場合、レビュアーBを割り当てます。
  • 単純な式から始め、徐々に条件を追加して、式が期待どおりに機能することを確認します。
  • [Users(ユーザー)]および[Reviewers(レビュアー)]ペインの[Preview(プレビュー)]機能を使用して式をテストします。
  • ユーザーのプロファイルとグループに保存されている任意の値を使用して、キャンペーンの範囲を制限します。
  • グループのIDまたは名前を使用して、式でグループを参照します。Oktaでは、グループのIDを使用することをお勧めします。グループのIDは変更されません。
  • 用途
    • &&:And演算子を示します。
    • ||:Or演算子を示します。
    • !:Not演算子を示します。

ユーザースコープを定義する

Okta式言語を使用して、プロファイル属性とグループメンバーシップに基づいて、アクセス認定キャンペーンの範囲を一連のユーザーに制限します。カスタム式は、ユーザーを含めるにはtrueに評価され、キャンペーンから除外するにはfalseに評価される必要があります。

式がブール値として評価されることを確認してください。ユーザーを含める場合はTrue、ユーザーをキャンペーンから除外する場合はFalseにします。

詳細については、「Okta式言語」を参照してください。

式のサンプル

ユースケース式のサンプル
キャンペーンを特定のグループのメンバーに限定します。 user.isMemberOf({'group.profile.name': 'West Coast Users'}) or user.isMemberOf({'group.id': '00gjitX9HqABSoqTB0g3'})
特定のグループのメンバーを除くすべてのユーザーを含めます。!user.isMemberOf({'group.profile.name': 'West Coast Users'}) or !user.isMemberOf({'group.id': '00gjitX9HqABSoqTB0g3'}))
両方のグループのメンバーであるユーザーを含めます。user.isMemberOf({'group.id': '00gjitX9HqABSoqTB0g3'}) && user.isMemberOf({'group.id': '00garwpuyxHaWOkdV0g4'})
2つのグループの少なくとも1つのメンバーであるユーザーのみを含めます。

user.isMemberOf({'group.id': '00gjitX9HqABSoqTB0g3'}) || user.isMemberOf({'group.id': '00garwpuyxHaWOkdV0g4'})

または

user.isMemberOf({'group.id': {'00gjitX9HqABSoqTB0g3', '00garwpuyxHaWOkdV0g4'}})

あるグループのメンバーであるが、別のグループのメンバーではないユーザーを含めます。user.isMemberOf({'group.profile.name': 'West Coast Users'}) && !user.isMemberOf({'group.id': '00garwpuyxHaWOkdV0g4'})

キャンペーンでアクティブステータスであるユーザーを含めます。

user.status == 'ACTIVE'

キャンペーンでデプロビジョニング済みまたは一時停止ステータスのユーザーを除外します。

これらのユーザーは、一時停止または非アクティブ化状態であっても、グループの割り当てを保持します。ただし、これらのユーザーはアプリの割り当てを保留状態で保持するだけです。

user.status not in ['DEPROVISIONED','SUSPENDED']

部門、状態、コストセンターなど、ユーザーのプロファイル属性に基づいてキャンペーンを制限します。

完全一致の場合:user.profile.department == "Finance Department")

部分一致の場合:user.profile.department.contains(“Finance”)

ユーザープロファイル属性とグループの組み合わせを使用して複雑な式を定義し、次のようなユーザーを含めます。

  • 名前に「communications」(コミュニケーション)という単語が含まれる部門に所属しているか、Human Resources(人事)部門に所属している。および
  • EMEAグループのメンバーではない。および
  • Interns(インターン)、Contractors(請負業者)、またはPartners(パートナー)の3つのグループの少なくとも1つに属している。
(user.profile.department.contains(“Communications”) || user.profile.department == "Human Resources") && !user.isMemberOf({'group.profile.name': 'EMEA'}) && user.isMemberOf({'group.profile.name': {"Interns", "Contractors", "Partners"}})

動的レビュアーを定義する

Okta式言語を使用して、各ユーザーのレビュアーをカスタマイズします。たとえば、ユーザーのマネージャーにアクセスをレビューするように設定したり、さまざまなチームや部門のレビューを指定したりします。Okta式言語式を作成する前に、「ヒント」を参照してください。

式が単一OktaユーザーのユーザーIDまたはユーザー名のいずれかに評価されることを確認してください。式がユーザーを返さないか無効な場合、キャンペーンの作成中に定義した最終レビュアーが割り当てられ、そのユーザーのすべてのアイテムをレビューします。

式を構築するときに、レビュアーのロジックをユーザーごとにIF/THEN用語で考えると役立ちます。たとえば、ユーザーAでは、条件Pがtrueの場合、レビュアーBを割り当てます。

式のサンプル

ユースケース式のサンプル
ユーザーのマネージャーを各ユーザーに割り当てます。 user.profile.managerId
特定のプロファイル属性(この場合、部門がDepartment 1)を持つユーザーのみにユーザーのマネージャーを割り当て、他のすべてのユーザーには特定のレビュアーを割り当てます。user.profile.department == "Human Resources" ? user.profile.managerId : "jsmith@example.com"

定義済み所有者が1人以上であるグループのレビュアーとしてグループ所有者を1人割り当てます。

user.findGroupAndGetOwners({'group.id': 'groupId'}, 'USER')[0]

所有者が1人以上であるグループのレビュアーとしてグループ所有者を割り当てます。

user.findGroupAndGetOwners({'group.id': 'groupId'}, 'USER')[0]

特定のグループのメンバーであるユーザーにレビュアーを割り当てます。

user.isMemberOf({'group.profile.name': 'West Coast Users'}) ? "westcoastreviewer@example.com" : "otherreviewer@example.com"

さらに、グループに属していないユーザーに最終レビュアーを割り当てるには、次を使用します。

user.isMemberOf({'group.profile.name': 'West Coast Users'}) ? "westcoastreviewer@example.com" ? null

2つのグループのメンバーであるユーザーにレビュアーを割り当てます。それ以外の場合は、ユーザーのマネージャーを割り当てます。 (user.isMemberOf({'group.id': '00gjitX9HqABSoqTB0g3'}) && user.isMemberOf({'group.id': '00garwpuyxHaWOkdV0g4'})) ? 'groupreviewer@example.com' : user.profile.managerId
2つのグループの少なくとも1つのメンバーであるユーザーにレビュアーを割り当てます。それ以外の場合は、最終レビュアーを割り当てます。 user.isMemberOf({'group.id': {'00gjitX9HqABSoqTB0g3', '00garwpuyxHaWOkdV0g4'}}) ? "groupreviewer@example.com" : null
あるグループのメンバーであるが、別のグループのメンバーではないユーザーにレビュアーを割り当てます。それ以外の場合は、ユーザーのマネージャーを割り当てます。 (user.isMemberOf({'group.profile.name': 'West Coast Users'}) && !user.isMemberOf({'group.id': '00garwpuyxHaWOkdV0g4'})) ? "groupreviewer@example.com" : user.profile.managerId

関連項目

キャンペーンを作成

スケジュールされたキャンペーンを変更する

アクティブなキャンペーンを終了する