Dateien UserRegistry.java

Die folgende Datei zeigt eine angepasste Eigenschaft, die für eine angepasste Benutzerregistry verwendet wird.

Weitere Informationen finden Sie unter "Eigenständige angepasste Registriys konfigurieren".

//  5639-D57, 5630-A36, 5630-A37, 5724-D18 
// (C) COPYRIGHT International Business Machines Corp. 1997, 2005
//  Alle Rechte vorbehalten. Lizenziertes Material - Eigentum der IBM.
//
// BESCHREIBUNG:
//
//    Dies ist die Schnittstelle UserRegistry, die angepasste Registrys in
//    WebSphere Application Server implementieren, damit die
//    WebSphere-Sicherheit die angepasste Registry verwendet.
//

package com.ibm.websphere.security;

import java.util.*;
import java.rmi.*;
import java.security.cert.X509Certificate;
import com.ibm.websphere.security.cred.WSCredential;

/**
 * Wenn Sie diese Schnittstelle implementieren, kann die Sicherheit von WebSphere Application Server
 * mit angepassten Registrys arbeiten. Diese Schnittstelle erweitert java.rmi.Remote,
 * da die Registry in einem fernen Prozess ausgeführt werden kann.
 *
 * Die Implementierung dieser Schnittstelle muss Implementierungen für
 * folgende Methoden bereitstellen:
*
* initialize(java.util.Properties)
* checkPassword(String,String)
* mapCertificate(X509Certificate[])
* getRealm
* getUsers(String,int)
* getUserDisplayName(String)
* getUniqueUserId(String)
* getUserSecurityName(String)
* isValidUser(String)
* getGroups(String,int)
* getGroupDisplayName(String)
* getUniqueGroupId(String)
* getUniqueGroupIds(String)
* getGroupSecurityName(String)
* isValidGroup(String)
* getGroupsForUser(String)
* getUsersForGroup(String,int)
* createCredential(String)
**/

public interface UserRegistry extends java.rmi.Remote
{

  /**
   * Initialisiert die Registry. Diese Methode wird beim Erstellen
   * der Registry aufgerufen.
   *
   * @param     props   Die Registry-spezifischen Eigenschaften, mit denen die
   *                    angepasste Registry initialisiert werden soll.
   * @exception CustomRegistryException beim Auftreten eines registrysspezifischen Fehlers.
   * @exception RemoteException bei Erweiterung von java.rmi.Remote.
      **/
   public void initialize(java.util.Properties props)
      throws CustomRegistryException,
             RemoteException;
  /**
   * Prüft das Kennwort des Benutzers. Diese Methode wird aufgerufen,
   * um einen Benutzer zu authentifizieren, wenn Benutzername und
   * Kennwort angegeben werden.
   *
   * @param      userSecurityName - Der Name des Benutzers.
   * @param password: Das Kennwort des Benutzers
   * @return: Ein gültiger Benutzername. Normalerweise ist das 
   *  der Name desselben Benutzers, dessen Kennwort zuvor geprüft wurde,
   *  wurde, aber wenn die Implementierung einen anderen gültigen
   * Benutzernamen in der Registry zurückgeben möchte, ist das möglich.
   * @exception: CheckPasswordFailedException, falls die Kombination aus Benutzername
   *  und Kennwort in der Registry nicht vorhanden ist.
   * @exception CustomRegistryException bei Auftreten eines Registry-spezifischen
   *               Fehlers
   * @exception RemoteException bei Erweiterung von java.rmi.Remote
   **/
   public String checkPassword(String userSecurityName, String password)
      throws PasswordCheckFailedException,
             CustomRegistryException,
             RemoteException;

