Skip To Content

Konfiguracja programu Shibboleth

Shibboleth 3.2x można skonfigurować jako dostawcę tożsamości (IDP) dla loginów korporacyjnych w witrynie Portal for ArcGIS. Proces konfiguracji obejmuje dwa główne etapy: rejestrację korporacyjnego dostawcy tożsamości w witrynie Portal for ArcGIS i rejestrację witryny Portal for ArcGIS dla korporacyjnego dostawcy tożsamości.

Podczas konfiguracji portalu można ewentualnie wprowadzić metadane dotyczące grup firmy w magazynie tożsamości. Umożliwi to tworzenie grup w portalu i tym samym wykorzystanie istniejących grup firmy w magazynie tożsamości. Za każdym razem, gdy członkowie grup logują się do portalu, dostęp do zasobów, elementów i danych jest kontrolowany przez zasady członkostwa zdefiniowane w grupie firmy. Grupy można tworzyć także bez podawania wymaganych metadanych grupy firmy. W takim przypadku zasady są określane przez witrynę Portal for ArcGIS, a nie przez magazyn tożsamości.

Wymagane informacje

W przypadku logowania użytkownika z wykorzystaniem loginu korporacyjnego witryna Portal for ArcGIS wymaga uzyskania określonych atrybutów od dostawcy tożsamości. NameID to niezbędny atrybut, który musi zostać przesłany przez dostawcę tożsamości w odpowiedzi protokołu SAML, aby integracja z witryną Portal for ArcGIS przebiegła pomyślnie. Podczas logowania użytkownika z IDP witryna Portal for ArcGIS utworzy nowego użytkownika o nazwie NameID w swoim magazynie użytkowników. Znaki dozwolone, z których może składać się wartość wysyłana przez atrybut NameID, to znaki alfanumeryczne, _ (podkreślenie), . (kropka) i @ (małpa). W nazwach użytkowników utworzonych przez witrynę Portal for ArcGIS wszystkie inne znaki zostaną zastąpione znakiem podkreślenia.

Witryna Portal for ArcGIS obsługuje przepływ atrybutów givenNameemail address loginu korporacyjnego od korporacyjnego dostawcy tożsamości. Gdy użytkownik loguje się za pomocą loginu korporacyjnego, a witryna Portal for ArcGIS otrzymuje atrybuty o nazwach givenname i email lub mail (wielkość liter nie ma znaczenia), witryna Portal for ArcGIS wypełnia imię i nazwisko oraz adres e-mail powiązane z kontem użytkownika wartościami otrzymanymi od dostawcy tożsamości. Zalecane jest przekazanie atrybutu email address od korporacyjnego dostawcy tożsamości, aby umożliwić użytkownikowi otrzymywanie powiadomień.

