Sie können SimpleSAMLphp 1.10 und höhere Versionen als Identity-Provider 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 vom 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
- 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 which should be used to create the users DN given the username. * %username% in this pattern will be replaced with the users 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 which 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 vom 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 empfangenen 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.
- 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 den SimpleSAMLphp-Identity-Provider für Ihre Portal for ArcGIS-Organisation.
- Melden Sie sich als Administrator Ihrer Organisation bei der Portal-Website an, und klicken Sie auf Eigene Organisation > Einstellungen bearbeiten > Sicherheit.
- 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. Verwenden des City of Redlands-Kontos).
- 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 Administrator-Konto 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 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.
- 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.
- Abmelde-URL: Aktualisieren Sie diesen Wert, wenn in SimpleSAMLphp eine benutzerdefinierte Abmelde-URL konfiguriert ist.
- 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.
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.
- Sie können auch Metadaten zu den Enterprise-Gruppen
in Ihrem Identitätsspeicher für das Portal bereitstellen:
- Melden Sie sich als Administrator Ihrer Organisation beim ArcGIS-Portalverzeichnis an. Die URL hat das Format https://webadaptor.domain.com/arcgis/portaladmin.
- Klicken Sie auf Security > Config > Update Identity Store.
- Fügen Sie das Gruppenkonfigurations-JSON in das Textfeld Group store configuration (in JSON format) ein.
Wenn Sie Windows Active Directory als Identitätsspeicher verwenden, kopieren Sie den folgenden Text, und ändern Sie ihn so, dass er Ihre Site-spezifischen Informationen enthält:
{ "type": "WINDOWS", "properties": { "isPasswordEncrypted": "false", "userPassword": "secret", "user": "mydomain\\winaccount" } }
In den meisten Fällen müssen Sie lediglich die Werte für die Parameter „user“ und "userPassword" ändern. Obwohl das Kennwort in Klartext eingegeben wird, wird es verschlüsselt, wenn es im Konfigurationsverzeichnis des Portals gespeichert oder angezeigt wird. Das für den Benutzerparameter verwendete Konto benötigt lediglich Berechtigungen zum Suchen der Namen von Windows-Gruppen im Netzwerk. Verwenden Sie nach Möglichkeit ein Konto, dessen Kennwort nicht abläuft.
Wenn Sie LDAP als Identitätsspeicher verwenden, kopieren Sie den folgenden Text, und ändern Sie ihn so, dass er Ihre Site-spezifischen Informationen enthält:
{ "type": "LDAP", "properties": { "userPassword": "secret", "isPasswordEncrypted": "false", "user": "uid=admin\,ou=system", "ldapURLForUsers": "ldap://bar2:10389/ou=users\,ou=ags\,dc=example\,dc=com", "ldapURLForRoles": "ldap://bar2:10389/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 "ldapURLForUsers" ändern. Die URL für Ihr LDAP erhalten Sie von Ihrem LDAP-Administrator. 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 keine Unterscheidung zwischen Groß- und Kleinschreibung konfiguriert wurde, legen Sie für den Parameter "caseSensitive" die Option "false" fest.
- 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
- Konfigurieren Sie Portal for ArcGIS als vertrauenswürdigen Service-Provider bei SimpleSAML, 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 Schritt oben 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 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['webadaptor.domain.com.arcgis'] = array ( 'entityid' => ' webadaptor.domain.com.arcgis', 'name' => array ( 'en' => 'portal ', ), 'description' => array ( 'en' => 'portal ', ), 'OrganizationName' => array ( 'en' => 'portal ', ), 'OrganizationDisplayName' => array ( 'en' => 'portal ', ), 'url' => array ( 'en' => 'https://webadaptor.domain.com/arcgis', ), 'OrganizationURL' => array ( 'en' => 'https://webadaptor.domain.com/arcgis', ), 'contacts' => array ( ), 'metadata-set' => 'saml20-sp-remote', 'AssertionConsumerService' => array ( 0 => array ( 'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST', 'Location' => 'https://webadaptor.domain.com/arcgis/sharing/rest/oauth2/saml/signin', 'index' => 1, ), 1 => array ( 'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect', 'Location' => 'https://webadaptor.domain.com/arcgis/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 webadaptor.domain.com.arcgis durch die URL Ihres Portals.)
'NameIDFormat' => 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent', 'simplesaml.nameidattribute' => 'uid', /* The following indicates whether to send all the attributes received from the authentication source to the service provider or not. 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, );