  /**
   * Ordnet ein Zertifikat (X509-Format) einem gültigen Benutzer in der Registry zu.
   * Es wird verwendet, um den Namen im Zertifikat, der von einem Browser angegeben 
   * wird, einem gültigen Benutzernamen in der Registry zuzuordnen.
   *
   * @param cert: die X509-Zertifikatskette
   * @return:     der zugeordnete userSecurityName
   * @exception:  CertificateMapNotSupportedException, wenn ein bestimmtes
   *              Zertifikat nicht unterstützt wird.
   * @exception:  CertificateMapFailedException, wenn die Zuordnung des Zertifikats 
   *              fehlschlägt.
   * @exception CustomRegistryException bei Auftreten eines Registry-spezifischen
   *               Fehlers
   * @exception RemoteException bei Erweiterung von java.rmi.Remote
   **/
   public String mapCertificate(X509Certificate[] cert)
      throws CertificateMapNotSupportedException,
             CertificateMapFailedException,
             CustomRegistryException,
             RemoteException;

  /**
   * Gibt den Realm der Registry zurück.
   *
   * @return:   Der Realm. Der Bereich ist eine Registry-spezifische
   *            Zeichenfolge, die den Bereich oder die Domäne
   *            anzeigt, für den bzw. die diese Registry gültig
   *            ist.  Für OS400 und AIX ist
   *            dies beispielsweise der Hostname des Systems, dessen Benutzerregistry
   *            dieses Objekt darstellt.
   *            Wird der Wert "null" von dieser Methode zurückgegeben,
   *            wird für den Bereich standardmäßig der Wert "customRealm" festgelegt. 
   *            Es wird empfohlen, einen eigenen Wert für den Realm zu verwenden.
   * @exception CustomRegistryException bei Auftreten eines Registry-spezifischen
   *               Fehlers
   * @exception RemoteException bei Erweiterung von java.rmi.Remote
   **/
   public String getRealm()       
      throws CustomRegistryException,
             RemoteException;

  /**
   * Ruft eine Liste der Benutzer ab, die einem Muster in der Registry entsprechen.
   * Die Maximalanzahl der zurückgegebenen Benutzer wird vom Parameter limit
   * definiert.
   * Diese Methode wird von der Administrationskonsole und Scripts (Befehlszeile aufgerufen,
   * um die Benutzer in der Registry so vorzubereiten, dass sie (die Benutzer)
   * Rollen zugeordnet werden können.
   *
   * @parameter pattern: Das Muster, mit dem eine Übereinstimmung erzielt werden
   *                     muss. (Mit a* stimmen beispielsweise alle userSecurityNames
   *                     überein, die mit a beginnen.)
      * @parameter limit:   Die Maximalanzahl der zurückzugebenden Benutzer.
   *               Das ist sehr nützlich in Situationen, in denen Tausende von Gruppen
   *               in der Registry vorhanden sind und das Abrufen aller Benutzer nicht
   *               praktikabel ist. Der Wert "0" bedeutet, dass alle Benutzer abgerufen 
   *               werden sollen und muss daher mit Vorsicht verwendet werden. 
   * @return:      Ein Result-Objekt, das die Liste der angeforderten Benutzer
   *               und ein Flag enthält, wenn weitere Benutzer vorhanden sind.
   * @exception CustomRegistryException bei Auftreten eines Registry-spezifischen
   *               Fehlers
   * @exception RemoteException bei Erweiterung von java.rmi.Remote
   **/
   public Result getUsers(String pattern, int limit)      throws CustomRegistryException,
             RemoteException;

