Skip To Content

Konfigurieren von SimpleSAMLphp

Sie können SimpleSAMLphp 1.10 und höhere Versionen als Identity-Provider (IDP) für Enterprise-Anmeldenamen in Portal for ArcGIS konfigurieren. Die Konfiguration umfasst zwei Hauptschritte: die Registrierung des Enterprise-Identity-Providers bei Portal for ArcGIS und die Registrierung von Portal for ArcGIS beim Enterprise-Identity-Provider.

Sie können auch Metadaten zu den Enterprise-Gruppen in Ihrem Identitätsspeicher für das Portal bereitstellen. Dies ermöglicht Ihnen das Erstellen von Gruppen im Portal, die die bestehenden Enterprise-Gruppen Ihres Identitätsspeichers nutzen. Wenn Mitglieder sich beim Portal anmelden, wird der Zugriff auf Inhalte und Daten durch die Mitgliedschaftsregeln gesteuert, die in der Enterprise-Gruppe definiert sind. Wenn Sie die erforderlichen Enterprise-Gruppen-Metadaten nicht bereitstellen, können Sie trotzdem Gruppen erstellen. Mitgliedschaftsregeln werden jedoch von Portal for ArcGIS und nicht vom Identitätsspeicher gesteuert.

Erforderliche Informationen

Portal for ArcGIS erfordert das Empfangen bestimmter Attributinformationen vom Identity-Provider, wenn ein Benutzer sich mit Enterprise-Anmeldenamen anmeldet. NameID ist ein verbindliches Attribut, das von Ihrem Identity-Provider in der SAML-Antwort gesendet werden muss, damit der Verbund mit Portal for ArcGIS hergestellt werden kann. Wenn sich ein Benutzer des IDP anmeldet, erstellt Portal for ArcGIS im Benutzerspeicher einen neuen Benutzer mit dem Benutzernamen NameID. Die zulässigen Zeichen für den vom NameID-Attribut gesendeten Wert sind alphanumerisch, _ (Unterstrich), . (Punkt) und @ (at-Zeichen). Für alle anderen Zeichen werden Escapezeichen verwendet, damit der von Portal for ArcGIS erstellte Benutzername Unterstriche enthalten kann.

Portal for ArcGIS unterstützt die Übernahme der Attribute givenName und email address des Enterprise-Anmeldenamens aus dem Enterprise-Identity-Provider. Wenn sich ein Benutzer mit einem Enterprise-Anmeldenamen anmeldet und Portal for ArcGIS Attribute mit dem Namen givenname und email oder mail (in beliebiger Groß-/Kleinschreibung) empfängt, gibt Portal for ArcGIS die vom Identity-Provider erhaltenen Namen als vollständigen Namen und als E-Mail-Adresse des Benutzerkontos an. Es wird empfohlen, dass Sie die email address des Enterprise-Identity-Providers übergeben, sodass der Benutzer Benachrichtigungen empfangen kann.

