This section documents describes how to integrate the custom geo location data provider. The API presented here allows developers to integrate the custom geo location data provider within RISK based authentication of the Access Manager architecture. The following topics are covered:
Access Manager 4.1 or later
Your development environment requires the same installation as outlined in the "NetIQ Access Manager Installation Requirements"
Copy the nidp.jar, NAMCommon.jar and risk-*.jar and third party Geo Location data provider jar files in the following directory of your Identity Server to your development project:
On Linux: /opt/novell/nam/idp/webapps/nidp/WEB-INF/lib
On Windows: C:\Program Files (x86)\Novell\Tomcat\webapps\nidp\WEB-INF\lib
Method |
Description |
---|---|
init() |
Takes Properties as its arguments. This properties object contains the parameters which are passed through the Admin Console for this Custom class. The method used to initialize the Geo Location Provider Class. |
readGeoLocInfo() |
Takes InetAddress as its arguments. It returns the Geo Location information as GeoLocation Bean. |
You can create the custom geo location provider class as follows:
import com.novell.nam.nidp.risk.core.geoloc.Provider;
public interface Provider {
public void init(Properties props); public GeoLocBean readGeoLocInfo(InetAddress IPAddress) throws GeoLocException; }
We can create the Custom Provider class by implements the above interface. We should override the above init() and readGeoLocInfo() methods.
import com.novell.nam.nidp.risk.core.geoloc.AbstractProvider;
public abstract class AbstractProvider implements Provider {
abstract public void init(Properties props);
abstract public GeoLocBean readGeoLocInfo(InetAddress IPAddress) throws GeoLocException; public AbstractProvider(Properties props){ init(props); } }
We can create the Custom Provider class by extending the above AbstractProvider class. We should override the above init() and readGeoLocInfo() abstract methods.
import com.novell.nam.nidp.risk.core.geoloc.AbstractProvider; import com.novell.nam.nidp.risk.core.geoloc.exception.GeoLocException; import com.novell.nam.nidp.risk.core.geoloc.model.GeoLocBean; public class MyCustomGeoProvider extends AbstractProvider {
public MyCustomGeoProvider (Properties props) { super(props);
}
// The argument 'props' contains the configuration parameters which are provided in the admin console for this custom class. @Override public void init(Properties props) {
}
// This method should return the geo location information @Override public GeoLocBean readGeoLocInfo(InetAddress IPAddress) throws GeoLocException { // read the geo location information from any external provider using webservice calls or any sources
return null; }
}
Create a jar file for your custom geo location provider class and any associated classes.
Copy the jar files to the following location in the Identity Server:
Linux: /opt/novell/nam/idp/webapps/nidp/WEB-INF/lib
Windows: C:\Program Files (x86)\Novell\Tomcat\webapps\nidp\WEB-INF\lib
If the Identity Server is in a cluster, the file needs to be copied to all members of the cluster.
In the Administration Console, click Access Manager > policies> Risk Configuration > > GeoLocation
Select Custom Provider from the drop-down and fill in the following fields:
Figure 5-5 Specify Geo Location Rule Name
Provider Name: Specify a name that the Administration Console can use to identity this custom provider.
Java Class Path: This allows you to specify the path name of your custom Geo Provider Java class.
Class Property: Specify the parameters and values which will be passed to the custom class at runtime.
Property Name: Name of the parameter.
Value: Value of the parameter.
Click OK.
Restart the Identity Server.
On the Identity Servers page, click Update.
Update any associated devices that are using this Identity Server configuration.