Zarejestruj program Shibboleth jako korporacyjnego dostawcę tożsamości w witrynie Portal for ArcGIS

  1. Zaloguj się w witrynie portalu jako administrator instytucji i kliknij opcję Moja instytucja > Edytuj ustawienia > Zabezpieczenia.
  2. W sekcji Loginy korporacyjne kliknij przycisk Skonfiguruj dostawcę tożsamości i wpisz nazwę swojej instytucji w wyświetlonym oknie (na przykład City of Redlands). Gdy użytkownik uzyskuje dostęp do witryny portalu, nazwa instytucji jest wyświetlana jako jedna z opcji logowania za pomocą protokołu SAML (na przykład Konto City of Redlands).
    Notatka:

    Dla portalu można zarejestrować tylko jednego korporacyjnego dostawcę tożsamości.

  3. Zdecyduj, czy użytkownicy będą mogli przystępować do instytucji automatycznie czy po dodaniu ich kont do portalu. Wybór pierwszej opcji pozwala użytkownikowi logować się do instytucji z wykorzystaniem loginu korporacyjnego, bez konieczności jakiejkolwiek ingerencji ze strony administratora. Ich konta zostają zarejestrowane w instytucji automatycznie podczas pierwszego logowania. Druga opcja wiąże się z koniecznością zarejestrowania przez administratora odpowiedniego konta instytucji za pomocą narzędzia wiersza poleceń albo przykładu skryptu języka Python. Po zarejestrowaniu kont użytkownicy będą mogli zalogować się w instytucji.
    Wskazówka:

    Zaleca się, aby przynajmniej jedno konto firmowe wyznaczyć na konto administratora portalu oraz zmienić atrybuty początkowego konta administratora na niższe lub je usunąć. Zaleca się również wyłączenie przycisku Utwórz konto oraz strony logowania (signup.html) w witrynie internetowej portalu, aby użytkownicy nie mogli tworzyć własnych kont. Szczegółowe instrukcje można znaleźć w temacie Konfiguracja dostawców tożsamości zgodnych z protokołem SAML dla portalu.

  4. Podaj metadane dostawcy tożsamości, korzystając z jednej z dwóch poniższych opcji:
    • Plik — domyślnie program Shibboleth udostępnia metadane dostawcy tożsamości w pliku znajdującym się w lokalizacji SHIBBOLETH_HOME/metadata. Jeśli masz dostęp do pliku metadanych, wybierz opcję Plik jako źródło metadanych korporacyjnego dostawcy tożsamości i wskaż plik znajdujący się w lokalizacji SHIBBOLETH_HOME/metadata/idp-metadata.xml.
    • Parametry — wybierz tę opcję, jeśli plik jest niedostępny. Wprowadzając wartości ręcznie podaj wymagane parametry: adres URL logowania i certyfikat. Aby uzyskać te dane, skontaktuj się z administratorem programu Shibboleth.
  5. Konfiguracja ustawień zaawansowanych (jeśli dotyczy):
    • Szyfruj potwierdzenie — zaznacz tę opcję, jeśli program Shibboleth zostanie skonfigurowany do szyfrowania odpowiedzi na potwierdzenia SAML.
    • Aktywuj żądanie podpisania — zaznacz tę opcję, aby witrynaPortal for ArcGIS podpisywała żądanie uwierzytelnienia SAML wysyłane do programu Shibboleth.
    • Identyfikator jednostki — zaktualizuj tę wartość, aby używać nowego identyfikatora jednostki do jednoznacznej identyfikacji swojego portalu w programie Shibboleth.

    Ustawienia Szyfruj potwierdzenie i Aktywuj żądanie podpisania korzystają z certyfikatu samlcert w magazynie kluczy portalu. Aby użyć nowego certyfikatu, usuń certyfikat samlcert, utwórz nowy certyfikat z tym samym aliasem (samlcert) zgodnie z instrukcją Importuj certyfikat do portalu i ponownie uruchom portal.

    Notatka:

    Obecnie opcje Prześlij wylogowanie do dostawcy tożsamości i Adres URL wylogowania nie są obsługiwane.

  6. Ewentualnie wprowadź w konfiguracji portalu metadane dotyczące grup firmowych w magazynie tożsamości:
    1. Sign in to the ArcGIS Portal Directory as an administrator of your organization. The URL is in the format https://webadaptorhost.domain.com/webadaptorname/portaladmin.
    2. Click Security > Config > Update Identity Store.
    3. Place the group configuration JSON in the Group store configuration (in JSON format) text box.
      • If your identity store is Windows Active Directory, copy the following text and alter it to contain the information specific to your site:

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

        In most cases, you will only need to alter values for the user and userPassword parameters. Although you type the password in clear text, it will be encrypted when stored in the portal's configuration directory or viewed. The account you use for the user parameter only needs permissions to look up the names of Windows groups on the network. If possible, use an account whose password does not expire.

      • If your identity store is LDAP, copy the following text and alter it to contain the information specific to your site:

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

        In most cases, you'll only need to alter values for the user, userPassword, ldapURLForUsers, and ldapURLForRoles parameters. The URL to your LDAP will need to be provided by your LDAP administrator.

        In the above example, the LDAP URL refers to users within a specific OU (ou=users). If users exist in multiple OUs, the LDAP URL can point to a higher level OU or even the root level if needed. In that case, the URL would instead look like this:

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

        The account you use for the user parameter needs permissions to look up the names of groups in your organization. Although you type the password in clear text, it will be encrypted when stored in the portal's configuration directory or viewed.

        If your LDAP is configured to be case insensitive, set the caseSensitive parameter to false.

    4. When you finish entering the JSON for the user store configuration, click Update Configuration to save your changes and restart the portal.

