WSDL (SOAP Web Services)
Introduction
What is WSDL and SOAP?
WSDL (Web Services Description Language) is an XML-based language for describing web services. SOAP (Simple Object Access Protocol) is a protocol for exchanging structured information in web services implementation.
Module Purpose
The WSDL module provides standardized interface for integration with external applications via SOAP web services. Main capabilities:
- Single Sign-On (SSO) - Automatic user login from external systems without credentials
- Secure Integration - Time-limited access URLs for specific users and modules
- Platform Independence - SOAP services callable from any language (PHP, C#, Java, Python)
- External Access - External apps can redirect users directly to specific eIntranet modules
Typical Use Cases
- Corporate portal SSO integration
- Mobile app deep linking with auto-login
- Iframe integration in external systems
- Automated email links with user authentication
- Workflow integration between business applications
Main Features
eIAccess Service
The module provides the eIAccess SOAP service for generating secure, time-limited access URLs.
Key Features:
- Generates unique URL for specific user
- URL valid for 15 minutes only
- Contains encrypted authentication token
- Redirects user to specific eIntranet module
- Automatically logs in user without password
- Records login in user history
Security Mechanisms
- WSDLAuthCode - 66-character authentication code
- User Verification - UserID and UserEmail must match database
- Time Limitation - Generated URL valid 15 minutes only
- Token Encryption - AES-256-CBC encrypted AuthToken
- Module Validation - Only existing active modules allowed
Module Configuration
Activation
- Login as administrator
- Go to Settings > Modules
- Find WSDL (SOAP Web Services)
- Activate and save
Getting WSDLAuthCode
- Open Settings > WSDL (SOAP)
- Go to General Settings tab
- Find WSDLAuthCode: section
- Copy the 66-character code
Security Warning: WSDLAuthCode is highly sensitive. Never share publicly. Store only in secure server configuration files.
Access Rights
WSDL Settings Access
- Global Administrators - Users with "admin" flag
- Module Administrators - Users with "WSDL" in AdminToModules
User Requirements for WSDL Access
- User must be imported in Settings > Users
- User must have active account
- User must have rights for target module
- Email must be unique and correctly filled
- UserID must match internal database identifier
Using eIAccess Service
Service Information
WSDL URL: https://your-domain.eintranet.net/wsdl/eIAccess.php?wsdl
SOAP Endpoint: https://your-domain.eintranet.net/wsdl/eIAccess.php
SOAP Version: SOAP 1.2, RPC style
GenerateAccessUrl Function
Input Parameters
- WSDLAuthCode (string) - 66-character authentication code
- UserID (string) - Internal user ID number
- UserEmail (string) - User email exactly as stored
- ModuleName (string) - Target module name (e.g., "wiki", "dochazka")
Return Values
- ResponseCode (integer) - 1 for success, 0 for failure
- ResponseErrorText (string) - Error message if failed
- ResponseURL (string) - Generated access URL
- ResponseURLValidTill (string) - URL expiration timestamp (ISO 8601)
Error Messages
- "Bad WSDLAuthCode!" - Invalid authentication code
- "Bad UserID!" - Invalid user ID format
- "Bad UserEmail!" - Invalid email format
- "Not existing ModuleName!" - Module not found or inactive
- "Not existing User!" - UserID/UserEmail combination not found
Available Modules
Common modules for ModuleName parameter:
- wiki - Company wiki and knowledge base
- dochazka - Attendance tracking
- dovolena - Vacation management
- cestaky - Travel orders and expenses
- ukoly - Task management
- crm - Customer relationship management
- faktury_vydane - Issued invoices
- prijate_faktury - Received invoices
- sklad - Warehouse management
- helpdesk - Helpdesk and tickets
- projekty - Project management
- smlouvy - Contract management
- dokumenty - Document management
Code Examples
PHP Example
$client = new SoapClient("https://domain.eintranet.net/wsdl/eIAccess.php?wsdl");
$result = $client->GenerateAccessUrl(
"YOUR_WSDL_AUTH_CODE",
"42",
"user@company.com",
"wiki"
);
if ($result["ResponseCode"] == 1) {
$url = html_entity_decode($result["ResponseURL"]);
header("Location: " . $url);
}
C# Example
var client = new eIAccessClient();
var result = client.GenerateAccessUrl(
"YOUR_WSDL_AUTH_CODE",
"42",
"user@company.com",
"wiki"
);
if (result.ResponseCode == 1) {
string url = WebUtility.HtmlDecode(result.ResponseURL);
Response.Redirect(url);
}
Security Best Practices
- Store WSDLAuthCode in secure server configuration files only
- Never commit WSDLAuthCode to version control
- Use HTTPS for all WSDL communications
- Monitor WSDL access logs regularly
- Regenerate WSDLAuthCode if compromised
- Limit server access to WSDLAuthCode
Troubleshooting
Common Issues
- URL not working - Check if URL is still valid (15 min limit)
- User not found - Verify UserID and UserEmail match exactly
- Module not found - Verify module is active for your company
- HTML entities in URL - Decode & to & before redirecting