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.
Erforderliche Informationen
Portal for ArcGIS erfordert das Empfangen bestimmter Attributinformationen vom Identity-Provider, wenn ein Benutzer sich mit Enterprise-Anmeldenamen anmeldet. Das Attribut 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. Da Portal for ArcGIS einen Named User anhand des Wertes NameID eindeutig identifiziert, empfiehlt sich die Verwendung eines konstanten Wertes zur eindeutigen Identifizierung des Benutzers. 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 von NameID 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, benutzt Portal for ArcGIS die vom Identity-Provider erhaltenen Werte als vollständigen Namen und als E-Mail-Adresse für das Benutzerkonto. 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
- Konfigurieren Sie eine Authentifizierungsquelle im SimpleSAMLphp-IDP.
- 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, benutzt Portal for ArcGIS die vom Identity-Provider erhaltenen Werte als vollständigen Namen und als E-Mail-Adresse für das Benutzerkonto.
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.
- 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',
- Erstellen Sie eine Authentifizierungsquelle.
- 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', ), ),
- Registrieren Sie SimpleSAMLphp als Identity-Provider Ihrer Portal for ArcGIS-Organisation.
- Melden Sie sich als Administrator Ihrer Organisation bei der Portal-Website an, und klicken Sie auf Organisation > Einstellungen bearbeiten > Sicherheit.
- Wählen Sie im Abschnitt Enterprise-Anmeldenamen die Option Ein Identity-Provider aus, klicken Sie auf die Schaltfläche Enterprise-Anmeldenamen einrichten und geben Sie in dem daraufhin angezeigten Fenster den Namen Ihrer Organisation ein (zum Beispiel 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 (IDP) oder einen Verbund von IDPs, für Ihr Portal registrieren.
- 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.
- Stellen Sie mithilfe einer der im Folgenden drei 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 beinhaltet, 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 Verbundmetadatendatei besteht. Geben Sie die Werte manuell ein, und stellen Sie die angeforderten Parameter bereit: die Anmelde-URL und das Zertifikat, codiert im Base64-Format. Wenden Sie sich an Ihren SimpleSAMLphp-Administrator, um diese Informationen zu erhalten.
- 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.
- Profile beim Anmelden aktualisieren: Wählen Sie diese Option aus, wenn Portal for ArcGIS die Attribute givenName und email address der Benutzer aktualisieren soll, falls diese sich seit der letzten Anmeldung geändert haben.
- SAML-basierte Gruppenmitgliedschaft aktivieren: Wählen Sie diese Option aus, damit Mitglieder der Organisation bestimmte SAML-basierte Enterprise-Gruppen während der Gruppenerstellung mit Portal for ArcGIS-Gruppen verknüpfen können.
- 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.
Registrieren von Portal for ArcGIS als vertrauenswürdigen Service-Provider bei SimpleSAMLphp
- Konfigurieren Sie Portal for ArcGIS als vertrauenswürdigen Service-Provider bei SimpleSAMLphp, indem Sie die Datei <SimpleSAMLphp_HOME>/metatadata/saml20-sp-remote.php konfigurieren.
- 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.
- 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.
- Ö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 ( ), );
- Rufen Sie die XML-Metadatendatei Ihrer Portal for ArcGIS-Organisation ab.
- 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, );
- 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, );