Sie können Shibboleth 2.x 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 Shibboleth als Enterprise-Identity-Provider bei Portal for ArcGIS
- 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.
- Konfigurieren Sie die erweiterten Einstellungen je nach Bedarf:
- Assertion verschlüsseln: Aktivieren Sie diese Option, wenn Shibboleth zur Verschlüsselung von Antworten auf SAML-Assertionen konfiguriert wird.
- Signierte Anforderung aktivieren: Aktivieren Sie diese Option, wenn Portal for ArcGIS die an Shibboleth gesendete SAML-Authentifizierungsanforderung signieren soll.
- Abmelde-URL: Aktualisieren Sie diesen Wert, wenn in Shibboleth eine benutzerdefinierte Abmelde-URL konfiguriert ist.
- Entitäts-ID: Aktualisieren Sie diesen Wert, wenn für die eindeutige Identifizierung Ihres Portals bei Shibboleth 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.
- Stellen Sie mithilfe einer der zwei im Folgenden genannten Optionen Metadateninformationen für den Identity-Provider bereit:
- Datei – Standardmäßig wird die IDP-Metadatendatei bei Shibboleth unter SHIBBOLETH_HOME/metadata bereitgestellt. Wenn Zugriff auf die Metadatendatei besteht, wählen Sie die Option Datei für die Metadaten des Enterprise-Identity-Providers aus, und navigieren Sie zur Datei SHIBBOLETH_HOME/metadata/idp-metadata.xml.
- Parameter – Wählen Sie diese Option, wenn kein Zugriff auf 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 Shibboleth-Administrator, um diese Informationen zu erhalten.
- 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 Shibboleth
- Konfigurieren Sie Portal for ArcGIS als vertrauende Seite in Shibboleth.
- Rufen Sie die Metadatendatei Ihres Portals auf, und speichern Sie sie als XML-Datei.
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.
- Fügen Sie Portal for ArcGIS als vertrauenswürdigen Service-Provider in Shibboleth hinzu, indem Sie ein neues RelyingParty-Element in der Datei SHIBBOLETH_HOME/conf/relying-party.xml definieren.
Fügen Sie metadata:MetadataProvider das folgende Snippet hinzu. Geben Sie den Pfad zu der XML-Metadatendatei Ihrer Organisation an (in Schritt 1.a gespeichert).
Hinweis:
(Ersetzen Sie webadaptor.domain.com.arcgis durch die entityid aus den SAML-Metadaten Ihres Portals.)
<!-- Load metadata --> <MetadataProvider xsi:type="FilesystemMetadataProvider" xmlns="urn:mace:shibboleth:2.0:metadata" id="webadaptor.domain.com.arcgis" metadataFile="<PATH_TO_THE_SAVED_METADATA>/citygismetadata.xml"> </MetadataProvider>
- Rufen Sie die Metadatendatei Ihres Portals auf, und speichern Sie sie als XML-Datei.
- Konfigurieren Sie die Attributauswertung.
Portal for ArcGIS erwartet die Weitergabe einer SAML-Namenskennung vom IDP für den Benutzer, der sich bei Portal for ArcGIS anmeldet. Um diese Daten verfügbar zu machen, müssen Sie die Shibboleth-Attributauflösung konfigurieren, indem Sie die Datei SHIBBOLETH_HOME/conf/attribute-resolver.xml bearbeiten.
Bei der folgenden Attributdefinition wird der Prinzipalname des Benutzers, der durch den Shibboleth-IDP in der Namenskennung authentifiziert wurde, an Portal for ArcGIS gesendet.
<!-- Name identifier for passing principal name to Portal for ArcGIS --> <resolver:AttributeDefinition id="principal" xsi:type="PrincipalName" xmlns="urn:mace:shibboleth:2.0:resolver:ad"> <resolver:AttributeEncoder xsi:type="SAML2StringNameID" xmlns="urn:mace:shibboleth:2.0:attribute:encoder" nameFormat="urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified" /> </resolver:AttributeDefinition>
- Konfigurieren Sie den Attributfilter.
Konfigurieren Sie den Shibboleth-Attributfilter, um den als NameID codierten Benutzerprinzipalnamen nach der Benutzerauthentifizierung für Portal for ArcGIS freizugeben. Der Wert des NameID-Parameters wird als Benutzername in der Organisation verwendet.
Um diesen Filter hinzuzufügen, öffnen Sie die Datei SHIBBOLETH_HOME/conf/attribute-filter.xml, und fügen Sie die folgende Attributfilterrichtlinie im AttributeFilterPolicyGroup-XML-Element hinzu.
Hinweis:
(Ersetzen Sie webadaptor.domain.com.arcgis durch die entityid aus den SAML-Metadaten Ihres Portals.)
<!-- release the NameID to webadaptor.domain.com.arcgis --> <afp:AttributeFilterPolicy> <afp:PolicyRequirementRule xsi:type="basic:AttributeRequesterString" value="webadaptor.domain.com.arcgis" /> <afp:AttributeRule attributeID="principal"> <afp:PermitValueRule xsi:type="basic:ANY" /> </afp:AttributeRule> </afp:AttributeFilterPolicy>
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 Authentifizierungsquelle.
Konfigurieren Sie die vom Shibboleth-IDP verwendete Authentifizierungsquelle. Im folgenden Beispiel wird die Konfiguration des Apache Directory Server als Benutzerspeicher in Shibboleth in der Datei SHIBBOLETH_HOME/conf/login.config gezeigt.
ShibUserPassAuth { edu.vt.middleware.ldap.jaas.LdapLoginModule required ldapUrl="ldap://host:port" baseDn="ou=users,ou=system" ssl="true" serviceUser="uid=admin,ou=system" serviceCredential="secret" subtreeSearch="true" userField="uid" userFilter="uid={0}"; };
- Konfigurieren Sie den Anmelde-Handler.
Aktivieren Sie den UsernamePassword-Anmelde-Handler in Shibboleth. Mit dem Anmelde-Handler können sich Benutzer mittels eines Benutzernamens und Kennworts über die im vorherigen Schritt konfigurierte Authentifizierungsquelle anmelden.
Um den Anmelde-Handler zu konfigurieren, öffnen Sie die Datei SHIBBOLETH_HOME/conf/handler.xml, und heben Sie die Auskommentierung des Benutzernamen- und Kennwort-Anmelde-Handlers auf. (Ersetzen Sie <SHIBBOLETH_HOME> durch den Shibboleth-Installationspfad.)
<!-- Username/password login handler --> <ph:LoginHandler xsi:type="ph:UsernamePassword" jaasConfigurationLocation="file://<SHIBBOLETH_HOME>/conf/login.config"> <ph:AuthenticationMethod>urn:oasis:names:tc:SAML:2.0:ac:classes:PasswordProtectedTransport</ph:AuthenticationMethod> </ph:LoginHandler>
- Deaktivieren Sie die Assertionsverschlüsselung im Shibboleth-IDP. Öffnen Sie die Datei SHIBBOLETH_HOME/conf/relying-party.xml, und suchen Sie im Element den Abschnitt saml: SAML2SSOProfile. Ändern Sie in diesem Abschnitt den Wert von encryptAssertions in never.
Hinweis:
Überspringen Sie diesen Schritt, wenn Sie bei der Registrierung von Shibboleth als Enterprise-Identity-Provider die erweiterte Einstellung Assertionen verschlüsseln gewählt haben.
<rp:DefaultRelyingParty provider="https://grid3.esri.com/idp/shibboleth" defaultSigningCredentialRef="IdPCredential"> ... <rp:ProfileConfiguration xsi:type="saml:SAML2SSOProfile" includeAttributeStatement="true" assertionLifetime="PT5M" assertionProxyCount="0" signResponses="never" signAssertions="always" encryptAssertions="never" encryptNameIds="never" includeConditionsNotBefore="true"/> ... </rp:DefaultRelyingParty>
- Starten Sie den Webserver, auf dem die Shibboleth-Webanwendung gehostet wird, neu.