  /**
   * Gibt den Anzeigenamen des mit userSecurityName angegebenen Benutzers zurück.
   *
   * Diese Methode wird nur aufgerufen, wenn die Benutzerdaten angezeigt
   * (z. B. nur zu Informationszwecken in der Administrationskonsole) und
   * deshalb nicht für die eigentliche Authentifizierung oder Berechtigung
   * verwendet werden. Falls keine Anzeigenamen in der Registry vorhanden sind,
   * null oder eine leere Zeichenfolge zurückgeben.
   *
   * Wenn Sie in der angepassten Registry von WebSphere Application Server 4.0 einen
   * Anzeigenamen für den Benutzer festgelegt haben und dieser vom Sicherheitsnamen
   * abgewichen ist, wurde bei der EJB-Methode getCallerPrincipal() und den Servletmethoden
   * getUserPrincipal() und getRemoteUser() der Anzeigename zurückgegeben.
   * In WebSphere Application Server Version 6.0 wird bei diesen Methoden standardmäßig der
   * Sicherheitsname zurückgegeben. Dies ist die empfohlene Verfahrensweise, weil der
   * Anzeigename nicht eindeutig ist und ansonsten Sicherheitslücken auftreten könnten.
      *
   * Nähere Informationen hierzu finden Sie in der Dokumentation.
   *
   * @parameter userSecurityName: der Name des Benutzers.
   * @return: Der Anzeigename des Benutzers. Der Anzeigename
   *          ist eine Registry-spezifische Zeichenfolge, die
   *          einen beschreibenden, nicht unbedingt eindeutigen
   *          Namen für einen Benutzer angibt. Ist kein Anzeigename
   *          vorhanden, wird null oder eine leere Zeichenfolge zurückgegeben.
   * @exception: EntryNotFoundException auslösen, wenn der Benutzername nicht vorhanden ist.
   * @exception CustomRegistryException bei Auftreten eines Registry-spezifischen
   *               Fehlers
   * @exception RemoteException bei Erweiterung von java.rmi.Remote
   **/
   public String getUserDisplayName(String userSecurityName)
      throws EntryNotFoundException,
             CustomRegistryException,
             RemoteException;

  /**
   * Gibt die eindeutige ID für einen Benutzernamen zurück. Diese Methode wird
   * aufgerufen, wenn eine Berechtigung für einen Benutzer erstellt wird. 
   *
   * @parameter userSecurityName: der Name des Benutzers.
   * @return: Die eindeutige ID des Benutzers. Die eindeutige
   *          eines Benutzers ist eine Zeichenfolge, die sich
   *          aus eindeutigen, Registry-spezifischen Daten für
   *          die Darstellung des Benutzers zusammensetzt. In
   *          der UNIX-Benutzerregistry kann die eindeutige ID
   *          eines Benutzers beispielsweise die UID sein.
   * @exception: EntryNotFoundException auslösen, wenn der Benutzername nicht vorhanden ist.
   * @exception CustomRegistryException bei Auftreten eines Registry-spezifischen
   *               Fehlers
   * @exception RemoteException bei Erweiterung von java.rmi.Remote
   **/
   public String getUniqueUserId(String userSecurityName)       
      throws EntryNotFoundException,
             CustomRegistryException,
             RemoteException;

  /**
   * Gibt den Namen eines Benutzers zurück, wenn dessen eindeutige ID angegeben wurde.
   *
   * @parameter uniqueUserId: Die eindeutige ID des Benutzers.
   * @return:   Der Name des Benutzers.
   * @exception: EntryNotFoundException, wenn die eindeutige Benutzer-ID nicht vorhanden ist.
   * @exception CustomRegistryException bei Auftreten eines Registry-spezifischen
   *               Fehlers
   * @exception RemoteException bei Erweiterung von java.rmi.Remote
   **/
   public String getUserSecurityName(String uniqueUserId)
      throws EntryNotFoundException,
             CustomRegistryException,
             RemoteException;

  /**
   * Ermittelt, ob der Benutzername in der Registry vorhanden ist.
   *
   * @parameter userSecurityName: der Name des Benutzers
   * @return:   Wert "true", wenn der Benutzer gültig ist. Andernfalls Wert "false".
   * @exception CustomRegistryException bei Auftreten eines Registry-spezifischen
   *               Fehlers
   * @exception RemoteException bei Erweiterung von java.rmi.Remote
   **/
   public boolean isValidUser(String userSecurityName)
      throws CustomRegistryException,
             RemoteException;

