8.9. 条件付きフローの条件
実行要件 で述べたように、条件 実行は 条件付き サブフローにのみ含めることができます。すべての条件実行が true と評価されると、Conditional サブフローは Required として機能します。Conditional サブフローの次の実行を処理できます。Conditional サブフローに含まれる一部の実行が false と評価されると、サブフロー全体が Disabled と見なされます。
8.9.1. 利用可能な条件
Condition - User Role
この実行では、ユーザーに User role フィールドで定義されているロールがあるかどうかを判別できます。ユーザーに必要なロールが割り当てられている場合、実行は true と判断され、その他の実行が評価されます。管理者は以下のフィールドを定義する必要があります。
- Alias
- 認証フローに表示される実行の名前を記述します。
- User role
-
このフローを実行するために必要なユーザーロール。アプリケーションロールを指定する場合、構文は
appname.approle
(myapp.myrole
など) です。
Condition - User Configured
- これは、フローの他の実行がユーザーに設定されているかどうかを確認します。実行要件のセクションには、OTP フォームの例が含まれています。
Condition - User Attribute
ユーザーが必須の属性を設定したかチェックします。このチェックでは、オプションでグループ属性も評価できます。出力が否定される可能性があります。この場合、ユーザーに属性を設定することはできません。ユーザー属性 セクションに、カスタム属性を追加する方法が説明されています。以下のフィールドを指定できます。
- Alias
- 認証フローに表示される実行の名前を記述します。
- Attribute name
- 確認する属性の名前。
- Expected attribute value
- 属性の想定される値。
- Include group attributes
- この条件を On にすると、参加したグループのいずれかに、設定された名前と値に一致する属性が 1 つあるかチェックします。このオプションはパフォーマンスに影響を与える可能性があります。
- Negate output
- 出力を否定することができます。つまり、この属性は存在しません。
8.9.2. 条件付きフローでのアクセスの明示的な拒否/許可
条件付きフローのリソースへのアクセスを許可または拒否できます。2 つのオーセンティケーターの Deny Access
と Allow Access
は、条件でリソースへのアクセスを制御します。
Allow Access
- オーセンティケーターは常に認証に成功します。このオーセンティケーターは設定できません。
Deny Access
アクセスは常に拒否されます。ユーザーに表示されるエラーメッセージを定義できます。以下のフィールドを指定できます。
- Alias
- 認証フローに表示される実行の名前を記述します。
- エラーメッセージ
-
ユーザーに表示されるエラーメッセージ。エラーメッセージは、ローカリゼーションで使用するために、特定のメッセージまたはプロパティーとして提供できます。(つまりYou do not have the role 'admin'.、メッセージプロパティーの my-property-deny) プロパティー
access-denied
として定義されたデフォルトメッセージの場合は空白のままにします。
以下の例は、ロール role1
を持たないすべてのユーザーのアクセスを拒否し、プロパティー deny-role1
で定義されたエラーメッセージを表示する方法を示しています。この例には、Condition - User Role
および Deny Access
実行が含まれます。
ブラウザーのフロー
Condition - user role configuration
Deny Access
の設定は非常に簡単です。以下のように、任意のエイリアスと必要なメッセージを指定できます。
最後に、ログインテーマのエラーメッセージのプロパティー messages_en.properties
(英語の場合) を定義します。
deny-role1 = You do not have required role!