Zarejestruj witrynę Portal for ArcGIS jako zaufanego usługodawcę w Shibboleth

  1. Skonfiguruj witrynę Portal for ArcGIS jako jednostkę zależną w programie Shibboleth.
    1. Uzyskaj plik metadanych swojej instytucji w portalu i zapisz go jako plik XML.

      Aby uzyskać plik metadanych, zaloguj się jako administrator swojej instytucji i otwórz stronę instytucji. Kliknij przycisk Edytuj ustawienia, kliknij kartę Bezpieczeństwo, a następnie w sekcji Loginy korporacyjne kliknij przycisk Uzyskaj dostawcę tożsamości.

    2. Skonfiguruj witrynę Portal for ArcGIS jako zaufanego dostawcę w programie Shibboleth, definiując nowy element MetadataProvider w pliku SHIBBOLETH_HOME/conf/metadata-providers.xml .

      Dodaj poniższy ekstrakt w elemencie głównym MetadataProvider. Podaj ścieżkę do pliku XML metadanych instytucji (zapisanego w punkcie 1.a powyżej).

      <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. Skonfiguruj uwierzytelnianie użytkownika. W poniższym przykładzie serwer katalogu LDAP jest konfigurowany jako magazyn użytkowników przez aktualizację niezbędnych właściwości w pliku 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. Skonfiguruj atrybuty użytkownika zwracane przez program Shibboleth.
    1. Edytuj SHIBBOLETH_HOME/conf/attribute-resolver.xml. Oznacz jako komentarz lub usuń wszystkie istniejące przykładowe definicje atrybutów i łączniki danych.
    2. Skopiuj definicje elementów mail i givenName z pliku SHIBBOLETH_HOME/conf/attribute-resolver-full.xml do pliku SHIBBOLETH_HOME/conf/attribute-resolver.xml. Następnie dodaj następujący wpis do atrybutu, który będzie używany jako identyfikator nazwy:

      <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. Skopiuj sekcję LDAP Data Connector (Łącznik danych LDAP) z SHIBBOLETH_HOME/conf/attribute-resolver-ldap.xml do SHIBBOLETH_HOME/conf/attribute-resolver.xml.
    4. Skonfiguruj atrybuty w celu wydania do dostawcy usług. Edytuj plik SHIBBOLETH_HOME/conf/attribute-filter.xml i dodaj co następuje:
    Notatka:

    Zastąp element mygis.maps.arcgis.com identyfikatorem elementu własnej instytucji.

    <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. Otwórz plik SHIBBOLETH_HOME/conf/relying-party.xml do edycji.
    1. Skopiuj poniższy kod XML i wklej go wewnątrz elementów shibboleth.RelyingPartyOverrides, aby zastąpić domyślną konfigurację dostawcy tożsamości 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>
      Notatka:

      Zastąp element mygis.maps.arcgis.com identyfikatorem elementu własnej instytucji.

      Parametr nameIDFormatPrecedence instruuje dostawcę tożsamości o konieczności wysłania atrybutu identyfikatora nazwy SAML w formacie unspecified wymaganym przez usługę ArcGIS Online i witrynę Portal for ArcGIS.

    2. Wyłącz szyfrowanie potwierdzenia w dostawcy tożsamości Shibboleth, nadając parametrowi encryptAssertions nazwę 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. Otwórz plik SHIBBOLETH_HOME/conf/saml-nameid.xml do edycji i zastąp następującą sekcję:
    <!--
    <bean parent="shibboleth.SAML2AttributeSourcedGenerator"
       p:format="urn:oasis:names:tc:SAML:1.1:nameid-format:emailAddress"
       p:attributeSourceIds="#{ {'mail'} }" />
    -->

    sekcją:

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

  6. Zrestartuj demona (Linux) lub usługę (Windows) Shibboleth.