Authentication API
z/Scope Anywhere provides you with an API that you can use to develop your own authentication method and integrate it with z/Scope Anywhere.
Choose the code sample of your language of preference and add it to your implementation:
Delphi
function ValidateUser(
const UserName, Password, Metadata: PWideChar;
SecurityRole, WinUser, WinPass, CustomData: PWideChar;
var Handled: Boolean): Cardinal; stdcall;
Input:
| Parameter | Description |
|---|---|
| Username & Password | The credentials that you are trying to validate with the external authentication |
| Metadata | A JSON with the remote browser/user information: URL, IP, Cookie UBRWID and the product’s name |
Output:
| Parameter | Description |
|---|---|
| SecurityRole | Specifies the Windows mapping of the authenticated user (UserName and Password). This SecurityRole can either be a Windows user or group, and it will be used to check which profiles it has access to |
| WinUser, WinPass | (optional) Credentials of a mapped Windows user. Will be used to run the application instance. |
| CustomData | (optional) Data for passing on to the application |
| Handled | Returns whether the login could be handled by the DLL. |
C++
THINFINITY_API DWORD __stdcall ValidateUser(
LPWSTR lpUserName,
LPWSTR lpPassword,
LPWSTR lpMetadata,
LPWSTR lpSecurityRole,
LPWSTR lpWinUser,
LPWSTR lpWinPass,
LPWSTR lpCustomData,
PBOOLEAN pHandled);
Input:
| Parameter | Description |
|---|---|
lpUserName & lpPassword |
The credentials that you are trying to validate with the external authentication |
lpMetadata |
A JSON with the remote browser/user information: URL, IP, Cookie UBRWID and the product’s name |
Output:
| Parameter | Description |
|---|---|
lpSecurityRole |
Specifies the Windows mapping of the authenticated user (UserName and Password). This SecurityRole can either be a Windows user or group, and it will be used to check which profiles it has access to |
lpWinUser, lpWinPass |
(optional) Credentials of a mapped Windows user. Will be used to run the application instance. |
lpCustomData |
Data for passing on to the application |
| pHandled | Returns whether the login could be handled by the DLL. |
C#
[DllExport("ValidateUser", CallingConvention = CallingConvention.StdCall)]
[return: MarshalAs(UnmanagedType.I4)]
public static Int32 ValidateUser(
[In, MarshalAs(UnmanagedType.LPWStr)] string lpUserName,
[In, MarshalAs(UnmanagedType.LPWStr)] string lpPassword,
[In, MarshalAs(UnmanagedType.LPWStr)] string lpMetadata,
[In, Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder lpSecurityRole,
[In, Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder lpWinUser,
[In, Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder lpWinPass,
[In, Out, MarshalAs(UnmanagedType.LPWStr)] StringBuilder lpCustomData,
[Out] bool pHandled);
Input:
| Parameter | Description |
|---|---|
lpUserName & lpPassword |
Specifies the Windows mapping of the authenticated user (UserName and Password). This SecurityRole can either be a Windows user or group, and it will be used to check which profiles it has access to |
lpMetadata |
A JSON with the remote browser/user information: URL, IP, Cookie UBRWID and the product’s name |
Output:
| Parameter | Description |
|---|---|
lpSecurityRole |
The authenticated username |
lpWinUser, lpWinPass |
(optional) Credentials of a mapped Windows user. Will be used to run the application instance. |
lpCustomData |
Data to pass on to the application |
| pHandled | Returns whether the login could be handled by the DLL. |