Skip To Content

Configurare Shibboleth

È possibile configurare Shibboleth 3.2x e 3.3x come provider di identità (IDP) per gli account di accesso aziendali in Portal for ArcGIS. Il processo di configurazione comporta due passaggi principali: la registrazione dell'IDP aziendale con Portal for ArcGIS e la registrazione di Portal for ArcGIS con l'IDP aziendale.

Informazioni obbligatorie

Portal for ArcGIS richiede che informazioni sugli attributi specifiche siano ricevute dall'IDP quando un utente esegue l'accesso utilizzando gli account aziendali. L'attributo NameID è obbligatorio e deve essere inviato dall'IDP nella risposta SAML affinché la federazione con Portal for ArcGIS funzioni. Dal momento che Portal for ArcGIS usa il valore di NameID per identificare in modo univoco un utente con nome, si consiglia di usare un valore costante che identifica l'utente in modo univoco. Quando un utente di IDP esegue l'accesso, Portal for ArcGIS crea un nuovo utente con il nome utente NameID nel proprio archivio utenti. Per il valore inviato da NameID sono consentiti solo caratteri alfanumerici, _ (carattere di sottolineatura), . (punto) e @ (chiocciola). Qualsiasi altro carattere verrà sostituito da caratteri di sottolineatura nel nome utente creato da Portal for ArcGIS.

Portal for ArcGIS supporta il flusso in ingresso degli attributi givenName e email address dell'account aziendale dall'IDP aziendale. Quando un utente effettua l'accesso utilizzando un account aziendale, e se Portal for ArcGIS riceve attributi con i nomi givenname e email o mail (senza distinzione tra maiuscolo e minuscolo), Portal for ArcGIS compila il nome completo e l'indirizzo e-mail dell'account utente con i valori ricevuti dall'IDP. Si consiglia di passare il email address ottenuto dall'IDP aziendale per consentire all'utente di ricevere notifiche.

Registrare Shibboleth come l'IDP aziendale con Portal for ArcGIS

  1. Accedere al Sito Web del portale come amministratore dell'organizzazione e fare clic su Organizzazione > Modifica impostazioni > Sicurezza.
  2. Nella sezione Accessi aziendali, selezionare l’opzione Un provider di identità, fare clic sul pulsante Configurare le credenziali di accesso aziendali e immettere il nome dell'organizzazione nella finestra che viene visualizzata (ad esempio City of Redlands). Quando gli utenti accedono al Sito Web del portale, questo testo viene visualizzato come parte dell'opzione di accesso SAML, ad esempio con l'account City of Redlands.
    Nota:

    È possibile registrare un solo IDP aziendale o una federazione di IDP per il portale.

  3. Scegliere se gli utenti potranno iscriversi all'organizzazione Automaticamente o Dopo aver aggiunto gli account al portale. Se si seleziona la prima opzione, gli utenti potranno accedere al portale con l'account di accesso aziendale senza alcun intervento da parte di un amministratore. L'account viene registrato automaticamente con il portale al primo accesso. Con la seconda opzione è invece necessario che l'amministratore registri gli account necessari con il portale usando un'utilità da riga di comando o lo script Python di esempio. Una volta registrati gli account, gli utenti potranno accedere al portale.
    Suggerimento:

    Si consiglia di designare almeno un account aziendale come amministratore del portale e di abbassare di livello o eliminare l'account amministratore iniziale. Si consiglia inoltre di disabilitare il pulsante Crea account e la pagina di registrazione (signup.html) del portale Web per impedire agli utenti di creare i propri account. Per istruzioni complete, consultare Configurare un provider di identità conforme a SAML con il portale.

  4. Fornire informazioni sui metadati per l'IDP utilizzando una delle due opzioni seguenti:
    • File: per impostazione predefinita, Shibboleth fornisce il file di metadati IdP in SHIBBOLETH_HOME/metadata. Se il file di metadati è accessibile, scegliere l'opzione File per i metadati dell'IDP aziendale e individuare il file SHIBBOLETH_HOME/metadata/idp-metadata.xml. Portal for ArcGIS convalida la firma nelle risposte all'asserzione SAML da Shibboleth utilizzando il primo certificato con la firma nel file di metadati IDP. Tuttavia, per impostazione predefinita, la prima firma elencata nel file di metadati IDP Shibboleth è per comunicazione TLS back channel, mentre la seconda è per la firma di risposte all'asserzione. Sarà necessario impostare come commento la prima firma o spostarla sotto la seconda e utilizzare il file di metadati aggiornato per registrare Shibboleth con Portal for ArcGIS. Le firme sono definite utilizzando l'elemento <KeyDescriptor use="signing"> nel file di metadati.
    • Parametri: scegliere questa opzione se l'URL o il file dei metadati di federazione non è accessibile. Immettere i valori manualmente e fornire i parametri richiesti: l'URL e il certificato di accesso, codificati nel formato BASE 64. Per ottenere questi parametri, contattare l'amministratore di Shibboleth.
  5. Configurare le impostazioni avanzate, laddove applicabile:
    • Crittografare asserzione: selezionare questa opzione se Shibboleth verrà configurato per crittografare le risposte all'asserzione SAML.
    • Abilita richiesta firmata: selezionare questa opzione per consentire a Portal for ArcGIS di firmare la richiesta di autenticazione SAML inviata a Shibboleth.
    • ID entità: aggiornare questo valore per utilizzare un nuovo ID entità per identificare in maniera univoca il portale in Shibboleth.
    • Aggiorna profilo all'accesso: selezionare questa opzione perché Portal for ArcGIS aggiorni gli attributi givenName e email address degli utenti, se sono cambiati rispetto all'ultimo accesso.
    • Abilita appartenenza al gruppo basata su SAML: selezionare questa opzione per consentire ai membri dell'organizzazione di collegare determinati gruppi aziendali basati su SAML a gruppi Portal for ArcGIS durante il processo di creazione del gruppo.

    Le impostazioni Crittografare asserzione e Abilita richiesta firmata utilizzano il certificato samlcert nell'archivio chiavi del portale. Per utilizzare un nuovo certificato, eliminare il certificato samlcert, creare un nuovo certificato con lo stesso alias (samlcert) seguendo la procedura in Importare un certificato nel portale e riavviare il portale.

    Nota:

    Attualmente, le opzioni Propaga logout a provider di identità e URL di disconnessione non sono supportate.