Registrieren von SimpleSAMLphp als Enterprise-Identity-Provider bei Portal for ArcGIS

  1. Konfigurieren Sie eine Authentifizierungsquelle im SimpleSAMLphp-IDP.
    1. Erstellen Sie eine Authentifizierungsquelle.

      SimpleSAMLphp unterstützt die Authentifizierung von Benutzern aus verschiedenen Authentifizierungsquellen, z. B. LDAP-Server, Benutzer in einem SQL-Server, einer Active-Directory-Domäne usw. Das folgende Beispiel zeigt die Konfiguration eines Apache Directory Server als Authentifizierungsquelle im SimpleSAMLphp-IDP.

      Authentifizierungsquellen können in der Datei <SimpleSAML_HOME>/config/authsources.php konfiguriert werden. Um den LDAP-Server zu konfigurieren, öffnen Sie die Datei config/authsources.php, und fügen Sie eine LDAP-basierte Authentifizierungsquelle im folgenden Format hinzu.

      'example-ldapApacheDS' => array(
      		'ldap:LDAP',
      		/* The hostname of the LDAP server. */
      		'hostname' => 'host:port',
      		/* Whether SSL/TLS should be used when contacting the LDAP server. */
      		'enable_tls' => TRUE,
      		/*
      		 * Which attributes should be retrieved from the LDAP server.
      		 * This can be an array of attribute names, or NULL, in which case
      		 * all attributes are fetched.
      		 */
      		'attributes' => NULL,
      		/*
      		 * The pattern that should be used to create the users DN given the username.
      		 * %username% in this pattern will be replaced with the user's username.
      		 *
      		 * This option is not used if the search.enable option is set to TRUE.
      		 */
      		'dnpattern' => 'uid=%username%,ou=users,ou=system',
      		/*
      		 * As an alternative to specifying a pattern for the users DN, it is possible to
      		 * search for the username in a set of attributes. This is enabled by this option.
      		 */
      		'search.enable' => FALSE,
      		/*
      		 * The DN that will be used as a base for the search.
      		 * This can be a single string, in which case only that DN is searched, or an
      		 * array of strings, in which case they will be searched in the order given.
      		 */
      		'search.base' => 'ou=users,ou=system',
      		/*
      		 * The attribute(s) the username should match against.
      		 *
      		 * This is an array with one or more attribute names. Any of the attributes in
      		 * the array may match the value the username.
      		 */
      		'search.attributes' => array('uid', 'mail'),
      		/*
      		 * The username & password the simpleSAMLphp should bind to before searching. If
      		 * this is left as NULL, no bind will be performed before searching.
      		 */
      		'search.username' => 'uid=admin,ou=system',
      		'search.password' => 'password',
      	),

      Portal for ArcGIS unterstützt die Übernahme der Attribute givenName und email address des Enterprise-Anmeldenamens aus dem Enterprise-Identity-Provider. Wenn sich ein Benutzer mit einem Enterprise-Anmeldenamen anmeldet und Portal for ArcGIS Attribute mit dem Namen givenname und email oder mail (in beliebiger Groß-/Kleinschreibung) empfängt, gibt Portal for ArcGIS die vom Identity-Provider erhaltenen Namen als vollständigen Namen und als E-Mail-Adresse des Benutzerkontos an.

      Es empfiehlt sich, die E-Mail-Adresse vom Enterprise-Identity-Provider an Portal for ArcGIS weiterzugeben. Dies ist hilfreich, falls der Benutzer später zum Administrator wird. Wenn eine E-Mail-Adresse im Konto vorhanden ist, kann der Benutzer Benachrichtigungen zu administrativen Aktivitäten empfangen und Einladungen an andere Benutzer senden, um ihnen den Beitritt zur Organisation zu ermöglichen.

    2. Konfigurieren Sie die oben erstellte Authentifizierungsquelle als Authentifizierungsmodul im SimpleSAMLphp-IDP. Öffnen Sie die Datei metadata/ saml20-idp-hosted.php, und fügen Sie die Authentifizierungsquelle hinzu, die verwendet werden soll.
      /*
      	 * Authentication source to use. Must be one that is configured in	 * 'config/authsources.php'.	 */
      	'auth' => 'example-ldapApacheDS',
  2. Konfigurieren Sie das vom SimpleSAMLphp-IDP unterstützte Format der Namenskennung. Öffnen Sie die Datei < SimpleSAML_HOME >/metadata/saml20-idp-hosted.php, und fügen Sie das folgende Snippet hinzu. Im folgenden Beispiel wird uid als NameID vom SimpleSAMLphp-IDP an Portal for ArcGIS weitergegeben, nachdem der Benutzer authentifiziert wurde.
    'NameIDFormat' => 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent',		'authproc' => array(
    			  3 => array(
    			  'class' => 'saml:AttributeNameID',			  'attribute' => 'uid',	              'Format' => 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent',				  ),
    			),
  3. Registrieren Sie den SimpleSAMLphp als Identity-Provider für Ihre Portal for ArcGIS-Organisation.
    1. Melden Sie sich als Administrator Ihrer Organisation bei der Portal-Website an, und klicken Sie auf Eigene Organisation > Einstellungen bearbeiten > Sicherheit.
    2. Klicken Sie im Bereich Enterprise-Anmeldenamen auf die Schaltfläche Identity-Provider festlegen, und geben Sie in dem daraufhin angezeigten Fenster den Namen Ihrer Organisation ein (z. B. City of Redlands). Wenn Benutzer auf die Portal-Website zugreifen, wird dieser Text als Teil der SAML-Anmeldeoption angezeigt (z. B. Mit City of Redlands-Konto).
      Hinweis:

      Sie können nur einen Enterprise-Identity-Provider für Ihr Portal registrieren.

    3. Legen Sie fest, ob die Benutzer der Organisation Automatisch oder Nach dem Hinzufügen der Konten zum Portal beitreten können. Durch Auswahl der ersten Option können Benutzer sich mit ihrem Enterprise-Anmeldenamen bei der Organisation anmelden, ohne dass ein Administrator eingreifen muss. Deren Konto wird bei der ersten Anmeldung automatisch bei der Organisation registriert. Die zweite Option erfordert, dass der Administrator die erforderlichen Konten mit einem Befehlszeilendienstprogramm oder Beispiel-Python-Skript beim Portal registrieren. Nachdem die Konten registriert wurden, können Benutzer sich bei der Organisation anmelden.
      Tipp:

      Es wird empfohlen, mindestens ein Enterprise-Konto als Administrator des Portals festzulegen und das initiale Administratorkonto herabzustufen oder zu löschen. Es wird empfohlen, die Schaltfläche Konto erstellen und die Anmeldeseite (signup.html) auf der Portal-Website zu deaktivieren, damit Benutzer keine eigenen Konten erstellen können. Vollständige Anweisungen finden Sie unter Konfigurieren eines SAML-kompatiblen Identity Providers mit dem Portal.

    4. Stellen Sie mithilfe einer der drei im Folgenden genannten Optionen Metadateninformationen für den Identity-Provider bereit:

      URL: Wählen Sie diese Option, wenn Zugriff auf die URL der SimpleSAMLphp-Verbundmetadaten besteht. Diese lautet in der Regel https://<simpleSAML-server>/<saml-app-name>/saml2/idp/metadata.php.

      Hinweis:

      Wenn Ihr Enterprise-Identity-Provider ein selbstsigniertes Zertifikat einbezieht, kann ein Fehler auftreten, wenn Sie versuchen, die HTTPS-URL der Metadaten anzugeben. Dieser Fehler tritt auf, da Portal for ArcGIS das selbstsignierte Zertifikat des Identity Providers nicht überprüfen kann. Verwenden Sie alternativ HTTP in der URL, eine der Optionen unten, oder konfigurieren Sie Ihren Identity-Provider mit einem vertrauenswürdigen Zertifikat.

      Datei: Wählen Sie diese Option, wenn kein Zugriff auf die URL besteht. Speichern Sie die Metadaten aus der URL als XML-Datei, und laden Sie die Datei über die Option Datei auf Portal for ArcGIS hoch.

      Parameter: Wählen Sie diese Option, wenn kein Zugriff auf die URL oder die Datei besteht. Geben Sie die Werte manuell ein, und stellen Sie die erforderlichen Parameter bereit: Anmelde-URL und Zertifikat. Wenden Sie sich an Ihren SimpleSAMLphp-Administrator, um diese Informationen zu erhalten.

  4. Konfigurieren Sie die erweiterten Einstellungen je nach Bedarf:
    • Assertion verschlüsseln: Aktivieren Sie diese Option, wenn SimpleSAMLphp zur Verschlüsselung von Antworten auf SAML-Assertionen konfiguriert wird.
    • Signierte Anforderung aktivieren: Aktivieren Sie diese Option, wenn Portal for ArcGIS die an SimpleSAMLphp gesendete SAML-Authentifizierungsanforderung signieren soll.
    • Entitäts-ID: Aktualisieren Sie diesen Wert, wenn für die eindeutige Identifizierung Ihres Portals bei SimpleSAMLphp eine neue Entitäts-ID verwendet werden soll.
    • Abmeldung an Identity-Provider propagieren: Wählen Sie diese Option, damit Portal for ArcGIS eine Abmelde-URL verwendet, um den Benutzer von SimpleSAMLphp abzumelden. Geben Sie die URL ein, die in der Einstellung Abmelde-URL verwendet werden soll. Wenn der Identity-Provider eine Signierung der Abmelde-URL erfordert, muss die Option Signierte Anforderung aktivieren aktiviert sein.
    • Abmelde-URL: Die URL des Identity Providers, die zum Abmelden des aktuell angemeldeten Benutzers verwendet werden soll. Die Abmelde-URL lautet in der Regel https://idphost.domain.com/simplesaml/saml2/idp/SingleLogoutService.php. Diese URL ist im Element SingleLogoutService in der IDP-Metadatendatei definiert. Die URL der Metadatendatei lautet üblicherweise http://[simpleSAML-server]/simplesaml/saml2/idp/metadata.php.

    Die Einstellungen Assertion verschlüsseln und Signierte Anforderung aktivieren verwenden das Zertifikat samlcert im Keystore des Portals. Um ein neues Zertifikat zu verwenden, löschen Sie das Zertifikat samlcert, erstellen Sie ein neues Zertifikat mit demselben Alias (samlcert), führen Sie die Schritte unter Importieren eines Zertifikats in das Portal aus, und starten Sie das Portal neu.

  5. Sie können auch Metadaten zu den Enterprise-Gruppen in Ihrem Identitätsspeicher für das Portal bereitstellen:
    1. Melden Sie sich als Administrator Ihrer Organisation beim ArcGIS-Portalverzeichnis an. Die URL hat das Format https://webadaptorhost.domain.com/webadaptorname/portaladmin.
    2. Klicken Sie auf Security > Config > Update Identity Store.
    3. Fügen Sie das Gruppenkonfigurations-JSON in das Textfeld Group store configuration (in JSON format) ein.
      • Kopieren Sie den folgenden Text, und ändern Sie ihn so, dass er die für Ihre Site spezifischen Informationen enthält:

        {
          "type": "LDAP",  "properties": {
            "userPassword": "secret",    "isPasswordEncrypted": "false",    "user": "uid=admin,ou=system",    "ldapURLForUsers": "ldaps://bar2:10636/ou=users,ou=ags,dc=example,dc=com",    "ldapURLForRoles": "ldaps://bar2:10636/dc=example,dc=com",    "usernameAttribute": "cn",    "caseSensitive": "false",    "userSearchAttribute": "cn",    "memberAttributeInRoles": "member",    "rolenameAttribute":"cn"
          }
        }

        In den meisten Fällen müssen Sie lediglich die Werte für die Parameter user, userPassword, ldapURLForUsers und ldapURLForRoles ändern. Die URL für Ihr LDAP erhalten Sie von Ihrem LDAP-Administrator.

        Im vorstehenden Beispiel bezieht sich die LDAP-URL auf Benutzer in einer bestimmten Organisationseinheit (ou=users). Wenn Benutzer in mehreren Organisationseinheiten vorhanden sind, kann die LDAP-URL auf eine Organisationseinheit einer höheren Ebene oder bei Bedarf sogar auf die Stammebene verweisen. In diesem Fall sieht die URL stattdessen wie folgt aus:

        "ldapURLForUsers": "ldaps://bar2:10636/dc=example,dc=com",

        Das für den Benutzerparameter verwendete Konto benötigt lediglich Berechtigungen zum Suchen der Namen von Gruppen in Ihrer Organisation. Obwohl das Kennwort in Klartext eingegeben wird, wird es verschlüsselt, wenn es im Konfigurationsverzeichnis des Portals gespeichert oder angezeigt wird.

        Wenn für LDAP die Unterscheidung zwischen Groß- und Kleinschreibung konfiguriert wurde, legen Sie den Parameter caseSensitive auf false fest.

    4. Wenn Sie das JSON für die Konfiguration des Benutzerspeichers eingegeben haben, klicken Sie auf Update Configuration, um die Änderungen zu speichern und das Portal neu zu starten.

