How RAD Works
In RAD architecture, the clients can be local or remote, and the clients interact with the RAD modules to perform various administrative activities. For example, a client interacts with the ZFS management RAD module to perform storage-related activities. These RAD clients can be written in C, Java, or Python.
The following figure shows the architecture of RAD.
Architecture of RAD
RAD uses three different types of authentication:
-
Implicit – Used for local connections, for example, using
rc_connect_unix(NULL, ...)
. The RAD daemon reads the user's credentials from the calling process. -
Explicit with PAM – Performed by using APIs such as
rc_auth_login
() andrc_connect_uri
() in C client,rad.auth.RadAuth
class in Python, andRadAuthHandler
in Java. -
Explicit with GSS – Performed by using APIs
rc_connect_gss
() orrc_connect_uri
() in C client. This requires Kerberos setup. For more information about using Kerberos with RAD, see Generic Security Services API Transport in RAD.
To use the client bindings you must install the appropriate client program packages.
-
For C –
solaris/system/management/rad/client/rad-c
-
For Java –
solaris/system/management/rad/client/rad-java
-
For Python –
solaris/system/management/rad/client/rad-python-37
,solaris/system/management/rad/client/rad-python-35
, orsolaris/system/management/rad/client/rad-python-27
, depending on the Python version required
To use radadrgen
to generate API-specific language client and server bindings, see radadrgen Processing Tool in Remote Administration Daemon Module Developer's Guide.