Sie können Shibboleth 3.2x und 3.3x 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 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 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 beim Portal anmelden, ohne dass ein Administrator eingreifen muss. Deren Konto wird bei der ersten Anmeldung automatisch beim Portal 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 beim Portal 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 zwei 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. Portal for ArcGIS überprüft die Signatur in Antworten auf SAML-Assertionen von Shibboleth, indem das erste Signing-Zertifikat in der IDP-Metadatendatei verwendet wird. Die erste in der IDP-Metadatendatei von Shibboleth aufgeführte Signatur ist jedoch für die Backchannel-TLS-Kommunikation, die zweite hingegen zum Signieren von SAML-Assertionen vorgesehen. Sie müssen die erste Signatur auskommentieren oder sie unter die zweite verschieben und die aktualisierte Metadatendatei zum Registrieren von Shibboleth bei Portal for ArcGIS verwenden. Die Signaturen werden mithilfe des <KeyDescriptor use="signing">-Elements in der Metadatendatei definiert.
- 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 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.
- 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.
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.
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.
- Kopieren Sie den Abschnitt "LDAP Data-Connector" aus SHIBBOLETH_HOME/conf/attribute-resolver-ldap.xml nach SHIBBOLETH_HOME/conf/attribute-resolver.xml. Kopieren Sie die UID oder ein anderes Attribut, das als NAMEID-Attribut zurückgegeben werden soll.
- 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:
<AttributeFilterPolicy id="ArcGIS"> <PolicyRequirementRule xsi:type="Requester" value="[The Entity ID of your Portal instance]" /> <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:
<bean parent="RelyingPartyByName" c:relyingPartyIds="[The Entity ID of your Portal instance]"> <property name="profileConfigurations"> <list> <bean parent="SAML2.SSO" p:nameIDFormatPrecedence="urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified" /> </list> </property> </bean>
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="[The Entity ID of your Portal instance]"> <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.