Access Manager

From ZENWorks Wiki

Jump to: navigation, search

I plan to create a NAM3 and Federation Document. Here is my outline


Contents

What is Novell Access Manager 3

Access Manager deployments typically use Identity Servers and Access Gateways to provide policy-driven access control for HTTP services. For non-HTTP services, Access Manager provides secure VPN and J2EE Agent components. You can use the Access Gateway on both NetWare® (soft appliance) or Linux.

Image:overview_a.png


Identity federation is the association of accounts between an identity provider and a service provider. As shown in Figure 1-2, an employee named Steve is known as steve.s at his corporate identity provider. He has an account at a work-related service provider called 401k, which has set up a trust relationship with his company. At 401k he is known as ssmith_01. Image:idff_a.png


An Access Gateway provides secure access to existing HTTP-based Web servers. It provides the typical security services (authorization, single sign-on, and data encryption) previously provided by Novell iChain, and is integrated with the new identity and policy services of Access Manager. Image:ag_overview_a.png

Basic Concepts

The following figure illustrates the components and process flow that make up a basic configuration. Image:ag_flow_a.png


For a basic Access Manager installation, you can install the Identity Server and the Access Gateway outside your firewall. Image:basic_3_machine_a.png

An advanced network configuration assumes that you want fault tolerance, so you will install clusters of Access Gateways and Identity Servers. It also assumes that your network has at least two firewalls, one that separates external clients from your network and one that separates internal clients from some components of your network. Image:advan1_install_a.png

Basic Installation

Firewall Requirements

The firewall requirements depend on the placement of the NAM boxes. If all the NAM boxes are located within the same subnet and firewall rules, setup is very simple. If multiple firewalls exist, then several rules must be created to all traffic between all the boxes, the user, and the user store.

I have uploaded a spreadsheet to hopefully make firewall requests easier.


Federation Using SAML or Liberty

Requirements an preparing

  • Federation Type
  • Binding Type
  • Attributes or Information required by the other part regarding the user being federated
  • Defining the SOAP message
  • How will METADATA be shared.
  • SP Certificates
  • Certificate Authorities: Must the certificates be signed by a trusted authority?
  • Binding EndPoints

General NAM3 Administrative Tasks and Tweaks

  • Interesting pages and logs tidbits can be found Here
Like

"com.volera.vcdn.excomm.keystore  :: /var/opt/novell/novlwww/devman.keystore"


Customizing login and Logout Pages

Logging In to the User Portal

Users can log directly into the Identity Server when they enter the Base URL of the Identity Server in their browsers. For example, if your base URL is http://bfrei.provo.novell.com:8080/nidp, entering this URL prompts the user to authenticate with the credentials required for the default contract.


Image:sticky.gif Note: Be VERY careful about changing folder or file permissions. Using rsync, ssh, or any other file copy protocol will change the permissions on the folder and then break NAM.

Image:NAM3_NIDP_JspPermissions.png

Custom Login Pages can be used per Reverse Proxy. This means that each reverse proxy or path can have it's own custom login page. This is accomplished by specifying a property and value in an authentication contract. Image:nam3_custom_login-jsp_contract.png Novell Docs, Creating contracts

Issues with custom pages

  • Sometimes tomcat will not recompile the JSP because it believes the compiled version and the jsp version match. The compiled version and be deleted and tomcat will recompile the JSP the next time the JSP file is requested. Delete the equivalent class and java files from /var/opt/novell/tomcat4/work/Standalone/localhost/nidp/jsp/

Configuring a form to send information to the IDP

You can have a form on a page, that doesn't exist behind the Access Gateway, send the information to the IDP and then be passed to the final destination.