Registrieren von Portal for ArcGIS als vertrauenswürdigen Service-Provider bei SimpleSAMLphp

  1. Konfigurieren Sie Portal for ArcGIS als vertrauenswürdigen Service-Provider bei SimpleSAMLphp, indem Sie die Datei <SimpleSAMLphp_HOME>/metatadata/saml20-sp-remote.php konfigurieren.
    1. Rufen Sie die XML-Metadatendatei Ihrer Portal for ArcGIS-Organisation ab.

      Um die Metadatendatei abzurufen, melden Sie sich als Administrator bei der Organisation an, und öffnen Sie die Organisationsseite. Klicken Sie auf die Schaltfläche Einstellungen bearbeiten und die Registerkarte Sicherheit und im Abschnitt Enterprise-Anmeldenamen auf die Schaltfläche Service-Provider aufrufen.

    2. Konvertieren Sie die XML-Datei, die Sie im vorherigen Unterschritt erhalten haben, in das PHP-Format.

      Bei SimpleSAMLphp müssen die Metadateninformationen des Service-Providers im PHP-Format vorliegen. SimpleSAMLphp enthält ein integriertes Metadaten-Konvertierungsprogramm von XML in PHP, das standardmäßig unter https://<simpleSAML-server>/<saml-app-name>/admin/metadata-converter.php in der SimpleSAMLphp-Installation verfügbar ist. Konvertieren Sie die XML-Struktur damit in das PHP-Format.

    3. Öffnen Sie die Datei metatadata/saml20-sp-remote.php, und fügen Sie die Konfiguration des Service-Providers in dem in Schritt 1.b oben erstellten PHP-Format hinzu.

      Nachfolgend wird ein Beispiel der hinzugefügten Konfiguration des Service-Providers in der Metadatendatei angezeigt.

      /* The following is a Portal for ArcGIS organization service provider */
      $metadata['webadaptorhost.domain.com.webadaptorname'] = array (  'entityid' => ' webadaptorhost.domain.com.webadaptorname',  'name' =>
        array (    'en' => 'portal ',  ),  'description' =>
        array (    'en' => 'portal ',  ),  'OrganizationName' =>
        array (    'en' => 'portal ',  ),  'OrganizationDisplayName' =>
        array (    'en' => 'portal ',  ),  'url' =>
        array (    'en' => 'https://webadaptorhost.domain.com/webadaptorname',  ),  'OrganizationURL' =>
        array (    'en' => 'https://webadaptorhost.domain.com/webadaptorname',  ),  'contacts' =>
        array (  ),  'metadata-set' => 'saml20-sp-remote',  'AssertionConsumerService' =>
        array (    0 =>
          array (      'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',      'Location' => 'https://webadaptorhost.domain.com/webadaptorname/sharing/rest/oauth2/saml/signin',      'index' => 1,    ),    1 =>
          array (      'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',      'Location' => 'https://webadaptorhost.domain.com/webadaptorname/sharing/rest/oauth2/saml/signin',      'index' => 2,    ),  ),  'SingleLogoutService' =>
        array (  ),
      );
  2. Konfigurieren Sie das Attribut, das nach der Authentifizierung des Benutzers als NameID vom SimpleSAMLphp-IDP an Portal for ArcGIS weitergegeben wird. Fügen Sie dazu das Attribut am Ende der Konfiguration des Service-Providers ein, die Sie im vorherigen Schritt hinzugefügt haben.

    Im folgenden Beispiel wird uid als NameID vom SimpleSAMLphp-IDP an Portal for ArcGIS weitergegeben, nachdem der Benutzer authentifiziert wurde. (Ersetzen Sie webadaptorhost.domain.com.webadaptorname durch die URL Ihres Portals.)

    'NameIDFormat'               => 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent', 'simplesaml.nameidattribute' => 'uid',
    /* The following indicates whether or not to send all the attributes received from the authentication source to the service provider.  If true, it will send, otherwise it will not send all the attributes*/
      'simplesaml.attributes'      => true,
    );
  3. Wenn Sie bei der Registrierung von SimpleSAMLphp als Enterprise-Identity-Provider die erweiterte Einstellung Assertion verschlüsseln gewählt haben, fügen Sie das unten stehende Attribut an das Ende der Konfiguration des Service-Providers an, die Sie in Schritt 1 hinzugefügt haben.
    /*
      Whether assertions sent to this SP should be encrypted. The default value is FALSE.  */
      'assertion.encryption' => true,
    );