Authorization policies are used when you want to protect a resource based on criteria other than authentication and you want Access Manager to enforce the access restrictions. Authorization policies are enforced when a user requests data from a resource.
If you would like to know more about NAM Authorization policy. Please use the following link:
NAM provides multiple options (LDAP attribute, Client IP, Roles, OAuth Scope etc.) to prepare your condition rule. You can form different condition groups by using AND /OR operations.
NAM provides an extensive list of condition options and most of the time you can prepare your authorization policy by using the out of the box conditions. But if you need to build a complex authorization condition by executing custom business logic (i.e. Make web service call to get entitlement from different user store/DB, build some rule which is not possible using NAM out of the box condition group), NAM provides an opportunity to use Condition Extension.
You can develop complex business logic using JAVA code by following the NAM Developer Guide.
You should have the following items before starting development:
Please go through the following NetIQ documents to understand the process flow of policy extension.
Developer Guide: https://www.netiq.com/documentation/access-manager-42/nacm_enu/data/bookinfo.html
Sample Code: https://www.netiq.com/documentation/access-manager-developer-documentation/samplecodes/main.html
NAM Condition Extension Example: https://www.netiq.com/documentation/access-manager-developer-documentation/samplecodes/nacm32/PolicyConditionExtnTemplate/Readme_TemplateConditionExtension_Example.pdf
At this point you have created a Condition Extension JAR file.
At this point you have uploaded the JAR file in Admin Console.
Assign the MyAuthorizationPolicy to any protected resources and test Authorization policy.
Please check /var/opt/novell/nam/logs/mag/tomcat/catalina.out log and you will find the log which you have printed from the java code.
Please comment here if you find any issues during development.