Image:file.gifFile: Homepage.jsp
<!-- FORM with ACTION set to IDP auth URL --> <form method="post" action="https://idp.jaredjennings.org/nidp/app/login"> <!-- INPUT tag for USERNAME --> <input type="text" size="20" name="Ecom_User_ID"> <!-- INPUT tag for PASSWORD --> <input type="password" size="20" name="Ecom_Password"> <!-- INPUT tag for redirect location on the AG (equivalent to iChain "url" field) --> <input type="hidden" name="target" value="http://jaredjennings.org">

Layer 4 Switching Load Balancing Access Gateways (LAG)

FIXME: Need to add information here

Layer 4 switches ca be used to load-balance or provide fault-tolerance For NAM3 Access Gateways.

An example of this concept Here the content switch is not rewriting the source packet. So the packet appears to come from the originating device, not from the content switch.

Image:NAM3_ContentSwitch_NoRewrite.png


Here the content switch is rewriting the source packet. So the packet appears to come from the content switch, not the originating device.

Image:NAM3_ContentSwitch_Rewrite.png


Details for Layer 4 switches in front of the Access Gateways

Monitoring NAM Health

NAM provides monitoring by SNMP or syslog


IDP on 443 Instead of 8443

38.3 Translating the Identity Server Configuration Port

http://www.novell.com/documentation/novellaccessmanager/adminguide/data/b6fyxpk.html

iptables -t nat --flush

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 443 -j DNAT --to 10.0.0.0:8443


To accommodate all network interfaces

iptables -t nat --flush

iptables -t nat -A PREROUTING -i 'any' -p tcp --dport 443 -j DNAT --to 10.0.0.0:8443

Form Fill

  • set the “LOG_LEVEL” entry from 5(default) to 7 in the Image:folder.png/etc/laglogs.conf file
  • run
    Linux:> tail -f /var/log/ics_dyn.log


Federation Tweaks and Settings

Disable CRL OCSP checks

IDP may fail to load a Trusted Service Provider configuration when validating the certificates specified in the METADATA. This is could be because when loading the configuration the certificate Revoke List is checked. You might see the following message in the catalina.out log or in
Image:file.gifFile: /var/opt/novell/tomcat4/logs/catalina.out
<amLogEntry> 2008-07-22T21:09:35Z SEVERE NIDS Application: AM#100100001: AMDEVICEID#B7B9179031009DDD: Loading Trusted Provider

In testing environments, you can now disable OCSP/CRL checks for server certificates by setting the Java* property

Image:file.gifFile: /var/opt/novell/tomcat4/conf/tomcat4.conf
JAVA_OPTS="${JAVA_OPTS} -Dcom.novell.nidp.serverOCSPCRL=false"
.

For production, make sure that the IDP can access the CRL list. This is noted in catalina.out.

Image:file.gifFile: /var/opt/novell/tomcat4/logs/catalina.out
FAILED TO GET crl.versign.com/server.crl
You can use wget to test this From the IDP console, issue the following command.
Linux:> wget crl.versign.com/server.crl


Authorization Policies

Require specific LDAP OU

You can allow users access to a specific path in a resources if they exist in a specific Organizational Unit in the LDAP source.

Configure an Authorization Policy Image:NAM3_AuthorizationPolicy-LDAPOU.png


Specify a path in the protected resource that should be protected Image:NAM3_AuthorizationPolicy_ProtectedResourcePath.png

Apply the authorization policy to the path in the protected resource Image:NAM3_AuthorizationPolicy-ProtectedResource.png


Require specific LDAP attribute to be populated

For a customer, I had to write an authorization policy that required a specific attribute to be populated when the user authenticated to NAM. If the attribute wasn't populated, we would redirect the user to a tomcat servlet page that would then ask the user for specific information which would then populate the ldap attribute.

So I created an Authorization Policy that looked for a specific LDAP attribute and used a regex string to make sure that the attribute matched (Contained) any "alpha" letter. The trick here was that if the LDAP attribute didn't exist at all, java throw an exception (Correctly) and the policy never was acted on. Changing the policy "On Error" action resolved this. So now the policy evaluates if the attribute doesn't exist or just doesn't contain any data. Here's a screen-shot of the policy.

