### *** This interface provides Binary Compatibility only, not Source Compatibility ***

Package com.sas.services.security

# Interface AuthenticationServiceInterface

All Superinterfaces:
  `com.sas.entities.EntityKeyInterface`, `Remote`, `RemoteServiceInterface`, `ServiceNotificationBroadcasterInterface`

All Known Implementing Classes:
  `AuthenticationService`

@SASScope("ALL") @BinaryCompatibilityOnly public interface AuthenticationServiceInterface extends RemoteServiceInterface
Authentication Service interface.

This class will return an Authenticator.

Since:
  1.0

- ## Field Summary

  Fields
  Modifier and Type
  Field
  Description
  `static final String`
  `IDPROPAGATION_SSPI`
  Name of SSPI ID propagation mechanism.
  `static final String`
  `IDPROPAGATION_TRUSTED_PEER`
  Name of Trusted Peer ID propagation mechanism.
  `static final String`
  `PROPERTYDEFAULT_LOGIN_CONFIG_APP_NAME`
  The default value "PFS" of a system property that provides the value returned by `getLoginConfigAppName()`.
  `static final String`
  `PROPERTYNAME_LOGIN_CONFIG_APP_NAME`
  The name of a system property that provides the value returned by `getLoginConfigAppName()`.

  ### Fields inherited from interface com.sas.services.RemoteServiceInterface

  `CLASS_IDENTIFIER, CLASS_IDENTIFIER_1_1, CLASS_IDENTIFIER_1_2, CLASS_IDENTIFIER_SERVICE_TYPE, CLASS_IDENTIFIER_SERVICE_TYPE_1_1, CLASS_IDENTIFIER_SERVICE_TYPE_1_2`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `AuthenticatorInterface`
  `getAuthenticator()`
  Get an authenticator object.
  `List`
  `getDomains()`
  Get the list of authentication domains that are defined in the login.config file.
  `String`
  `getIDPropagation(String domain)`
  Get the ID propagation authentication mechanism supported by the named domain.
  `String`
  `getLoginConfigAppName()`
  The name of the application entry in the JAAS login configuration that applies to this services deployment.
  `boolean`
  `isTrusted(String domain)`
  Indicate whether the named domain is a trust domain.

  ### Methods inherited from interface com.sas.entities.EntityKeyInterface

  `getEntityKey, sameEntity, setEntityKey`

  ### Methods inherited from interface com.sas.services.RemoteServiceInterface

  `configure, destroy, getCreationTime, getServiceConfiguration, getServiceConfiguration, getServiceProxy, getServiceState, isAccessibleToRemoteClients, isExported, reconfigure, setServiceState`

  ### Methods inherited from interface com.sas.services.mgmt.ServiceNotificationBroadcasterInterface

  `addServiceObserver, notifyServiceObservers, removeAllServiceObservers, removeServiceObserver`

- ## Field Details

  - ### PROPERTYNAME_LOGIN_CONFIG_APP_NAME

    static final String PROPERTYNAME_LOGIN_CONFIG_APP_NAME
    The name of a system property that provides the value returned by `getLoginConfigAppName()`.
    See Also:
      - `getLoginConfigAppName()`
      - Constant Field Values

  - ### PROPERTYDEFAULT_LOGIN_CONFIG_APP_NAME

    static final String PROPERTYDEFAULT_LOGIN_CONFIG_APP_NAME
    The default value "PFS" of a system property that provides the value returned by `getLoginConfigAppName()`.
    See Also:
      - `getLoginConfigAppName()`
      - Constant Field Values

  - ### IDPROPAGATION_SSPI

    static final String IDPROPAGATION_SSPI
    Name of SSPI ID propagation mechanism.
    See Also:
      - `getIDPropagation(String)`
      - Constant Field Values

  - ### IDPROPAGATION_TRUSTED_PEER

    static final String IDPROPAGATION_TRUSTED_PEER
    Name of Trusted Peer ID propagation mechanism.
    See Also:
      - `getIDPropagation(String)`
      - Constant Field Values

- ## Method Details

  - ### getDomains

    List getDomains() throws RemoteException
    Get the list of authentication domains that are defined in the login.config file.

    Returns:
      a List of String objects with the authentication domains.
    Throws:
      `RemoteException` - in the event of remote object failure.

  - ### isTrusted

    boolean isTrusted(String domain) throws ServiceException, RemoteException
    Indicate whether the named domain is a trust domain. A Trust domain is one that does not require a password because the user has already been authenticated by an outside mechanism.
    Parameters:
      `domain` - The name of the domain to check.
    Returns:
      True if the domain is configured to use the trusted authentication login module, false otherwise.
    Throws:
      `ServiceException` - If the domain is not found in the configured list.
      `RemoteException` - In the event of remote object failure.

  - ### getIDPropagation

    String getIDPropagation(String domain) throws ServiceException, RemoteException
    Get the ID propagation authentication mechanism supported by the named domain. Returns `null` if the named domain does not support ID propagation.
    Parameters:
      `domain` - The name of the domain to check.
    Returns:
      the ID propagation authentication mechanism supported by the named domain
    Throws:
      `ServiceException` - If the domain is not found in the configured list.
      `RemoteException` - In the event of remote object failure.
    See Also:
      - `IDPROPAGATION_SSPI`
      - `IDPROPAGATION_TRUSTED_PEER`

  - ### getAuthenticator

    AuthenticatorInterface getAuthenticator() throws RemoteException
    Get an authenticator object. The authenticator is an interface to the JAAS (Java Authentication and Authorization Services) classes.
    Returns:
      An object used to authenticate a user identity.
    Throws:
      `RemoteException` - if a network anomaly is encountered.

  - ### getLoginConfigAppName

    String getLoginConfigAppName() throws RemoteException
    The name of the application entry in the JAAS login configuration that applies to this services deployment. This value comes from the system property `com.sas.services.security.LOGIN_CONFIG_APP_NAME` or if there is no value for that property, from the Authentication Service configuration.
    Returns:
      the name of an application entry in the JAAS login configuration.
    Throws:
      `RemoteException` - if a network anomaly is encountered.
    See Also:
      - `PROPERTYNAME_LOGIN_CONFIG_APP_NAME`