How to: Configure CRLDP Authentication policies using BIG-IP Central Manager

BIG-IP Next Access supports retrieving Certificate Revocation Lists (CRLs) from network locations (distribution points). A Certificate Revocation List Distribution Point (CRLDP) AAA server defines how to access a CRL file from a distribution point. A distribution point is either an LDAP Uniform Resource Identifier (URI), a directory path that identifies the location where the CRLs are published, or a fully qualified HTTP URL.

Using BIG-IP Next Central Manager UI

The following example creates a new CRLDP Certificate Authentication Access policy using the BIG-IP Next Central Manager user interface.

  1. Log in to BIG-IP Next Central Manager. Navigate to the Security canvas > Security > Access > Policies path.

  2. To create a policy, click the Start Creating button. By default, there are no policies created. The Create Policy page opens, and the Visual Policy Designer (VPD) canvas appears.

  3. Select the required policy type radio button. Available policy options are the Per-Session Policy and Per-Request Policy.

  4. In The How would you like to create it? section, select whether to create a policy using the template or from scratch. Available options are Create using a policy template and Start from scratch. Users are recommended to select Create using a policy template option to quickly access the policy.

  5. In the Policy Templates section, select the required policy template. Available options are Logon Page with Active Directory Query and SAML as a Service Provider. When the Logon Page with Active Directory Query is selected, this policy template includes a Logon Page and Active Directory rules for Authentication and Authorization purposes. When the SAML as a Service Provider is selected, this policy template includes SAML Federation and Variable Assign rules to configure for a SAML Service Provider setup.

  6. Click Next. Based on the selection of the policy type, the applicable policy configurations are displayed.

  7. On the General Properties tab, enter a Policy Name for the policy.

  8. Scroll through the remaining properties and revise any value that you want to change from its default setting.

  9. Click Continue. The Session Properties tab of the respective policy page appears.

  10. On the Session Properties tab, scroll through the properties and revise any value that you want to change from its default setting.

  11. Click Continue. The Logging tab of the respective policy page appears.

  12. On the Logging tab, scroll through the properties and revise any value that you want to change from its default setting.

  13. Click Continue. The Single Sign-On tab of the respective policy page appears.

  14. The Single Sign-On (SSO) provides seamless access to the applications protected through BIG-IP Next Access. This allows administrators to use more modern authentication techniques, such as SAML or OAuth, and translate it to something the back-end application supports, such as Kerberos or Forms.

  15. On the Single Sign-On tab, click Start Creating to select the required authentication type. Available options are Forms, Forms Client-Initiated, HTTP Basic, Kerberos, and OAuth Bearer. When one of the authentication types is selected, its respective configuration page appears. Fill in the required values in the given fields and save the configuration.
    Refer to Single Sign-On methods for more information.

  16. Click Continue. The Endpoint Security tab of the respective policy page appears.

  17. On the Endpoint Security tab, choose the applicable version from its default setting.

  18. Click Continue. The Resources tab of the respective policy page appears.

  19. The Resources extend BIG-IP Next Access with additional capabilities such as Network Access, Access Control, Identity Providers, and Webtops.

  20. On the Resources tab, click Start Creating to select the required resource. Available options are Access Control List, Network Access, Webtop, and Webtop Section.

  21. Click Continue. The Connectivity tab of the respective policy page appears.

  22. On the Connectivity tab, scroll through the properties and revise any value that you want to change from its default setting.

  23. Click Continue. The Policy Endings tab of the respective policy page appears.

  24. On the Policy Endings tab, scroll through the properties and revise any value that you want to change from its default setting.

  25. Click Finish. A required access policy is created.
    The VPD canvas opens.

    Note: Prior to establishing the Authentication rule, ensure that you have generated valid Certificate Authority Signed (CSA) SSL certificates. For detailed guidance on certificate management, refer to How to: Manage certificates and keys for a BIG-IP Next instance using BIG-IP Next Central Manager.

  26. Drag an empty flow into the VPD canvas.

  27. On the empty flow, click the Expand icon.
    The flow expands so you can edit it.

  28. On the VPD side bar, click the Rule icon, and then drag the CRLDP Authentication rule onto the empty flow.

  29. Hover the cursor over the CRLDP Authentication rule and then click the Edit icon.
    The Rule Properties tab of the Rule Configuration page opens.

    1. In Name field, type a unique name for the authentication rule.

    2. Click Continue.
      The Responder tab of the Rule Configuration page opens.

    3. In Name field, write the unique responder’s name.

    4. In Cache Expiration field, mention the value in seconds. You can use the default value. This specifies the Specifies the number of seconds a CRL is cached.

    5. If the Issuer field is enabled, the system extracts the CRL distribution point from the certificate of the client certificate issuer.

    6. If the Allow Null Certificate Revocation Lists field is enabled, a null CRL from the CRLDP server is considered a successful authentication.

    7. If the Verify Signature is enabled, the signature on the received CRL is verified.

    8. In Connection Timeout field, this specifies the number of seconds of inactivity the system allows before the connection times out. The default is 15 seconds.

    9. In Update Interval field, this specifies the validity (in seconds) of the CRL file. In Mode section, this defines the source of the connection information. Select either Server Endpoint or Server Certificate.

      • Select Server Certificate to extract information from the certificate.

      • Select Server Endpoint to configure information manually.

    10. In Service Port field, this specifies the CRLDP service port. The default is 389.

    11. In Base Distinguished Name (DN) field, this specifies a CRLDP base distinguished name for certificates that specify the CRL distribution point in directory name (dirName) format.

    12. In Reverse Distinguished Name (DN) field, specifies in which order the system should attempt to match the Base DN value to the value of the X509v3 attribute crlDistributionPoints. This setting either can be enabled or disabled.

  30. Click Continue. The Branches tab of the Rule Configurations page opens.

    1. Under Branches, click Create.
      The Branches page opens.

    2. In Name field, write the branch name.

    3. Under Expression, select a Context, a Condition and a Result for this branch.

    4. Add any (optional) AND/OR branches needed for the policy, and then click Save.

  31. On the Branches tab of the Rule Configuration page, click Finish.
    The VPD canvas displays the revised policy.

  32. Review the policy in the VPD canvas; then click Save to finish creating the policy.
    BIG-IP Next Central Manager adds the policy to the BIG-IP Next Access Policies list.

