Skip To Content

Configurare SimpleSAMLphp

È possibile configurare SimpleSAMLphp 1.10 e versioni successive come provider di identità (IDP) per 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 SimpleSAMLphp come l'IDP aziendale con Portal for ArcGIS

  1. Configurare un'origine di autenticazione nell'IdP di SimpleSAMLphp.
    1. Creare un'origine di autenticazione.

      SimpleSAMLphp consente di autenticare gli utenti utilizzando diverse origine di autenticazione, tra cui il server LDAP, gli utenti in un server SQL, il dominio Active Directory e così via. Nell'esempio seguente viene spiegato come configurare un server directory Apache come origine di autenticazione nell'IdP di SimpleSAMLphp.

      È possibile configurare le origini di autenticazione nel file <SimpleSAML_HOME>/config/authsources.php. Per configurare il server LDAP, aprire il file config/authsources.php e aggiungere un'origine di autenticazione basata su LDAP nel formato seguente:

      'example-ldapApacheDS' => array(
      		'ldap:LDAP',
      		/* The hostname of the LDAP server. */
      		'hostname' => 'host:port',
      		/* Whether SSL/TLS should be used when contacting the LDAP server. */
      		'enable_tls' => TRUE,
      		/*
      		 * Which attributes should be retrieved from the LDAP server.
      		 * This can be an array of attribute names, or NULL, in which case
      		 * all attributes are fetched.
      		 */
      		'attributes' => NULL,
      		/*
      		 * The pattern that should be used to create the users DN given the username.
      		 * %username% in this pattern will be replaced with the user's username.
      		 *
      		 * This option is not used if the search.enable option is set to TRUE.
      		 */
      		'dnpattern' => 'uid=%username%,ou=users,ou=system',
      		/*
      		 * As an alternative to specifying a pattern for the users DN, it is possible to
      		 * search for the username in a set of attributes. This is enabled by this option.
      		 */
      		'search.enable' => FALSE,
      		/*
      		 * The DN that will be used as a base for the search.
      		 * This can be a single string, in which case only that DN is searched, or an
      		 * array of strings, in which case they will be searched in the order given.
      		 */
      		'search.base' => 'ou=users,ou=system',
      		/*
      		 * The attribute(s) the username should match against.
      		 *
      		 * This is an array with one or more attribute names. Any of the attributes in
      		 * the array may match the value the username.
      		 */
      		'search.attributes' => array('uid', 'mail'),
      		/*
      		 * The username & password the simpleSAMLphp should bind to before searching. If
      		 * this is left as NULL, no bind will be performed before searching.
      		 */
      		'search.username' => 'uid=admin,ou=system',
      		'search.password' => 'password',
      	),

      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 ad Portal for ArcGIS l'indirizzo e-mail ottenuto dall'IDP aziendale. Questa operazione è utile se l'utente diventa in seguito un amministratore. La disponibilità di un indirizzo e-mail nell'account consente all'utente di ricevere notifiche su eventuali attività amministrative e di inviare ad altri utenti inviti ad iscriversi all'organizzazione.

    2. Configurare l'origine di autenticazione creata in precedenza come modulo di autenticazione nell'IdP di SimpleSAMLphp. Aprire il file metadata/ saml20-idp-hosted.php e aggiungere l'origine di autenticazione da utilizzare.
      /*
      	 * Authentication source to use. Must be one that is configured in	 * 'config/authsources.php'.	 */
      	'auth' => 'example-ldapApacheDS',
  2. Configurare il formato dell'identificatore di nomi supportato dall'IDP di SimpleSAMLphp. Aprire il file < SimpleSAML_HOME >/metadata/saml20-idp-hosted.php e aggiungere il frammento di codice seguente. Nell'esempio successivo l'IDP di SimpleSAMLphp passerà l'uid come NameID a Portal for ArcGIS dopo l'autenticazione dell'utente.
    'NameIDFormat' => 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent',		'authproc' => array(
    			  3 => array(
    			  'class' => 'saml:AttributeNameID',			  'attribute' => 'uid',	              'Format' => 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent',				  ),
    			),
  3. Registrare SimpleSAMLphp come l'IDP per l'organizzazione 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 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 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 tre opzioni seguenti:

      URL: scegliere questa opzione se l'URL dei metadati di federazione SimpleSAMLphp è accessibile. In genere l'URL è https://<simpleSAML-server>/<saml-app-name>/saml2/idp/metadata.php.

      Nota:

      Se l'IDP aziendale include un certificato autofirmato, potrebbe verificarsi un errore quando si prova a specificare l'URL HTTPS dei metadati. Questo errore si verifica perché Portal for ArcGIS non è in grado di verificare il certificato autofirmato dell'IDP. In alternativa, utilizzare HTTP nell'URL, utilizzare una delle altre opzioni seguenti o configurare l'IDP con un certificato attendibile.

      File: scegliere questa opzione se l'URL non è accessibile. Salvare i metadati dell'URL in un file XML e caricare il file su Portal for ArcGIS mediante l'opzione File.

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

  4. Configurare le impostazioni avanzate, laddove applicabile:
    • Crittografare asserzione: selezionare questa opzione se SimpleSAMLphp 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 SimpleSAMLphp.
    • ID entità: aggiornare questo valore per utilizzare un nuovo ID entità per identificare in maniera univoca il portale in SimpleSAMLphp.
    • Propaga logout a provider di identità: selezionare questa opzione per consentire a Portal for ArcGIS di utilizzare un URL di disconnessione per disconnettere l'utente da SimpleSAMLphp. Immettere l'URL da utilizzare nell'impostazione URL di disconnessione. Se l'IDP richiede che l'URL di disconnessione sia firmato, l'opzione Abilita richiesta firmata deve essere selezionata.
    • 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.
    • URL di disconnessione: l'URL dell'IDP da utilizzare per disconnettere l'utente attualmente connesso. In genere l'URL di disconnessione è https://idphost.domain.com/simplesaml/saml2/idp/SingleLogoutService.php. Questo URL è definito nell'elemento SingleLogoutService nel file di metadati di IDP. In genere l'URL del file di metadati è http://[simpleSAML-server]/simplesaml/saml2/idp/metadata.php.

    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.