  /**
   * Ruft eine Liste von Gruppen ab, die mit einem Muster in der Registry übereinstimmen.
   * Die Maximalanzahl der zurückgegebenen Gruppen wird vom Parameter limit
   * definiert.
   * Diese Methode wird von der Administrationskonsole und Scripts (Befehlszeile
   * aufgerufen, um die Gruppen in der Registry so vorzubereiten, dass sie (die
   * Gruppen) Rollen zugeordnet werden können.
   *
   * @parameter pattern: Das Muster, mit dem eine Übereinstimmung erzielt werden
   *                     muss. (Beispiel: Mit a* werden alle groupSecurityNames gesucht,
   *                     die mit a beginnen.)
      * @parameter limit: Die Maximalanzahl der Gruppen, die zurückgegeben werden sollen.
   *               Das ist sehr nützlich in Situationen, in denen Tausende von Gruppen
   *               in der Registry vorhanden sind und das Abrufen aller Benutzer nicht
   *               praktikabel ist. Der Wert 0 bedeutet, dass alle Gruppen abgerufen
   *               werden sollen und muss daher mit Vorsicht verwendet werden. 
   * @return       Ein Result-Objekt, das die Liste der angeforderten Gruppen
   *               und ein Flag enthält, das anzeigt, ob weitere Gruppen vorhanden sind.
   * @exception:  CustomRegistryException bei Auftreten eines Registry-spezifischen 
   *               Fehlers
   * @exception RemoteException bei Erweiterung von java.rmi.Remote
   **/
   public Result getGroups(String pattern, int limit)
      throws CustomRegistryException,
             RemoteException;

  /**
   * Gibt den Anzeigenamen für die durch den Gruppennamen angegebene Gruppe zurück.
   *
   * Diese Methode kann nur aufgerufen werden, wenn die Gruppeninformationen angezeigt
   * (z. B. in der Administrationskonsole) und daher bei der tatsächlichen Authentifizierung
   * bzw. Berechtigung nicht verwendet werden. Falls keine Anzeigenamen in der Registry
   * vorhanden sind, null oder eine leere Zeichenfolge zurückgeben.
   *
   * @parameter groupSecurityName: Der Name der Gruppe.
   * @return: Der Anzeigename für die Gruppe. Der Anzeigename
   *          ist eine Registry-spezifische Zeichenfolge, die
   *          einen beschreibenden, nicht unbedingt eindeutigen
   *          Namen für eine Gruppe angibt. Ist kein Anzeigename
   *          vorhanden, wird null oder eine leere Zeichenfolge zurückgegeben.
   * @exception: EntryNotFoundException auslösen, wenn der Gruppenname nicht vorhanden ist.
   * @exception CustomRegistryException bei Auftreten eines Registry-spezifischen
   *               Fehlers
   * @exception RemoteException bei Erweiterung von java.rmi.Remote
   **/
   public String getGroupDisplayName(String groupSecurityName)
      throws EntryNotFoundException,
             CustomRegistryException,
             RemoteException;

  /**
   * Gibt die eindeutige ID für eine Gruppe zurück.

   * @parameter groupSecurityName: Der Name der Gruppe.
   * @return    Die eindeutige ID der Gruppe. Die eindeutige ID für eine Gruppe ist
   *            eine Zeichenfolge, die sich aus eindeutigen, Registry-spezifischen
   *            Daten zur Angabe der Gruppe zusammensetzt.
   *            In der UNIX-Benutzerregistry kann die eindeutige ID beispielsweise
   *            die GID sein.
   * @exception: EntryNotFoundException auslösen, wenn der Gruppenname nicht vorhanden ist.
   * @exception CustomRegistryException bei Auftreten eines Registry-spezifischen
   *               Fehlers
   * @exception RemoteException bei Erweiterung von java.rmi.Remote
   **/
   public String getUniqueGroupId(String groupSecurityName)
      throws EntryNotFoundException,
             CustomRegistryException,
             RemoteException;


