WAS-Sicherheit mithilfe eines angepassten Abfangprozesses einbinden

In diesem Abschnitt wird beschrieben, wie Sie einen SSO-Abfangprozess für den kombinierten Einsatz mit WebSphere Application Server-Sicherheit (WAS-Sicherheit) erstellen.

Vorbereitende Schritte

Über den bereitgestellten Form SSO-Abfangprozess werden Benutzer mit einer Seite für die formulargestützte Anmeldung authentifiziert. Das folgende Beispiel zeigt, wie ein angepasster SSO-Abfangprozess erstellt wird. Für den angepassten Abfangprozess wird eine angepasste Interceptor-Klasse verwendet.

Die Interceptor-Klasse greift auf WAS zu, um authentifizierte Benutzerberechtigungsnachweise zu erhalten. Anschließend werden diese Berechtigungsnachweise in den Cache gestellt. Bei nachfolgenden Anmeldevorgängen werden die in den Cache gestellten Berechtigungsnachweise verwendet.

Voraussetzung: Der jeweilige Benutzer muss in WAS mit LDAP-Benutzerberechtigungsnachweisen konfiguriert sein.
Anmerkung: Sie müssen die Build Forge-LDAP-Domäne, in der die WAS-Benutzer enthalten sind, als Standard-LDAP-Server definieren. Wechseln Sie zu diesem Zweck zur betreffenden Build Forge-LDAP-Domäne und wählen Sie "Als Standard definieren" aus.

Berechtigungsservice (AuthServlet) schützen

In Build Forge werden Services normalerweise als Anwendung im bereitgestellten Apache Tomcat-Anwendungsserver ausgeführt.

Informationen zu diesem Vorgang

Den folgenden Anweisungen können Sie entnehmen, wie Build Forge so konfiguriert werden kann, dass WAS anstelle von Tomcat verwendet wird. Folgen Sie den Anweisungen im Abschnitt WebSphere Application Server anstelle von Apache Tomcat verwenden mit einer Ausnahme: Die Datei rbf-services.war enthält eine Datei mit dem Namen web.xml. Diese müssen Sie extrahieren und ändern, um eine Integritätsbedingung für die Sicherheit hinzuzufügen. Vor der Installation dieser Anwendung unter WAS muss die war-Datei nach dem Ändern neu generiert werden, damit die geschützte Version der Datei verwendet wird.

Gehen Sie zu diesem Zweck nach den folgenden Anweisungen vor:

Vorgehensweise

  1. Navigieren Sie zu dem Verzeichnis, das die Datei rbf-services.war enthält (Verzeichnis webapps im Stammverzeichnis des Tomcat-Servers). Kopieren Sie diese Datei in ein temporäres Verzeichnis, z. B. C:\rbf.
  2. Heben Sie die Komprimierung der WAR-Datei auf. Führen Sie in der Befehlszeile den folgenden Befehl aus, um den Inhalt der war-Datei zu dekomprimieren: %IBM_JAVA_HOME%\jar –xvf rbf-services.war.
    Anmerkung: Java muss verfügbar sein und die Umgebungsvariable IBM_JAVA_HOME muss bereits erstellt worden sein.
  3. Speichern Sie die Datei rbf-services.war, um sie später abrufen zu können:
    1. Windows: copy rbf-services.war rbf-services.war.bak
    2. UNIX oder Linux: cp rbf-services.war rbf-services.war.bak
  4. Suchen Sie die Datei web.xml im Verzeichnis WEB-INF (unter den Dateien aus der dekomprimierten war-Datei). Bearbeiten Sie diese Datei, um einen Sicherheitskontext hinzuzufügen. Fügen Sie z. B. die folgenden Zeilen am Ende der Datei unmittelbar vor dem Tag </web-app> hinzu:
    <security-constraint id="SecurityConstraint_1">
             <web-resource-collection id="WebResourceCollection_1">
                <web-resource-name>/*</web-resource-name>
                <url-pattern>/AuthServlet/*</url-pattern>
                <http-method>GET</http-method>
                <http-method>POST</http-method>
                <http-method>PUT</http-method>
                <http-method>DELETE</http-method>
             </web-resource-collection>
             <auth-constraint id="AuthConstraint_1">
                <description>myconstraint:+:</description>
                <role-name>User</role-name>
             </auth-constraint>
             <user-data-constraint id="UserDataConstraint_1">
                <transport-guarantee>NONE</transport-guarantee>
             </user-data-constraint>
          </security-constraint>
          <login-config id="LoginConfig_1">
             <auth-method>BASIC</auth-method>
             <realm-name>full-qualified-domain</realm-name>
          </login-config>
          <security-role id="SecurityRole_1">
             <role-name>User</role-name>
          </security-role>
    Anmerkung: Für "<auth-method>" kann eine beliebige von WAS unterstützte J2EE-Authentifizierungsmethode verwendet werden. Die gängigste Authentifizierungsmethode ist FORM, bei der zusätzliche Konfigurationsparameter erforderlich sind. Anweisungen zum Konfigurieren von FORM in Ihrer Anwendung finden Sie in der Dokumentation zu WebSphere.
  5. Generieren Sie über die Befehlszeile die war-Datei neu (Aufruf aus demselben Verzeichnis, in dem sie extrahiert wurde). Führen Sie dazu folgenden Befehl aus:
    %IBM_JAVA_HOME%\jar –cvf  rbf-services.war

    Sie verfügen nun über eine neue Version von rbf-services, die geändert wurde, um das Authentifizierungsservlet mit J2EE-Integritätsbedingungen zu schützen. Schließen Sie die Installation gemäß den Anweisungen für die Ausführung mit WAS ab und installieren Sie diese Version der Datei rbf-services.war über Applications->Install New Application. Stellen Sie sicher, dass Build Forge nicht aktiv ist, während Sie WAS konfigurieren.

    Wechseln Sie nach der Installation zu Applications->Enterprise Applications. Klicken Sie auf den Namen der Anwendung, um sie zu konfigurieren. Klicken Sie unter Detail Properties auf den Link Security role to user/group mapping. Aktivieren Sie das Kontrollkästchen All Authenticated für "User". Speichern Sie unbedingt die Hauptkonfiguration, wenn Sie diese Änderung vorgenommen haben.

    Die Anwendungssicherheit muss ebenfalls unter WAS aktiviert werden. Wechseln Sie zu diesem Zweck zu Security->Secure administration, applications, and infrastructure. Vergewissern Sie sich, dass Enable application security aktiviert ist.

    Starten Sie nun zunächst den WAS-Server und dann den Build Forge-Server erneut.
    Anmerkung: rbf-services sollte nun im Rahmen des WAS-Startvorgangs gestartet werden. Dies bedeutet, dass WAS vor Build Forge gestartet werden muss.

Neue SSO-Konfiguration erstellen

Erstellen Sie eine neue SSO-Konfiguration zur Verwendung des Abfangprozesses.

Vorgehensweise

  1. Wechseln Sie in der Build Forge-Konsole zu Verwaltung->Sicherheit->SSO.
  2. Klicken Sie auf SSO-Konfiguration hinzufügen.
  3. Legen Sie Eigenschaften für die Konfiguration fest.
    • Name: Geben Sie einen Namen für die Konfiguration ein.
    • Java-Klasse: Geben Sie com.buildforge.services.server.sso.was.WebSphereSSOInterceptor ein.
    • Aktiv: Wählen Sie "Ja" aus.
  4. Klicken Sie auf Speichern.
  5. Verschieben Sie die Konfiguration an den Anfang der Liste. Wählen Sie im Menü links neben dem Konfigurationsnamen An den Anfang verschieben aus.

LDAP-Benutzer oder LDAP-Gruppe lokalen Benutzern zuordnen

LDAP-Benutzer oder eine LDAP-Gruppe lokalen Benutzern, z. B. dem lokalen Root, zuordnen.

Informationen zu diesem Vorgang

Nach der Erstellung eines WebSphere-SSO-Abfangprozesses können Sie den Abfangprozess wie folgt konfigurieren:
  • LDAP-Benutzer lokalen Benutzern zuordnen, einschließlich Root
  • Eine LDAP-Gruppe einem lokalen Benutzer zuordnen, z. B. dem Root

Für eine Zuordnung definieren Sie eine Umgebung und verweisen Sie dann im Abfangprozess auf diese Umgebung.

Umgebung definieren

Vorgehensweise

  1. Klicken Sie in der Build Forge-Konsole auf Umgebungen.
  2. Geben Sie einen Namen für die Umgebung an und klicken Sie auf Umgebung speichern.
  3. Definieren und speichern Sie folgende Variablen, um LDAP-Benutzer lokalen Benutzern zuzuordnen:
    1. Geben Sie LDAP-Benutzer1|lokaler_Benutzer1;LDAP-Benutzer2|lokaler_Benutzer2;LDAP-Benutzer3|lokaler_Benutzer3 für ldap_user_list_mapping an.
    2. Geben Sie LDAP-Domänenname für ldap_realm_name an.
    Beispielsweise ist die folgende Umgebung definiert:
    	ldap_user_list_mapping = user1|root;user2|root;user3|root
    	ldap_realm_name = bluepages.ibm.com:389

    In diesem Fall werden LDAP user1, user2 und user3 alle dem lokalen Rootbenutzer zugeordnet.

  4. Sollen Mitglieder einer bestimmten LDAP-Gruppe einem lokalen Benutzer zugeordnet werden, definieren und speichern Sie folgende Variablen:
    1. Geben Sie LDAP-Gruppe|lokaler_Benutzer für ldap_group_name_mapping an.
    2. Geben Sie LDAP-Domänenname für ldap_realm_name an.
    Anmerkung: Wenn Sie beide Arten der Zuordnung verwenden, hat die Benutzerzuordnung Vorrang vor der Gruppenzuordnung.
    Als Beispiel für eine Gruppenzuordnung wird folgende Umgebung vorausgesetzt:
    	ldap_group_name_mapping = cn=bf_admin,ou=memberlist,ou=ibmgroups,o=ibm.com|root
    	ldap_realm_name = bluepages.ibm.com:389

    In diesem Fall werden Benutzer, die Mitglied der LDAP-Gruppe cn=bf_admin,ou=memberlist,ou=ibmgroups,o=ibm.com sind, dem lokalen Root zugeordnet.

Auf die Umgebung verweisen

Vorgehensweise

  1. Klicken Sie in der Build Forge-Konsole auf Verwaltung->Sicherheit->SSO.
  2. Klicken Sie auf den Namen des WebSphere-SSO-Abfangprozesses.
  3. Geben Sie für die Eigenschaft Umgebung für die Konfiguration die gerade definierte Umgebung an.
  4. Klicken Sie auf Speichern.
  5. Verschieben Sie die Konfiguration an den Anfang der Liste. Wählen Sie im Menü links neben dem Konfigurationsnamen An den Anfang verschieben aus.

Angepassten SSO-Abfangprozess ausführen

Sie können sich nun mit der neuen Konfiguration anmelden.

Informationen zu diesem Vorgang

Über den angepassten SSO-Abfangprozess kann der Benutzer nun mithilfe von WAS-Sicherheitsverfahren authentifiziert werden. Dies geschieht über eine AuthServlet-Anforderung, die als Benutzer an Build Forge übergeben wird.

Vorgehensweise

  1. Öffnen Sie den Web-Browser. Geben Sie die Adresse http://localhost ein.
  2. Anstelle des Build Forge-Anmeldeformulars wird nun eine Authentifizierungsseite angezeigt. Geben Sie Ihre Benutzerberechtigungsnachweise ein und drücken Sie die Eingabetaste.
  3. Nach der Authentifizierung sollte die Anmeldung automatisch erfolgen.
  4. Nach dem Abmelden wird anstelle des Anmeldeformulars die jsp-Standardseite angezeigt. Nachfolgende Anmeldungen werden automatisch ausgeführt, wenn der Benutzer noch authentifiziert ist.

Auf formulargestütztes SSO zurücksetzen

Sie können die Konfiguration zurücksetzen, sodass wieder das SSO-Anmeldeformular verwendet wird.

Informationen zu diesem Vorgang

Um die Systeme wieder so zu konfigurieren, dass die formulargestützte Anmeldung verwendet wird, müssen Sie unter WAS rbf-services deinstallieren und die ursprüngliche Datei rbf-services.war erneut installieren. Stellen Sie in Build Forge sicher, dass der Abfangprozess für formularbasiertes SSO aktiviert ist und als erstes Element in der Liste angezeigt wird. Inaktivieren Sie den angepassten WAS-Abfangprozess. WAS und Build Forge müssen erneut gestartet werden, damit die Änderungen wirksam werden.

Vorgehensweise

  1. Deinstallieren Sie rbf-services und installieren Sie die ursprüngliche Datei rbf-services.war.
  2. Stellen Sie in Build Forge sicher, dass der Form SSO-Abfangprozess aktiviert ist und als erstes Element in der Liste angezeigt wird (siehe den Abschnitt zu Build Forge-SSO-Sicherheitskonfigurationen weiter oben).
  3. Inaktivieren Sie den angepassten WAS-Abfangprozess.
  4. Starten Sie WAS erneut.
  5. Starten Sie Build Forge erneut.

Feedback