registrazione di Portal for ArcGIS come provider di servizi attendibili con SimpleSAMLphp

  1. Configurare Portal for ArcGIS come provider di servizi attendibili con SimpleSAMLphp configurando il file <SimpleSAMLphp_HOME>/metatadata/saml20-sp-remote.php.
    1. Ottenere il file XML dei metadati dell'organizzazione Portal for ArcGIS.

      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. Convertire in formato PHP il file XML ottenuto nel passaggio precedente.

      In SimpleSAMLphp le informazioni dei metadati del provider di servizi devono essere fornite in formato PHP. SimpleSAMLphp include codice XML incorporato al convertitore di metadati PHP, disponibile per impostazione predefinita come https://<simpleSAML-server>/<saml-app-name>/admin/metadata-converter.php nell'installazione di SimpleSAMLphp. Utilizzare questo convertitore per convertire il codice XML in PHP.

    3. Aprire il file metatadata/saml20-sp-remote.php e aggiungere la configurazione del provider di servizi in formato PHP creata al passo 1.b, sopra descritto.

      Di seguito è riportato un esempio di configurazione del provider di servizi aggiunta nel file dei metadati.

      /* The following is a Portal for ArcGIS organization service provider */
      $metadata['webadaptorhost.domain.com.webadaptorname'] = array (  'entityid' => ' webadaptorhost.domain.com.webadaptorname',  'name' =>
        array (    'en' => 'portal ',  ),  'description' =>
        array (    'en' => 'portal ',  ),  'OrganizationName' =>
        array (    'en' => 'portal ',  ),  'OrganizationDisplayName' =>
        array (    'en' => 'portal ',  ),  'url' =>
        array (    'en' => 'https://webadaptorhost.domain.com/webadaptorname',  ),  'OrganizationURL' =>
        array (    'en' => 'https://webadaptorhost.domain.com/webadaptorname',  ),  'contacts' =>
        array (  ),  'metadata-set' => 'saml20-sp-remote',  'AssertionConsumerService' =>
        array (    0 =>
          array (      'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST',      'Location' => 'https://webadaptorhost.domain.com/webadaptorname/sharing/rest/oauth2/saml/signin',      'index' => 1,    ),    1 =>
          array (      'Binding' => 'urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect',      'Location' => 'https://webadaptorhost.domain.com/webadaptorname/sharing/rest/oauth2/saml/signin',      'index' => 2,    ),  ),  'SingleLogoutService' =>
        array (  ),
      );
  2. Configurare l'attributo passato dall'IdP di SimpleSAMLphp come NameID a Portal for ArcGIS dopo l'autenticazione dell'utente. A tale scopo, aggiungere l'attributo alla fine della configurazione del provider di servizi aggiunta al passaggio precedente.

    Nell'esempio successivo l'IdP di SimpleSAMLphp passerà l'uid come NameID a Portal for ArcGIS dopo l'autenticazione dell'utente. Sostituire webadaptorhost.domain.com.webadaptorname con l'URL del portale.

    'NameIDFormat'               => 'urn:oasis:names:tc:SAML:2.0:nameid-format:persistent', 'simplesaml.nameidattribute' => 'uid',
    /* The following indicates whether or not to send all the attributes received from the authentication source to the service provider.  If true, it will send, otherwise it will not send all the attributes*/
      'simplesaml.attributes'      => true,
    );
  3. Se si sceglie l'impostazione avanzata Crittografare asserzione quando si registra SimpleSAMLphp come l'IDP aziendale, aggiungere l'attributo sottostante alla fine della configurazione del provider di servizi aggiunta al passaggio 1.
    /*
      Whether assertions sent to this SP should be encrypted. The default value is FALSE.  */
      'assertion.encryption' => true,
    );