Using BIG-IP Next Central Manager API

The following example creates a new CRLDP Authentication Access policy using the BIG-IP Next Central Manager application programming interface (API).

  1. Authenticate with the BIG-IP Next Central Manager API. For details refer to How to: Authenticate with the BIG-IP Next Central Manager API.

  2. Create the policy by sending a Post to the /api/v1/spaces/default/security/access-policies endpoint.

    POST https://<big-ip_next_cm_mgmt_ip>/api/v1/spaces/default/security/access-policies
    

    For the API body, use the following, substituting values appropriate for the policy you want to create.

    {
     "description": "",
     "name": "CRLDP_auth",
     "policy_type": "PerSession",
     "properties": [
         {
             "configuration": {
                 "policyType": "PerSession",
                 "name": "CRLDP_auth",
                 "externalServers": [
                     {
                         "name": "CRLDP_responder",
                         "serverType": "Crldp",
                         "cacheExpire": 96400,
                         "useIssuer": false,
                         "allowNullcrl": false,
                         "verifySig": false,
                         "connTimeout": 15,
                         "updateInterval": 0,
                         "serverConnection": {
                             "source": "endpoint",
                             "port": 389,
                             "baseDn": "",
                             "reverseDn": false
                         }
                     }
                 ],
                 "policy": {
                     "objectContent": {
                         "macros": [
                             {
                                 "name": "Empty1d20e3e1",
                                 "start": {
                                     "itemType": "aaa-crldp",
                                     "ruleType": "aaa-crldp",
                                     "ruleId": "CRLDP-Authentication-7047b8d4",
                                     "name": "CRLDPrule",
                                     "nextItems": [
                                         {
                                             "caption": "Success",
                                             "itemType": "terminal-out",
                                             "name": "Allow",
                                             "expression": "expr {[mcget {session.crldp.last.result}] == 1}"
                                         },
                                         {
                                             "itemType": "terminal-out",
                                             "name": "Deny",
                                             "caption": "Fallback"
                                         }
                                     ],
                                     "caption": "Fallback",
                                     "server": "CRLDP_responder",
                                     "isValid": true
                                 },
                                 "endings": [
                                     {
                                         "name": "Deny",
                                         "color": "#D9647A",
                                         "default": true
                                     },
                                     {
                                         "name": "Allow",
                                         "color": "#199D4D"
                                     }
                                 ]
                             }
                         ],
                         "start": {
                             "itemType": "macro-call",
                             "name": "CRLDP_auth",
                             "macro": "Empty1d20e3e1",
                             "caption": "Fallback",
                             "nextItems": [
                                 {
                                     "itemType": "deny",
                                     "name": "Deny",
                                     "caption": "Deny"
                                 },
                                 {
                                     "itemType": "allow",
                                     "name": "Allow",
                                     "caption": "Allow"
                                 }
                             ]
                         },
                         "endings": [
                             {
                                 "name": "Deny",
                                 "action": "deny",
                                 "color": "#D9647A",
                                 "default": true
                             },
                             {
                                 "name": "Allow",
                                 "action": "allow",
                                 "color": "#199D4D",
                                 "default": false
                             }
                         ],
                         "languages": [
                             "en"
                         ],
                         "defaultLanguage": "en"
                     }
                 },
                 "scope": "profile",
                 "profileType": "all",
                 "userIdentityMethod": "http",
                 "connectivityAccessPolicyName": "CRLDP_auth_cap",
                 "timeout": 300,
                 "inactivityTimeout": 900,
                 "maxSessionTimeout": 604800,
                 "maxConcurrentUsers": 0,
                 "maxConcurrentSessions": 0,
                 "maxInProgressSessions": 128,
                 "minFailureDelay": 2,
                 "maxFailureDelay": 5,
                 "domainCookie": "",
                 "secureCookie": false,
                 "persistentCookie": false,
                 "httpOnlyCookie": false,
                 "restrictToSingleClientIP": false,
                 "useHttp503OnError": false,
                 "logoutUriTimeout": 5,
                 "samesiteCookie": false,
                 "samesiteCookieAttrValue": "strict"
             },
             "connectivityProfileConfiguration": {
                 "compressBufferSize": 4096,
                 "compressGzipLevel": 6,
                 "compressGzipMemlevel": 8192,
                 "compressGzipWindowsize": 16384,
                 "compressCpusaver": true,
                 "compressCpusaverHigh": 90,
                 "compressCpusaverLow": 75,
                 "compressionAdaptive": true,
                 "compressionDeflateLevel": 1,
                 "compressionCodecs": [],
                 "pppTunnel": {
                     "profilePpp": {}
                 },
                 "clientPolicy": {
                     "ecSaveServersOnExit": true,
                     "ecReuseWinlogonSession": false,
                     "ecReuseWinlogonCreds": false,
                     "ecRunLogoffScript": false,
                     "ecWarnBeforeScriptLaunch": true,
                     "ecSavePasswordMethod": "none",
                     "ecSavePasswordTimeout": 240,
                     "ecComponentUpdate": "yes",
                     "serverList": [],
                     "ecLocationDnsList": [],
                     "androidEcRequireDeviceAuth": false,
                     "androidEcSavePasswordMethod": "disk",
                     "androidEcSavePasswordTimeout": 240,
                     "iosEcRequireDeviceAuth": false,
                     "iosEcSavePasswordMethod": "disk",
                     "iosEcSavePasswordTimeout": 240,
                     "macosEcSavePasswordMethod": "disk",
                     "macosEcSavePasswordTimeout": 240,
                     "chromeosEcSavePasswordMethod": "disk",
                     "chromeosEcSavePasswordTimeout": 240,
                     "chromeosEcLogonMethod": "native",
                     "macosEcLogonMethod": "native",
                     "name": "CRLDP_auth_cap_clientPolicy"
                 },
                 "name": "CRLDP_auth_cap",
                 "policyType": "ConnectivityAccessPolicy"
             },
             "loggingConfiguration": [
                 {
                     "component": "apmd",
                     "level": "NOTICE"
                 },
                 {
                     "component": "tmm",
                     "level": "NOTICE"
                 },
                 {
                     "component": "websso",
                     "level": "NOTICE"
                 },
                 {
                     "component": "renderer",
                     "level": "NOTICE"
                 }
             ]
         }
     ]
     }
    

BIG-IP Next Central Manager creates the policy specified by the parameter values used in the body of your POST.

Important: To fully configure this policy, attach this rule to an application. After attaching to an application, make sure to configure the External or AAA servers as well for CRLDP Authentication. For additional details about managing an application, refer to How to: Manage applications using BIG-IP Next Central Manager and FAST templates.