Konfigurieren von Shibboleth

Sie können Shibboleth 3.2x und 3.3x als Identity-Provider (IDP) für SAML-Anmeldungen in Portal for ArcGIS konfigurieren. Die Konfiguration umfasst zwei Hauptschritte: die Registrierung des SAML-IDPs bei Portal for ArcGIS und die Registrierung von Portal for ArcGIS beim SAML-IDP.

Hinweis:

Um sicherzustellen, dass die SAML-Anmeldenamen sicher konfiguriert werden, informieren Sie sich über die Best Practices für die SAML-Sicherheit.

Erforderliche Informationen

Portal for ArcGIS erfordert das Empfangen bestimmter Attributinformationen vom Identity-Provider, wenn ein Benutzer sich mit SAML-Anmeldenamen anmeldet. Das Attribut NameID ist ein erforderliches 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 eigenen Benutzerspeicher einen neuen Benutzer mit dem Benutzernamen NameID. Die zulässigen Zeichen für den von NameID gesendeten Wert sind alphanumerische Zeichen, _ (Unterstrich), . (Punkt) und @ (At-Zeichen). Für alle anderen Zeichen werden Escapezeichen verwendet, sodass der von Portal for ArcGIS erstellte Benutzername stattdessen Unterstriche enthält.

Portal for ArcGIS unterstützt die Übernahme der E-Mail-Adresse, der Gruppenmitgliedschaften, des angegebenen Namens und des Nachnamens eines Benutzers vom SAML-Identity-Provider.

Registrieren von Shibboleth als SAML-IDP bei Portal for ArcGIS

  1. Überprüfen Sie, ob Sie als Administrator Ihrer Organisation angemeldet sind.
  2. Klicken Sie im oberen Bereich der Seite auf Organisation und dann auf die Registerkarte Einstellungen.
  3. Klicken Sie links auf der Seite auf Sicherheit.
  4. Klicken Sie im Abschnitt Anmeldungen auf die Schaltfläche SAML-Anmeldung einrichten und wählen Sie die Option Ein Identity-Provider aus. Geben Sie auf der Seite Eigenschaften angeben den Namen der Organisation ein (z. B. City of Redlands). Wenn Benutzer auf die Website der Organisation zugreifen, wird dieser Text als Teil der SAML-Anmeldeoption angezeigt (z. B. Mit City of Redlands -Konto).
    Hinweis:

    Sie können nur einen SAML-Identity-Provider (IDP) oder einen Verbund von IDPs für Ihr Portal registrieren.

  5. Wählen Sie Automatisch oder Auf Einladung eines Administrators aus, um anzugeben, wie Benutzer der Organisation beitreten können. Durch Auswahl der ersten Option können sich Benutzer mit ihrem SAML-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 sich die Benutzer 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 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.

  6. 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 SAML-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.
    • Hier angegebene 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.
  7. 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 SAML gesendete Shibboleth-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: Aktivieren Sie diese Option, wenn ArcGIS Enterprise die Attribute givenName und email address der Benutzer aktualisieren soll, falls diese sich seit der letzten Anmeldung geändert haben.
    • SAML-basierte Gruppenmitgliedschaft aktivieren: Aktivieren Sie diese Option, damit Mitglieder der Organisation bestimmte SAML-basierte Enterprise-Gruppen während der Gruppenerstellung mit ArcGIS Enterprise-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 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.

  8. Klicken Sie auf Speichern.

Registrieren von Portal for ArcGIS als vertrauenswürdiger Service-Provider bei Shibboleth

  1. Konfigurieren Sie Portal for ArcGIS als vertrauende Seite in Shibboleth.
    1. 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 Registerkarte Einstellungen und dann links auf der Seite auf Sicherheit. Klicken Sie im Abschnitt Anmeldungen unter SAML-Anmeldung auf die Schaltfläche Service-Provider-Metadaten herunterladen.

    2. Konfigurieren Sie Portal for ArcGIS als vertrauenswürdigen Service-Provider in Shibboleth, indem Sie ein neues MetadataProvider-Element in der SHIBBOLETH_HOME/conf/metadata-providers.xml -Datei definieren.

      Fügen Sie das folgende Snippet zum MetadataProvider-Stammelement 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="https://www.w3.org/2001/XMLSchema-instance"
      	xsi:schemaLocation="urn:mace:shibboleth:2.0:metadata https://shibboleth.net/schema/idp/shibboleth-metadata.xsd"
      	failFastInitialization="true"
      	metadataFile=" <PATH_TO_THE_SAVED_METADATA>/esri-sp-metadata.xml" />
      
  2. 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

  3. Konfigurieren Sie die Benutzerattribute, die von Shibboleth zurückgegeben werden sollen.
    1. Bearbeiten Sie SHIBBOLETH_HOME/conf/attribute-resolver.xml. Kommentieren oder löschen Sie alle vorhandenen Beispielattributdefinitionen und Datenkonnektoren.
    2. Kopieren Sie die Definitionen für mail, givenName und surname aus der Datei SHIBBOLETH_HOME/conf/attribute-resolver-full.xml in die Datei SHIBBOLETH_HOME/conf/attribute-resolver.xml.
    3. 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.
    4. 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>
    
  4. Bearbeiten Sie die Datei SHIBBOLETH_HOME/conf/relying-party.xml.
    1. Kopieren Sie den nachstehenden XML-Code, und fügen Sie ihn in die shibboleth.RelyingPartyOverrides-Elemente ein, um die Standardkonfiguration für den Shibboleth-Identity-Provider außer Kraft zu setzen:
      <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:1.1: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.

    2. Deaktivieren Sie die Assertionsverschlüsselung im Shibboleth-Identity-Provider, indem Sie den Parameter encryptAssertions auf false festlegen.
      <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:1.1:nameid-format:unspecified" 
      					p:encryptAssertions="false" />
      			</list>
      		</property>
      		</bean>
      
  5. Bearbeiten Sie die Datei SHIBBOLETH_HOME/conf/saml-nameid.xml, und ersetzen Sie diesen 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:1.1:nameid-format:unspecified"
                p:attributeSourceIds="#{ {'your-name-id-attribute'} }" />
    

  6. Führen Sie einen Neustart des Shibboleth-Daemon (Linux) bzw. -Service (Windows) aus.