Skip To Content

Configurare Shibboleth

È possibile configurare Shibboleth 3.2x 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 del provider di identità aziendale con Portal for ArcGIS e la registrazione di Portal for ArcGIS con il provider di identità aziendale.

Se si desidera, è possibile specificare nel portale i metadati sui gruppi aziendali nell'archivio identità. In questo modo nel portale è possibile creare gruppi che sfruttano i gruppi aziendali esistenti nell'archivio identità. Quando i membri accedono al portale, l'accesso a contenuti, elementi e dati è controllato tramite le regole di appartenenza definite nel gruppo aziendale. Se non si specificano i metadati necessari del gruppo aziendale, sarà comunque possibile creare gruppi. Tuttavia le regole di appartenenza verranno controllate da Portal for ArcGIS, non dall'archivio identità.

Informazioni obbligatorie

Con Portal for ArcGIS gli utenti che accedono con gli account aziendali devono ricevere specifiche informazioni sugli attributi dal provider di identità. NameID è un attributo obbligatorio che deve essere inviato dal provider di identità nella risposta SAML per consentire il funzionamento della federazione con Portal for ArcGIS. Quando un utente esegue l'accesso da IDP, Portal for ArcGIS crea un nuovo utente con il nome utente NameID nel proprio archivio utenti. Per il valore inviato dall'attributo 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 dal provider di identità aziendale. Quando un utente effettua l'accesso utilizzando un account aziendale e Portal for ArcGIS riceve attributi con i nomi givenname e email o mail (senza distinzione tra maiuscolo e minuscolo), Portal for ArcGIS inserisce il nome completo e l'indirizzo e-mail dell'account utente con i valori ricevuti dal provider di identità. Si consiglia di passare l'email address ottenuto dal provider di identità aziendale per consentire all'utente di ricevere notifiche.

registrazione di Shibboleth come provider di identità aziendale con Portal for ArcGIS

  1. Accedere al Portale Web come amministratore dell'organizzazione e fare clic su La mia organizzazione > Modifica impostazioni > Sicurezza.
  2. Nella sezione Accessi aziendali fare clic sul pulsante Imposta provider di identità ed 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 integrante dell'opzione di accesso SAML, ad esempio Con l'account City of Redlands.
    Nota:

    È possibile registrare un provider di identità aziendale 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 all'organizzazione con l'account di accesso aziendale senza alcun intervento da parte di un amministratore. L'account viene registrato automaticamente con l'organizzazione al primo accesso. Con la seconda opzione è invece necessario che l'amministratore registri gli account necessari con l'organizzazione usando un'utilità da riga di comando o lo script Python di esempio. Una volta registrati gli account, gli utenti potranno accedere all'organizzazione.
    Suggerimento:

    Si consiglia di designare almeno un account aziendale come amministratore del portale e di abbassare di livello o di 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 del provider di identità 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 del provider di identità aziendale e individuare e selezionare il file SHIBBOLETH_HOME/metadata/idp-metadata.xml.
    • Parametri: scegliere questa opzione se il file non è accessibile. Immettere i valori manualmente e fornire i parametri richiesti: URL di accesso e certificato. 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.

    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.

  6. Se si desidera, specificare nel portale i metadati relativi ai gruppi aziendali nell'archivio identità.
    1. Accedere alla directory di Portal for ArcGIS come amministratore dell'organizzazione. Il formato dell'URL è https://webadaptorhost.domain.com/webadaptorname/portaladmin.
    2. Fare clic su Sicurezza > Configurazione > Aggiorna archivio identità.
    3. Inserire il JSON di configurazione del gruppo nella casella di testo Configurazione archivio gruppo (in formato JSON).
      • Se il proprio archivio identità è Windows Active Directory, copiare il testo seguente e modificarlo in modo che contenga informazioni specifiche per il proprio sito:

        {
          "type": "WINDOWS",
          "properties": {
            "isPasswordEncrypted": "false",
            "userPassword": "secret",
            "user": "mydomain\\winaccount"
          }
        }

        Nella maggior parte dei casi, sarà necessario solo modificare i valori per i parametri user e userPassword. Anche se la password viene digitata in testo non crittografato, verrà crittografata quando viene archiviata nella directory di configurazione del portale o visualizzata. L'account utilizzato per il parametro user deve disporre solo delle autorizzazioni per cercare i nomi dei gruppi Windows nella rete. Se possibile, utilizzare un account la cui password non scade.

      • Se il proprio archivio identità è LDAP, copiare il testo seguente e modificarlo in modo che contenga informazioni specifiche per il proprio sito:

        {
          "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"
          }
        }

        Nella maggior parte dei casi, sarà necessario solo modificare i valori per i parametri user, userPassword, ldapURLForUsers e ldapURLForRoles. L'URL di LDAP deve essere fornito dall'amministratore LDAP.

        Nell'esempio precedente, l'URL LDAP fa riferimento agli utenti all'interno di un OU (ou=utenti) specifico. Se gli utenti sono presenti in più OU, l'URL LDAP può fare riferimento a un OU di livello superiore o anche al livello radice se necessario. In questo caso, l'aspetto dell'URL è il seguente:

        "ldapURLForUsers": "ldaps://bar2:10636/dc=example,dc=com",

        L'account utilizzato per il parametro user deve disporre delle autorizzazioni per cercare i nomi dei gruppi nell'organizzazione. Anche se la password viene digitata in testo non crittografato, verrà crittografata quando viene archiviata nella directory di configurazione del portale o visualizzata.

        Se LDAP è configurato in modo da non fare distinzione tra maiuscole e minuscole, impostare il parametro caseSensitive su false.

    4. Una volta completata l'immissione di JSON per la configurazione dell'archivio utenti, fare clic su Aggiorna configurazione per salvare le modifiche e riavviare il portale.

registrazione di 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. Aggiungere quindi la seguente voce per l'attributo che verrà utilizzata come ID nome:

      <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>

    3. Copiare la sezione del connettore di dati LDAP da SHIBBOLETH_HOME/conf/attribute-resolver-ldap.xml a SHIBBOLETH_HOME/conf/attribute-resolver.xml.
    4. Configurare gli attributi da fornire al provider di servizi. Modificare il file SHIBBOLETH_HOME/conf/attribute-filter.xml e aggiungere quanto segue:
    Nota:

    Sostituire mygis.maps.arcgis.com con l'ID entità dell'organizzazione.

    <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>
  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:
      <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>
      Nota:

      Sostituire mygis.maps.arcgis.com con l'ID entità dell'organizzazione.

      Il parametro nameIDFormatPrecedence indica al provider di identità 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="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>
  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).