動的ルーティングルールを構成する
動的ルーティングルールは、特定のIDプロバイダー(IdP)にバインドされないことを除いて、標準のルーティングルールと同様に機能します。式言語を使用し、ログインオブジェクトの属性に基づいてユーザーを任意のIdPと照合します。
ユーザーがサインインすると、一致するまで一度に1つのルールが評価されます。何百ものルールを評価すると、ユーザーのサインインエクスペリエンスが遅くなる可能性があります。動的ルーティングルールでは、IdPごとに個別のルールは必要ありません。同じ条件を持つ複数のルールを1つの動的ルーティングルールに統合できます。
はじめに
最も一般的なユースケースは、IdPへの動的ルーティングをドメインごとに行うことです。これを行うには、1つ以上のIdPを追加し、その名前がドメインと一致していることを確認します。たとえば、user.name@yourorg.comのようなメールアドレスのユーザーを同じIdPにルーティングする場合は、IdPにyourorg.comという名前を付けます。
IPアドレスに基づいてユーザーをルーティングする場合は、少なくとも1つのネットワークゾーンを定義します。「ネットワークゾーン」を参照してください。
ルールの追加
- Admin Consoleで、 に移動します。
- [Routing Rules(ルーティングルール)]タブで、[Add Routing Rule(ルーティングルールを追加)]をクリックします。
- [Rule Name(ルール名)]を入力します。このルールが動的であると分かるような名前を使用することを検討してください。
- ルーティング条件を構成します。
IF
[User's IP is(ユーザーのIPが次の場合)]ネットワークゾーンを選択します。Oktaで定義済みのゾーンや未定義のゾーンで並べ替えたり、特定のゾーンを構成したりすることが可能です。 AND
[User's device platform is(ユーザーのデバイスプラットフォーム)]モバイルデバイスとデスクトップデバイスの任意の組み合わせを選択します。iOSデバイスはiOSルーティングルールをバイパスする場合があります。「macOSデバイス用のルーティングルールの構成」を参照してください。 AND
[User is accessing(ユーザーがアクセスしています)]アプリケーションまたはアプリインスタンスの名前を入力します。 AND
[User matches(ユーザーが一致)]ユーザーが一致する必要のあるログイン属性を選択します。 - Anythingにはすべてのユーザーが含まれます。
- Regex on loginでは、ユーザーのログインに基づく有効な正規表現を入力して、これを照合に利用できます。これは、ドメインまたはユーザー属性の指定では照合に不十分な場合に便利です。たとえば、.*\+devtest@company.comはドメイン@company.comのログインに一致しますが、@記号の前に+devtestが含まれている場合のみです。
- Domain list on loginでは、照合するドメインのリストを指定します(@記号は不要)。たとえば、mytest.comとなります。文字をエスケープする必要はありません(正規表現を使用する場合は必須)。
- User attributesでは、一致する属性名、比較のタイプ、値を指定します。比較のタイプとしてRegexを選択した場合は、値に有効な正規表現を入力する必要があります。例:OktaユーザースキーマのDepartment属性の(Human Resources|Engineering|Marketing)。
THEN[Use this identity provider(このIDプロバイダーを使用) [Dynamically match to an IdP(IdPと動的に照合)]を選択します。 IdP名を照合する デフォルトの文字列を選択するか、独自のカスタム式を入力します。デフォルトのlogin.identifier.substringAfter('@))は、ユーザーのメールアドレスのドメイン名に自動的にマップされます(@記号の後すべて)。 - [Create Rule(ルールを作成)]をクリックし、ルールを直ちにアクティブ化するかどうかを指定します。
動的ルールをテストする
新しいルールは、他のルーティングルールの後(ただし、既定のキャッチオールルールの前)に自動的に並べ替えられます。新しい動的ルーティングルールを標準ルールに置き換える場合は、これらの標準ルールを無効にし、有効なユーザー名でサインインしてテストします。動的ルールが機能することを確認するまで、ルールを削除しないでください。