Image:NAM3_Policy_LDAP-Attribute.png


Here's what the trace looked like in the catalina.out log on the LAG after enabling logging at the IDP. Note the Throwing data unavailable response error, this was the key to me that I needed to change the policy result condition error to true.

Image:file.gifFile: Catalina.out
<amLogEntry> 2008-11-20T22:05:58Z INFO NIDS Application: AM#501101052: AMDEVICEID#esp-378BA0D708C4A1A1: AMAUTHID#8C38632DE7622692F2430DC065A8E6C0: PolicyID#P40L6486-NP88-23LP-KNKK-069LLLP2L70O: NXPESID#5030: Throwing data unavailable response: Data Item - 6647: Parameter - NEPXurn~3Anovell~3Aldap~3A2006-02~2Fldap~3AUserAttribute~40~40~40~40WSCQLDAPToken~40~40~40~40~2FUserAttribute~5B~40ldap~3AtargetAttribute~3D~22iChainPasswordHint~22~5D </amLogEntry>

HTML ReWriter

Rewritting an applications logout URL to logout from NAM


TIDS and Good Links

Logs and File Locatoins

  • Great Log for Authentication Issues

Image:folder.png/var/log/ics_dyn.log

  • Enbedded Service Provider

Image:folder.png/var/opt/novell/tomcat4/logs/catalina.out

  • SOAP messages between AG and Embedded Service Provider

Image:folder.png/var/log/lagsoapmessages (must be enabled)

  • HTTP Headers on the LAG

Image:folder.png/var/log/laghattpheaders


100101044 and 100101043 errors

Watch Image:folder.png/var/opt/novell/tomcat4/logs/catalina.out on the LAG, you can see the following ERROR if the error is 100101044

Image:file.gifFile: catalina.out
<amLogEntry> 2008-03-26T23:55:12Z VERBOSE NIDS IDFF: Send request from ESP to IDP for contract: ecust/name/passwd/form/uri </amLogEntry>

<amLogEntry> 2008-03-26T23:55:12Z INFO NIDS Application: AM#500105024: AMDEVICEID#esp-5066DE4D82EE3273: AMAUTHID#0650D01E9F4C51DD4DA46E5AEC3F4BF0: ESP is requesting metadata from IDP https://login.novell.com/nidp/idff/metadata </amLogEntry> <amLogEntry> 2008-03-26T23:55:12Z NIDS Trace: Method: URLUtil.connectToURL() <amLogEntry> 2008-03-26T23:55:12Z SEVERE NIDS IDFF: AM#100106001: AMDEVICEID#esp-5066DE4D82EE3273: Unable to load metadata for Embedded Service Provider: https://login.novell.com/nidp/idff/metadata, error: java.security.cert.CertificateException: Untrusted Certificate-chain </amLogEntry>

<amLogEntry> 2008-03-26T23:55:12Z INFO NIDS Application: AM#500105039: AMDEVICEID#esp-5066DE4D82EE3273: AMAUTHID#0650D01E9F4C51DD4DA46E5AEC3F4BF0: Error on session id 0650D01E9F4C51DD4DA46E5AEC3F4BF0, error 100101044-esp-5066DE4D82EE3273, Unable to authenticate. AM#100101044: AMDEVICEID#esp-5066DE4D82EE3273: : Embedded Provider failed to load Identity Provider metadata </amLogEntry>


A
Go to certificates and remove the CA from the LAG proxystore, save the changes, then re-add the CA to the proxystore
Jared

In this case, the ROOT CA for login.novell.com was not in the LAG's proxy store, so be deleting the ROOT CA, saving the changes, then re-addding the CA to the proxstore, will cause the ROOT CA to be added to both LAG's certificate store.

Enabling IDP Logging

Set the logging details similar to this.

Image:IDP_EnableLogging.png

Views
Personal tools
Navigation
Toolbox