  /**
   * Gibt die eindeutigen IDs aller Gruppen zurück, die die eindeutige ID eines
   * Benutzers enthalten.    Wird bei der Erstellung einer Benutzerberechtigung
   * aufgerufen.
   *
   * @parameter uniqueUserId: Die eindeutige ID des Benutzers.
   * @return     Eine Liste alle eindeutigen Gruppen-IDs, zu denen die eindeutige
   *             Benutzer-ID gehört. Die eindeutige ID eines Eintrags ist
   *             eine Zeichenfolge, die sich aus eindeutigen, Registry-spezifischen Daten
   *             für die Darstellung des Eintrags zusammensetzt. Für die UNIX-Benutzerregistry
   *             kann die eindeutige ID für eine Gruppe beispielsweise die GID und die eindeutige
   *             ID für den Benutzer die UID sein.
   * @exception: EntryNotFoundException auslösen, wenn die eindeutige ID des Benutzers nicht vorhanden ist.
   * @exception CustomRegistryException bei Auftreten eines Registry-spezifischen
   *               Fehlers
   * @exception RemoteException bei Erweiterung von java.rmi.Remote
   **/
   public List getUniqueGroupIds(String uniqueUserId)
      throws EntryNotFoundException,
             CustomRegistryException,
             RemoteException;

  /**
   * Gibt den Namen einer Gruppe zurück, wenn deren eindeutige ID angegeben wurde.
   *
   * @parameter:  Die eindeutige ID der Gruppe.
   
   * @return:     Der Name der Gruppe.
   * @exception:  EntryNotFoundException, wenn die eindeutige Gruppen-ID nicht vorhanden ist.
   * @exception:  CustomRegistryException bei Auftreten eines Registry-spezifischen 
   *               Fehlers
   * @exception RemoteException bei Erweiterung von java.rmi.Remote
   **/
   public String getGroupSecurityName(String uniqueGroupId)
      throws EntryNotFoundException,
             CustomRegistryException,
             RemoteException;

  /**
   * Ermittelt, ob der Gruppenname in der Registry vorhanden ist.
   *
   * @parameter groupSecurityName: der Name der Gruppe.
   * @return:    Wert "true", wenn die Gruppe vorhanden ist, andernfalls Wert "false".
   * @exception CustomRegistryException bei Auftreten eines Registry-spezifischen
   *               Fehlers
   * @exception RemoteException bei Erweiterung von java.rmi.Remote
   **/
   public boolean isValidGroup(String groupSecurityName)
      throws CustomRegistryException,
             RemoteException;

  /**
   * Gibt die securityNames aller Gruppen zurück, die den Benutzer enthalten.
   *
   * Diese Methode wird von der Administrationskonsole und Scripts (Befehlszeile)
   * aufgerufen, um sicherzustellen, dass der Benutzer, der für die
   * RunAsRole-Zuordnung eingegeben wurde, zu der angegebenen Rolle
   * gehört. Am Anfang wird die Prüfung durchgeführt, um festzustellen, ob
   * die Rolle den Benutzer enthält. Wenn die Rolle den Benutzer nicht explizit
   * enthält, wird diese Methode aufgerufen, um die Gruppen, zu denen dieser Benutzer
   * gehört, abzurufen. Auf diese Weise können die Gruppen geprüft werden, die die
   * Rolle enthält.
   *
   * @parameter userSecurityName: der Name des Benutzers
   * @return:    Eine Liste mit den Namen aller Gruppen, zu denen der Benutzer
   *             gehört.
      * @exception: EntryNotFoundException auslösen, wenn der Benutzer nicht vorhanden ist.
   * @exception CustomRegistryException bei Auftreten eines Registry-spezifischen
   *               Fehlers
   * @exception RemoteException bei Erweiterung von java.rmi.Remote
   **/
   public List getGroupsForUser(String userSecurityName)
      throws EntryNotFoundException,
             CustomRegistryException,
             RemoteException;

