DACS Docs - Technical Documentation

Version 1.5.2

Release date 28-Aug-2026 12:00:36

Contents

Section 1: Tools and Utilities
Section 5: Formats and Conventions
Section 7: Miscellaneous
Section 8: Web Services and CGI
HTTP Server: Apache
Articles: Using InfoCards With DACS
Project: HOME // README // ACKNOWLEDGEMENTS // HISTORY // INSTALL // LICENSE // NOTICES // DTDs
Indexes: Configuration Directives // Functions // Authentication Modules // Concepts // Annotations // Variables // Third-Party Packages

Section 1: Tools and Utilities

dacs

- a distributed access control system
[About DACS // About the Manual Pages // Key Concepts // Naming // The dacs Utility // Start-up Processing // JSPR - A JSON Parser // Internals // Logging // Audit-Class Log Messages // Tracking User Activity]

dacsacl

- list, check, or re-index access control rules

dacsauth

- authentication check
[Enhancing SSH Security]

dacscheck

- authorization check
[Advantages // Identities // Objects // Rule Evaluation Context // An Example Application // Comparing dacscheck with dacs_acs]

dacsconf

- display configuration directives

dacscookie

- create DACS credentials and emit as a cookie

dacscred

- acquire and manage DACS credentials

dacsemail

- Simple outgoing email agent

dacsexpr

- DACS expression language shell and interpreter

dacsgrid

- administer grid-based one-time passwords

dacshttp

- perform an HTTP/HTTPS request

dacsinfocard

- manage InfoCard accounts

dacsinit

- Configure a minimal DACS federation interactively

dacskey

- generate encryption keys for DACS

dacslf

- list files
[Joinable flags (jflags) // Individual flags (iflags) // Formatting specifications // Colour flags (cflags) // Sort flags (sflags) // Help flags (hflags) // Command synonyms]

dacslist

- list jurisdictions

dacspasswd

- manage DACS accounts

dacsrlink

- create and administer rule links

dacssched

- rule-based command scheduling
[Operation]

dacstoken

- administer hash-based one-time passwords
[PINs (Account Passwords) // One-Time Passwords (OTPs) // Accounts // Importing and Exporting OTP Accounts // XML Provisioning Format // KeyUriFormat Provisioning Format]

dacstransform

- rule-based document transformation
[Configuration]

dacsversion

- display version information

dacsvfs

- access objects through the DACS virtual filestore

sslclient

- an SSL/TLS client
[Server Identity Verification]

Section 3: Functions and Libraries

ds

- Dynamic strings and vectors
[Byte Strings // Vectors]

Section 5: Formats and Conventions

dacs.acls

- DACS access control rules
[Revoking Access and // URL Paths and Service Name Matching // Service Parameters // Constraints // ACL Files // ACL Naming // ACL Syntax // General Structure // Services // Rule Clause Processing // The Precondition Element // Expressions // ACL Rule Elements // The ACL Selection and Evaluation Algorithm]

dacs.conf

- DACS configuration files and directives
[Locating dacs.conf and site.conf // Path Interpolation // File Format // The Default Section // The // Section Merging and Directive Evaluation // The undef() directive // Fatal errors // An example // Jurisdiction // The Effective Jurisdictional // Jurisdiction Selection by URI // Jurisdiction Selection by Jurisdiction Name // Jurisdiction Selection by Default // The Distinguishing URI // Directives // Evaluated Directives // Directive Categories // General Directives // The Auth Clause // The Roles Clause // The Transfer Clause // Advanced Techniques // Configuration Variables // Authentication and Roles]

dacs.exprs

- DACS expression language
[Expression Syntax // Comments // Basic Data Types // Variables and Namespaces // Variable Syntax // Variable Modifier Flags // Reserved Namespaces // Lists, Alists, and Arrays // Lists // Alists // Expression Grammar // Operators // Functions]

dacs.groups

- DACS groups
[Role-Based Group Membership // Group Syntax and Semantics // DACS Metadata]

dacs.nat

- Notice Acknowledgement Token specification
[Introduction // Purpose // Design Elements // Terminology // Notational Conventions // Summary // The Notice Acknowlegement Token // NAT Syntax // NAT Names // NAT Reserved Attributes // URI Matching // Cryptographic Elements // Encoding for Transport // Implementation Notes // NAT HTTP Header Syntax // Multiple NATs // Resource Name Mapping // NAT Creation and Merging // Case Sensitivity // Server Autonomy // Minimal Implementation // Middleware Support]

dacs.vfs

- the DACS virtual filestore
[The vfs_uri and Item Types // Virtual Filestore Details]

Section 7: Miscellaneous

dacs.install

- DACS installation guide
[Trying DACS // Upgrading DACS // Installation Layout Overview // Installing DACS // Tip // Initial Testing // Build Options // Configure Options // Standard build and install options // Feature selection options // Third-party support options]

dacs.java

- DACS Java support

dacs.quick

- DACS Quick Start Tutorial
[Step 1: Install required third-party packages // Step 2: Install and configure Apache // Step 3: Build and install DACS // Step 4: DACS-enable Apache // Step 5: Do basic DACS configuration // Step 6: Do basic Apache configuration for DACS // Step 7: Test basic DACS services // Step 8: Try DACS authentication // Step 9: DACS-wrapping a web service // Step 10: What's next? // Step 11: Clean up // Troubleshooting]

dacs.readme

- DACS README
[DACS At a Glance // Supported Platforms // Other Platforms // Warnings // Release Information // Roadmap // Security // Add-on Features // Administration // Related Software // The DACS Java Library (DJL) // The FedAdmin Web Application // Support // Known Problems // Bugs, Suggestions, and Feedback]

Section 8: Web Services and CGI

autologin

- Convert an Apache identity to a DACS identity
[Web Service Arguments]

cgiparse

- CGI parameter parsing utility

dacs.services

- DACS web services
[Standard CGI Arguments for DACS Web Services]

dacs_acs

- DACS access control service
[Module-to-ACS Protocol // Credentials // Rlinks // Rlink Details // HTTP Authentication // Authorization Caching // XML Output // Variables Available To Rules // Standard Environment Variables // Exported DACS Variables // Exported Environment Variables // About Servlets // The DACS_ACS Argument // The DACS-Status-Line header // The DACS_APPROVAL environment variable]

dacs_admin

- DACS administration service
[Web Service Arguments // Resources and Methods]

dacs_auth_agent

- DACS delegated authentication service
[Web Service Arguments // Operation // Local Mode // Alien Mode]

dacs_auth_transfer

- transfer credentials between federations
[The Identity Transfer Protocol // Overview // Protocol Operation // Implementation // Web Service Arguments // Presentation // Export // Token // Import]

dacs_authenticate

- DACS authentication service
[Authentication // Names // Credentials and Cookies // Web Service Arguments // Auth Clause Directives // Initialization and the Auth Namespace // Authentication Clause Control Flow // Authenticating Using an Expression // Middleware Support // Authentication Modules // local_apache_authenticate // local_cas_authenticate // local_cert_authenticate // local_grid_authenticate // local_http_authenticate // Deprecated // local_ldap_authenticate // local_native_authenticate // local_ntlm_authenticate // local_oidc_authenticate // local_pam_authenticate // local_passwd_authenticate // local_radius_authenticate // local_simple_authenticate // local_tgma_authenticate // local_token_authenticate // local_unix_authenticate // Roles // Roles Clause Directives // Roles Clause Control Flow // Roles Modules // local_roles // local_ldap_roles // local_unix_roles // Related Services]

dacs_autologin_ssl

- use an SSL client certificate to automatically obtain DACS credentials
[Web Service Arguments]

dacs_conf

- display DACS configuration directives
[Web Service Arguments]

dacs_current_credentials

- display DACS credentials
[Web Service Arguments]

dacs_error

- simple error handling utility for DACS

dacs_group

- DACS group administration
[Web Service Arguments]

dacs_infocard

- Information Card administration
[Web Service Arguments]

dacs_list_jurisdictions

- display information about DACS jurisdictions
[Web Service Arguments]

dacs_managed_infocard

- create a managed Information Card
[Configuration // Web Service Arguments]

dacs_mex

- WS-MetadataExchange responder for Information Cards
[Web Service Arguments]

dacs_notices

- DACS notice presentation and acknowledgement handler
[Operation // Web Service Arguments // Middleware Support // Simple Mode // Secure Mode]

dacs_passwd

- manage private DACS passwords
[Web Service Arguments]

dacs_prenv

- CGI program that displays its environment
[Web Service Arguments]

dacs_select_credentials

- temporarily disable DACS credentials
[Web Service Arguments]

dacs_signout

- DACS signout service
[Important // Web Service Arguments]

dacs_sts

- Secure Token Service for managed Information Cards
[Configuration // Web Service Arguments]

dacs_token

- manage DACS one-time password token accounts
[Web Service Arguments]

dacs_transform

- rule-based document transformation
[Regions // Directive and Attribute Syntax // Negation // Recursion // Directives // Configuration // Web Service Arguments]

dacs_uproxy

- minimal HTTP proxying
[Web Service Arguments // Operation]

dacs_version

- display DACS version information
[Web Service Arguments]

dacs_vfs

- access objects through the DACS virtual filestore
[Web Service Arguments]

pamd

- PAM transaction server

HTTP Server: Apache

mod_auth_dacs

- Apache/DACS authentication and authorization module

Annotations

Security Notes

Access to dacs_auth_transfer Moving credentials to another host
Accessibility of dacs_auth_transfer Multiple Auth clauses
Apache AuthType, AuthName, and Require directives Multiple credentials for the same identity
Aspects of NAT security Password in a URI
Authentication error handler parameters Password visibility and dacsauth
Authentication modules Password visibility and dacspasswd
Authentication success handler parameters Passwords and local_passwd_authenticate
Authorization caching considered experimental Permissions for dacs_acs
Browser caching Potential password logging when debugging
CAS-based authentication Privacy of the federation key
Choice of PASSWORD_DIGEST Reliance on cookie names
Configuration based on arguments Remove tutorial files
Configuration of dacs_auth_transfer Reporting authentication failure
Configuring COOKIE_PATH Restrict access to dacs_uproxy
Constraints on new passwords Restrict access to dacs_vfs
Contradictory rules Restricted access to dacs_conf
DACS advisory Restricted access to dacs_passwd
DACS configuration files Restricted access to dacs_token
Defining new item types Restricted access to dacs_version
Disabled or restricted web services Restricting access to dacs_auth_transfer
Disabling SECURE_MODE Running dacs_acs setuid/setgid
Enabling authentication modules Running dacsauth, dacs_authenticate setuid/setgid
Execution privileges and dacsauth Secure NTLM communication
Exporting OTP Accounts Security aspects of access tokens
File and directory permissions Security implications of PERMIT_CHAINING
HOTP vs. TOTP Security implications of dacsinfocard
Hierarchical independence in ACL paths Security implications of dacspasswd
Honouring imported credentials Security issues and dacsgrid
Implications of delegation Security issues and dacstransform
Importation of identities Security issues and pamd
InfoCard identity Setting the lifetime of credentials
Input directory for dacs_transform Supported Devices
Insecurity of local_simple_authenticate TOTP Drift Window Size
Isolation requirements for dacscheck TOTP Drift Window Size
Lifetime of credentials and cert-based authentication Tagging mod_auth_dacs
Limitations of ACS_CREDENTIALS_LIMIT Testing Apache+DACS
Limitations of AUTH_SINGLE_COOKIE Tokens and secret keys
Limitations of COMPAT_MODE Tracking anonymous users
Limitations of COOKIE_HTTPONLY Upgrading
Limitations of COOKIE_NAME_TERMINATORS Use of MD5
Limitations of COOKIE_SAMESITE Use of the REFEDERATE directive
Limitations of NAME_COMPARE Using SSL/TLS with dacs_auth_transfer
Limitations of VERIFY_UA Using dacs_admin()
Limitations of constraints Verification of DACS-wrapping
Limitations on CGI arguments Verify checksums after downloading
Limiting access to Rlinks Weakening of credentials
Limiting access to dacsconf dacs_admin disabled by default
Limiting access to dacscookie dacs_auth_agent disabled by default
Limiting access to dacslist dacs_authenticate security issues
Limiting access to dacstoken dacskey and accessibility of keyfiles
Limiting access to dacsvfs exec() target UID/GID
Minimal configuration ldaps scheme unavailable

Important Notes

Apache 2.2 NO WARRANTY
Apache 2.2 OIDC Module Limitations
Apache AuthType, AuthName, and Require directives OIDC Signout Limitations
Basic and Digest authentication OIDC authentication
Build/Install notes PAM authentication
Converting ACL format Password syntax
DACS advisory Potential import/export restrictions
Definition of jurisdiction metadata Potential password logging when debugging
Deprecation of Samba Third-party packages
File permissions of autologin Unique jurisdiction sections
Hiding the DACS_ACS argument Upgrading DACS
Installing Apache dacsauth() considered experimental
Interaction between dacshttp and sslclient dacscheck() considered experimental
Limitations on CGI arguments mod_auth_dacs version compatibility
NO WARRANTY user() returning False

Other Notes

Apache AuthType, AuthName, and Require directives Limitations on CGI arguments
DACS advisory Potential password logging when debugging

Tips

Apache AuthType, AuthName, and Require directives Obtaining Berkeley DB
Begin by reviewing dacs.quick(7) Omitting braces in a variable reference
Begin with a basic DACS install OpenLDAP options
Building standalone components Potential password logging when debugging
Built-in authentication modules Problems while building with shared libraries
Built-in roles modules Redirection after authentication
CAS protocol Remember to make public files accessible
Caveat when connecting to a web server Remember to restart httpd
Choosing better passwords Reviewing build notes
Configuration of mod_ssl in httpd.conf Rotate log files
Configuring HTTP authentication Save your config.nice
DACS advisory Selecting characters and substrings
DACS self tests Selecting new credentials
DEFAULT_JURISDICTION environment variable Sending the client certificate
Displaying CGI arguments Short links
Displaying DACS environment variables Testing LDAP authentication
Displaying an X.509 certificate Testing NTLM authentication
Domain attributes in cookies Testing where a client authenticated
Easier upgrades Try dacsexpr
Escaping space characters Use site.conf-std
Failed internal HTTP requests Using dacsinit
Filename suffixes for CGI programs Using user()
Filenames for rulesets Validating ruleset syntax
Generated directory listings, internal redirects Value of an if statement
InfoCard authentication using an expression Variable substitution in dacs_transform
Initial configuration using dacsinit Verify web server version
Installing a subset of DACS Viewing DACS documentation via Apache
Limitations on CGI arguments Whitespace in a variable reference
Manual pages: fonts dacs_transform and the 'insert' directive
Manual pages: man(1) output local_unix_authenticate and setuid

Variables

${Args::DACS_USERNAME} ${DACS::POSTDATA} DACS_HOME
${Args::RNAME} ${DACS::PROXYREQ} DACS_IDENTITY
${Args::USERNAME} ${DACS::QUERY} DACS_JURISDICTION
${Auth::ABORT} ${DACS::REMOTE_ADDR} DACS_MOD_AUTH_DACS
${Auth::CREDENTIALS_LIFETIME_SECS} ${DACS::REMOTE_HOST} DACS_MOD_AUTH_DACS_VERSION
${Auth::CURRENT_ROLES} ${DACS::RIDENT} DACS_RELEASE
${Auth::CURRENT_USERNAME} ${DACS::RIPTR} DACS_ROLES
${Auth::DACS_IDENTITY} ${DACS::RNAME} DACS_SBINDIR
${Auth::DACS_JURISDICTION} ${DACS::ROLES} DACS_SITE_CONF
${Auth::DACS_USERNAME} ${DACS::URI} DACS_SITE_CONF
${Auth::DACS_VERSION} ${DACS::URI} DACS_SITE_CONF_SPEC
${Auth::LAST_ROLES} ${DACS::USERNAME} DACS_USERNAME
${Auth::MODULE_SKIP} ${DACS::USER_AGENT} DACS_VERSION
${Auth::ROLES} ${Env::REMOTE_USER} DACS_VERSION
${Conf::FEDERATION_DOMAIN} ${Env::REQUEST_URI} DOCUMENT_ROOT
${Conf::LOG_LEVEL} ${LDAP::USERNAME} EXE_SUFFIX
${Conf::dacs_approval_digest_name} ${LDAP::attrname} FEDERATIONS_ROOT
${Conf::http_auth_401} ${LDAP::attrvalue} HTTP_HOST
${Conf::prompt_submit_label} ${Options::AUXILIARY} HTTP_USER_AGENT
${DACS::ACS} ${Options::DACS_JURISDICTION} JURISDICTION_URI
${DACS::ARGS_TRUNCATED} ${Options::DACS_USERNAME} JURISDICTION_URI_PREFIX
${DACS::ARGS} ${Options::DACS_VERSION} OPENSSL_PROG
${DACS::ARG_COUNT} ${Options::PASSWORD} SERVER_ADDR
${DACS::AUTHORIZATION} ${Options::USERNAME} SERVER_NAME
${DACS::CONTENT_ENCODING} APACHE_HOME SERVER_PORT
${DACS::CONTENT_LENGTH} CGI_SUFFIX SSL/TLS variables
${DACS::CONTENT_TYPE} DACS_ACS_JURISDICTION URI_SCHEME
${DACS::CURRENT_URI_NO_QUERY} DACS_APPROVAL argv[0]
${DACS::CURRENT_URI} DACS_BINDIR infocard_card_image_card
${DACS::FEDERATION} DACS_CGIBINDIR infocard_card_image_cert
${DACS::FILENAME} DACS_CONCISE_IDENTITY infocard_card_image_passwd
${DACS::IDENTITY} DACS_CONF infocard_sts_password
${DACS::INTERACTIVE} DACS_CONF infocard_sts_password
${DACS::IP} DACS_CONF_SPEC infocard_sts_title
${DACS::JURISDICTION} DACS_CONSTRAINT infocard_sts_username_password_prompt_fmt
${DACS::METHOD} DACS_DEFAULT_CONSTRAINT ${DACS::PATH_INFO}
DACS_FEDERATION   

Configuration Directives

ACCEPT_ALIEN_CREDENTIALS IMPORT_FROM PAMD_HOST
ACS_ACCESS_TOKEN_ENABLE IMPORT_ROLES PAMD_PORT
ACS_ACCESS_TOKEN_LIFETIME_LIMIT IMPORT_URL PASSWORD_AUDIT
ACS_ACCESS_TOKEN_LIFETIME_SECS INFOCARD_AUDIENCE PASSWORD_CONSTRAINTS
ACS_AUTHENTICATED_ONLY INFOCARD_AUDIENCE_RESTRICTION PASSWORD_DIGEST
ACS_CREDENTIALS_INVALID_BEFORE_DATETIME INFOCARD_CARDID_BASE_URL PASSWORD_OPS_NEED_PASSWORD
ACS_CREDENTIALS_LIFETIME_SECS INFOCARD_CARDID_SUFFIX PASSWORD_SALT_PREFIX
ACS_CREDENTIALS_LIMIT INFOCARD_CARD_DATETIME_EXPIRES PERMIT_CHAINING
ACS_EMIT_APPROVAL INFOCARD_CARD_DEFS_URL PREDICATE
ACS_ERROR_HANDLER INFOCARD_CARD_FILL_URL PREDICATE
ACS_FAIL INFOCARD_CARD_IMAGE_BASE_URL PREDICATE
ACS_INACTIVITY_LIMIT_SECS INFOCARD_CARD_LIFETIME_SECS PROXY_EXEC_DOCUMENT_ROOT
ACS_POST_BUFFER_LIMIT INFOCARD_CARD_OUTPUTDIR PROXY_EXEC_MAPPER_DEFAULT_ACTION
ACS_POST_EXCEPTION_MODE INFOCARD_CARD_VERSION PROXY_EXEC_MAPPER_LOGGING
ACS_PRE_AUTH INFOCARD_DIGEST PROXY_EXEC_MAPPER_LOG_FILE
ACS_SUCCESS INFOCARD_IP_PRIVACY_URL PROXY_EXEC_MAPPER_RULES_FILE
ACS_TRACK_ACTIVITY INFOCARD_IP_PRIVACY_VERSION PROXY_EXEC_PROG_URI
ADMIN_IDENTITY INFOCARD_ISSUER_INFO_ENTRY REFEDERATE
ALLOW_HTTP_COOKIE INFOCARD_MEX_URL RLINK
AUTH_AGENT_ALLOW_ADMIN_IDENTITY INFOCARD_REQUIRE_APPLIES_TO ROLES*
AUTH_CREDENTIALS_ADMIN_LIFETIME_SECS INFOCARD_STRONG_RP_IDENTITY ROLE_STRING_MAX_LENGTH
AUTH_CREDENTIALS_DEFAULT_LIFETIME_SECS INFOCARD_STS_AUTH_TYPE SECURE_MODE
AUTH_ERROR_HANDLER INFOCARD_STS_CACERTFILE SIGNOUT_HANDLER
AUTH_FAIL INFOCARD_STS_CERTFILE SSL_PROG
AUTH_FAIL_DELAY_SECS INFOCARD_STS_KEYFILE SSL_PROG_ARGS
AUTH_SINGLE_COOKIE INFOCARD_STS_KEYFILE_PASSWORD SSL_PROG_CA_CRT
AUTH_SUCCESS INFOCARD_STS_PASSWORD_METHOD SSL_PROG_CLIENT_CRT
AUTH_SUCCESS_HANDLER INFOCARD_STS_RP_ENDPOINT STATUS_LINE
AUTH_TRANSFER_EXPORT INFOCARD_TOKEN_DRIFT_SECS STYLE
AUTH_TRANSFER_TOKEN_LIFETIME_SECS INFOCARD_TOKEN_ISSUER SUCCESS_URL
COMPAT_MODE INFOCARD_TOKEN_LIFETIME_SECS TEMP_DIRECTORY
CONTROL INFOCARD_TOKEN_MAX_LENGTH TOKEN_HOTP_ACCEPT_WINDOW
COOKIE_HTTPONLY INFOCARD_USERNAME_SELECTOR TOKEN_REQUIRES_PIN
COOKIE_NAME_TERMINATORS INIT* TRACE_LEVEL
COOKIE_NO_DOMAIN INIT* UNAUTH_ROLES
COOKIE_PATH JURISDICTION_NAME UPROXY_APPROVED
COOKIE_SAMESITE LOGINGEN_FILE URL
CREDENTIALS_LIFETIME_SECS LOGINGEN_PROG URL
CREDENTIALS_LIFETIME_SECS LOG_FILE URL*
CSS_PATH LOG_FILTER URL*
DTD_BASE_URL LOG_FORMAT VERBOSE_LEVEL
ERROR_URL LOG_LEVEL VERIFY_IP
EVAL LOG_SENSITIVE VERIFY_UA
EXIT* NAME_COMPARE VFS
EXIT* NOTICES_ACCEPT_HANDLER XSD_BASE_URL
EXIT* NOTICES_ACK_HANDLER claim_name
EXPR NOTICES_DECLINE_HANDLER claim_name
EXPR NOTICES_NAT_NAME_PREFIX claim_type
FEDERATION_DOMAIN NOTICES_SECURE_HANDLER claim_type
FEDERATION_NAME NOTICES_WORKFLOW_LIFETIME_SECS claim_uri_prefix
FLAGS OPTION claim_uri_prefix
HTTP_AUTH OPTION claim_uri_prefix_abbrev
HTTP_AUTH_ENABLE OPTION* claim_value
HTTP_PROG OPTION*  

DTDs

These XML DTD skeletons are used only to help document information used by DACS.

Configuration.dtd, access_token.dtd, acl.dtd, acl_index.dtd, auth_reply.dtd, common.dtd, credentials.dtd, crypt_keys.dtd, dacs_acs.dtd, dacs_admin.dtd, dacs_auth_agent.dtd, dacs_auth_reply.dtd, dacs_auth_transfer.dtd, dacs_conf_reply.dtd, dacs_current_credentials.dtd, dacs_group.dtd, dacs_infocard.dtd, dacs_list_jurisdictions.dtd, dacs_notices.dtd, dacs_passwd.dtd, dacs_select_credentials.dtd, dacs_user_info.dtd, dacs_version.dtd, groups.dtd, roles_reply.dtd, selected_credentials.dtd, store_reply.dtd


This documentation was created on Fri Aug 28 12:38:22 PDT 2026 using DocBook and libxslt.
Font:
−− Set ++