Sie können Shibboleth 3.2x 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 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. Mit City of Redlands-Konto).
Hinweis:
Sie können nur einen Enterprise-Identity-Provider 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 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.
- 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.
- 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.
Hinweis:
Abmeldung an Identity-Provider propagieren und Abmelde-URL werden derzeit nicht unterstützt.
- 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://webadaptorhost.domain.com/webadaptorname/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.
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.
- 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.
- Konfigurieren Sie Portal for ArcGIS als vertrauenswürdigen Service-Provider in Shibboleth, indem Sie ein neues MetadataProvider-Element in der Datei SHIBBOLETH_HOME/conf/metadata-providers.xml definieren.
Fügen Sie das folgende Snippet zum MetadataProviderStammelement hinzu. Geben Sie den Pfad zu der XML-Metadatendatei Ihrer Organisation an (in Schritt 1.a oben gespeichert).
<MetadataProvider id="EsriSP" xsi:type="FilesystemMetadataProvider" xmlns="urn:mace:shibboleth:2.0:metadata" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:mace:shibboleth:2.0:metadata http://shibboleth.net/schema/idp/shibboleth-metadata.xsd" failFastInitialization="true" metadataFile=" <PATH_TO_THE_SAVED_METADATA>/esri-sp-metadata.xml" />
- Rufen Sie die Metadatendatei Ihres Portals auf, und speichern Sie sie als XML-Datei.
- Konfigurieren Sie die Benutzerauthentifizierung. Im folgenden Beispiel wird ein LDAP-Verzeichnisserver als Benutzerspeicher konfiguriert, indem die erforderlichen Eigenschaften in der Datei SHIBBOLETH_HOME/conf/ldap.properties: aktualisiert werden.
idp.authn.LDAP.authenticator = bindSearchAuthenticator
idp.authn.LDAP.ldapURL = ldaps://myldap.example.org:port
idp.authn.LDAP.baseDN = ou=People,dc=example,dc=org
idp.authn.LDAP.userFilter= (uid={user})
idp.authn.LDAP.bindDN = cn=readonlyuser,dc=example,dc=org
idp.authn.LDAP.bindDNCredential = userpassword
- Konfigurieren Sie die Benutzerattribute, die von Shibboleth zurückgegeben werden sollen.
- Bearbeiten Sie SHIBBOLETH_HOME/conf/attribute-resolver.xml. Kommentieren oder löschen Sie alle vorhandenen Beispielattributdefinitionen und Datenkonnektoren.
- Kopieren Sie die Definitionen für mail und givenName aus der Datei SHIBBOLETH_HOME/conf/attribute-resolver-full.xml in die Datei SHIBBOLETH_HOME/conf/attribute-resolver.xml. Fügen Sie anschließend den folgenden Eintrag für das Attribut hinzu, das als Namens-ID verwendet werden soll:
<resolver:AttributeDefinition xsi:type="ad:Simple" id="<NameID attribute>" sourceAttributeID ="<NameID attribute>"> <resolver:Dependency ref="myLDAP" /> <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>
- Kopieren Sie den Abschnitt "LDAP Data-Connector" aus SHIBBOLETH_HOME/conf/attribute-resolver-ldap.xml nach SHIBBOLETH_HOME/conf/attribute-resolver.xml.
- Konfigurieren Sie die Attribute, die im Service-Provider veröffentlicht werden sollen. Bearbeiten Sie die Datei SHIBBOLETH_HOME/conf/attribute-filter.xml, und fügen Sie Folgendes hinzu:
Hinweis:
Ersetzen Sie mygis.maps.arcgis.com durch die Entitäts-ID Ihrer Organisation.
<AttributeFilterPolicy id="ArcGIS"> <PolicyRequirementRule xsi:type="Requester" value="mygis.maps.arcgis.com" /> <AttributeRule attributeID="<NameID Attribute>"> <PermitValueRule xsi:type="ANY" /> </AttributeRule> <AttributeRule attributeID="givenName"> <PermitValueRule xsi:type="ANY" /> </AttributeRule> <AttributeRule attributeID="mail"> <PermitValueRule xsi:type="ANY" /> </AttributeRule> </AttributeFilterPolicy>
- Bearbeiten Sie die Datei SHIBBOLETH_HOME/conf/relying-party.xml.
- Kopieren Sie den nachstehenden XML-Code und fügen Sie ihn in die shibboleth.RelyingPartyOverrides-Elemente ein, um die Standard-Konfiguration für den Shibboleth-Identity-Provider zu überschreiben:
<util:list id="shibboleth.RelyingPartyOverrides"> <bean parent="RelyingPartyByName" c:relyingPartyIds="mygis.maps.arcgis.com"> <property name="profileConfigurations"> <list> <bean parent="SAML2.SSO" p:nameIDFormatPrecedence="urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified" /> </list> </property> </bean> </util:list>
Hinweis:
Ersetzen Sie mygis.maps.arcgis.com durch die Entitäts-ID Ihrer Organisation.
Der Parameter nameIDFormatPrecedence weist den Identity-Provider an, das SAML-Namens-ID-Attribut im von ArcGIS Online und Portal for ArcGIS geforderten Format unspecified zu senden.
- Deaktivieren Sie die Assertionsverschlüsselung im Shibboleth-Identity-Provider, indem Sie den Parameter encryptAssertions auf false einstellen.
<bean parent="RelyingPartyByName" c:relyingPartyIds="mygis.maps.arcgis.com"> <property name="profileConfigurations"> <list> <bean parent="SAML2.SSO" p:nameIDFormatPrecedence="urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified" p:encryptAssertions="false" /> </list> </property> </bean>
- Kopieren Sie den nachstehenden XML-Code und fügen Sie ihn in die shibboleth.RelyingPartyOverrides-Elemente ein, um die Standard-Konfiguration für den Shibboleth-Identity-Provider zu überschreiben:
- Bearbeiten Sie die Datei SHIBBOLETH_HOME/conf/saml-nameid.xml, und ersetzen Sie den Abschnitt
<!-- <bean parent="shibboleth.SAML2AttributeSourcedGenerator" p:format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress" p:attributeSourceIds="#{ {'mail'} }" /> -->
durch den folgenden:
<bean parent="shibboleth.SAML2AttributeSourcedGenerator" p:format="urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified" p:attributeSourceIds="#{ {'your-name-id-attribute'} }" />
- Führen Sie einen Neustart des Shibboleth-Daemons (Linux) bzw. -Services (Windows) aus.