  /**
   * Ruft eine Liste der Benutzer in einer Gruppe ab.
   *
   * Die Maximalanzahl der zurückgegebenen Benutzer wird vom Parameter limit
   * definiert.
   *
   * Diese Methode wird von WebSphere Business Integration
   * Server Foundation Process Choreographer verwendet, wenn Staff-Zuordnungen
   * mit Gruppen modelliert werden.
   *
   
   * Wenn Sie in seltenen Fällen mit einer Registry arbeiten, bei der sich das
   * Abrufen aller Benutzer aus einer Ihrer Gruppen nicht empfiehlt (z. B.
   * bei einer großen Anzahl von Benutzern), können Sie die Ausnahme
   * NotImplementedException für diese bestimmte Gruppe auslösen. Vergewissern
   * Sie sich, dass die Staff-Zuordnungen nicht mit diesen Gruppen modelliert
   * werden, wenn WebSphere Business Integration Server Foundation Process
   * Choreographer installiert ist.    Sollten keine Bedenken hinsichtlich
   * der Rückgabe der Benutzer aus Gruppen in der Registry bestehen,
   * wird empfohlen, diese Methode zu implementieren, ohne die Ausnahme
   * NotImplemented auzulösen.
   *
   * @parameter groupSecurityName: Der Name der Gruppe.
   * @parameter limit: Die Maximalanzahl der zurückzugebenden Benutzer.
   *            Die Verwendung dieses Parameters empfiehlt sich, wenn eine
   *            große Anzahl von Benutzern in der Registry vorhanden sind
   *            und das Abrufen aller Benutzer nicht sinnvoll ist. Der
   *            Wert 0 bedeutet, dass alle Benutzer abgerufen werden sollen,
   *            und muss daher mit Vorsicht verwendet werden.
      * @return:   Ein Result-Objekt, das die Liste der angeforderten Benutzer
   *            enthält. Ein Flag zeigt an, ob weitere Benutzer vorhanden sind.
      * @deprecated:  Diese Methode wird in Zukunft nicht mehr unterstützt.
   * @exception:   NotImplementedException. Diese Ausnahme nur auslösen,
   *               wenn es sich nicht empfiehlt, die Informationen für
   *               eine dieser Gruppen aus der Registry abzurufen.
   * @exception:   EntryNotFoundException auslösen, wenn die Gruppe nicht in der Registry
   *               vorhanden ist.
   * @exception CustomRegistryException beim Auftreten eines Registry-spezifischen Fehlers
   * @exception: RemoteException bei Erweiterung von java.rmi.Remote
   **/
   public Result getUsersForGroup(String groupSecurityName, int limit)
      throws NotImplementedException,
             EntryNotFoundException,
             CustomRegistryException,
             RemoteException;

  /**
   * Diese Methode wird in diesem Release intern vom WebSphere-Code implementiert.
   * Sie wird in diesem Release nicht für Implementierungen der angepassten
   * Registry aufgerufen. In der Implementierung einen Nullwert zurückgeben.
   *
   * Da diese Methode nicht aufgerufen wird, kann auch eine NotImplementedException
   * zurückgegeben werden, wie in der vorherigen Dokumentation erläutert wurde.
   *
   **/
   public com.ibm.websphere.security.cred.WSCredential 
                                createCredential(String userSecurityName)
      throws NotImplementedException,
	     EntryNotFoundException,
             CustomRegistryException,
             RemoteException;
}

Symbol, das den Typ des Artikels anzeigt. Referenzartikel



Symbol für Zeitmarke Letzte Aktualisierung: 25.05.2016
http://www14.software.ibm.com/webapp/wsbroker/redirect?version=cord&product=was-nd-mp&topic=rsec_usereg
Dateiname:rsec_usereg.html