Datawiza Rules Configuration Guide
This section will talk about basic rule configuration and provide some use cases with examples.
Rule Configuration
First of all, let's introduce some basic concepts.
Resource Path Matching
We offer two matching types for path configuration: Prefix and Exact. Prefix stands for "matching by prefix", meaning the request URI starting with the input string will be matched.
For example: If a resource path /site/ is configured with Prefix, then request URIs that look like /site/, /site/page1/index, or /site/index will get matched, but /api/site/ or /site-b/index will not. Similarly, if a resource path /site is configured with Prefix, then request URIs that look like /site123, /site456/page1, or /site/page2/index will get matched.
And Exact stands for "exact match", meaning only the request URI that equals to the input string will be matched.
For example: If a resource path /site/ is defined as Exact. Only request URI /site/ will be matched. Anything else like /site/index, /site-b/, or /site will not be matched.
Priority
Priority is used to set rule execution order. The lower number indicates higher priority. For example: 
As the above image shown, we configure two rules with the same URI /priority. The priority of the rule named priority 10 is 10 and the rule decision is Deny. The priority of the rule named priority 20 is 20 and the rule decision is Allow. The result is that the request accessing /priority* will hit the rule named priority 10, which means the request will be denied.
Rule Type
We offer three kinds of rule types: 
Protected: the request will be authenticated first, then will be allowed or denied based on the conditions defined in the rule. Note that any URI not hitting the rules needs authentication by default.
Not Protected: the request to the resource will pass through Access Proxy to upstream servers without being authenticated.
Authorization, the request will be authorized by the authorizer.
Example Config
Case 1
Goal: Suppose you want to get the following paths authenticated, and the others bypassing the Access Proxy.
- /api-1/page/*
- /api-n/page/*
- /microservice-1/app/*
- /microservice-n/app/*
You need to configure two rules: one is Protected Rule and the other is Not Protected Rule.
Rule #1 (Authentication-required paths): This is the Protected Rule that requires the request with the prefix URIs listed in the following screenshot to be authenticated. The priority of this rule 10: 
Rule #2 (Passthru paths): This is the Not Protected Rule that would not require any authentication for all paths. The priority of this rule is 1000. Since Rule #1 has higher priority than Rule #2, requests with URIs hitting Rule #1 will need authentication and the others will not need authentication. 
Summary: After saving the above 2 rules, you will see a summary as follows: 
Similarly, if you want to have request to certain path passing through directly, and all other paths need authentication, then you can change the Rule Type of the Rule #1 to Not Protected. And the Rule #2 is not needed because, by default, a URI not hitting any rule needs authentication.
Case 2
Goal: Suppose you want the resource path /api/ to be inaccessible, but /api/* be accessible.
You need to configure two rules: one for /api/, the other for /api/*.
Rule #1 For path /api/, we need to set the Priority higher. And set the Resource Path to Exact, Rule Decision to Deny. 
Rule #2 For path /api/*, we need to set the Priority lower. And set the Resource Path to Prefix, Rule Decision to Allow. 
Case 3
Goal: Suppose you want the resource path /hr* can only be accessed by group hr with the GET method during working hours(9 a.m. to 5 p.m. on weekdays). Add condition as follow:
And set default action to Deny: 

Case 4
Goal: Restrict Certain Tenants When Using Microsoft Entra ID Multi-Tenant Add a new attribute, which is tid, in the Profile tab of the application.
Then, add a mapping from tid to tid in the Mappings tab:
Last, add rules: Add a rule that only allows users in tenant A, for example, xxxxxxxx-xxxx-xxxx-xxxx-000000000001 and tenant B, xxxxxxxx-xxxx-xxxx-xxxx-000000000002:
Change the default rule to deny which will deny users in any other tenant: 