Registrare Portal for ArcGIS come provider di servizi attendibili con Shibboleth

  1. Configurare Portal for ArcGIS come relying party in Shibboleth.
    1. Ottenere il file dei metadati del portale e salvarlo in formato XML.

      Per ottenere il file dei metadati, accedere come amministratore dell'organizzazione e aprire la pagina dell'organizzazione. Fare clic sul pulsante Modifica impostazioni e sulla scheda Protezione, quindi nella sezione Accessi aziendali fare clic sul pulsante Ottieni provider di servizi.

    2. Configurare Portal for ArcGIS come provider di servizi attendibili in Shibboleth definendo un nuovo elemento MetadataProvider nel file SHIBBOLETH_HOME/conf/metadata-providers.xml .

      Aggiungere il frammento di codice seguente nell'elemento radice MetadataProvider. Specificare il percorso del file XML dei metadati dell'organizzazione (salvato al passo 1.a sopra descritto).

      <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" />
  2. Configurare l'autenticazione utente. Nell'esempio seguente, un server LDAP viene configurato come archivio utente aggiornando le proprietà necessarie nel file SHIBBOLETH_HOME/conf/ldap.properties:.

    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. Configurare gli attributi utente che devono essere restituiti da Shibboleth.
    1. Modificare SHIBBOLETH_HOME/conf/attribute-resolver.xml. Commentare o eliminare tutti gli esempi di definizioni di attributi e di connettori di dati esistenti.
    2. Copiare le definizioni per mail e givenName dal file SHIBBOLETH_HOME/conf/attribute-resolver-full.xml nel file SHIBBOLETH_HOME/conf/attribute-resolver.xml.
    3. Copiare la sezione del connettore di dati LDAP da SHIBBOLETH_HOME/conf/attribute-resolver-ldap.xml a SHIBBOLETH_HOME/conf/attribute-resolver.xml. Copiare la definizione per uid o qualsiasi altro attributo che si desidera restituire come l'attributo NAMEID.
    4. Configurare gli attributi da fornire al provider di servizi. Modificare il file SHIBBOLETH_HOME/conf/attribute-filter.xml e aggiungere quanto segue:
    <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. Modificare il file SHIBBOLETH_HOME/conf/relying-party.xml.
    1. Copiare il codice XML sottostante e incollarlo negli elementi shibboleth.RelyingPartyOverrides per sovrascrivere la configurazione predefinita del provider di identità Shibboleth:
      <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>

      Il parametro nameIDFormatPrecedence indica all'IDP di inviare l'attributo ID del nome SAML nel formato unspecified, che è richiesto da ArcGIS Online e Portal for ArcGIS.

    2. Disattivare la crittografia delle asserzioni nel provider di identità Shibboleth impostando il parametro encryptAssertions su false.
      <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>
  5. Modificare il file SHIBBOLETH_HOME/conf/saml-nameid.xml e sostituire questa sezione:
    <!--
    <bean parent="shibboleth.SAML2AttributeSourcedGenerator"
       p:format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
       p:attributeSourceIds="#{ {'mail'} }" />
    -->

    con quella seguente:

    <bean parent="shibboleth.SAML2AttributeSourcedGenerator"
                p:format="urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified"
                p:attributeSourceIds="#{ {'your-name-id-attribute'} }" />

  6. Riavviare il daemon di Shibboleth (Linux) o il servizio (Windows).