Drupal SAML Single Sign On med SimpleSAMLphp som identitetsleverantör
Översikt
Drupal SAML-integrationen med hjälp av miniOrange SAML SP-modul upprättar sömlös SSO mellan SimpleSAMLphp och Drupal-webbplatsen. Användarna kommer att kunna logga in på Drupal-webbplatsen med sina SimpleSAMLphp-uppgifter. Det här dokumentet leder dig genom stegen för att konfigurera enkel inloggning - SSO mellan Drupal som tjänsteleverantör (SP) och SimpleSAMLphp som identitetsleverantör (IdP). Modulen är kompatibel med Drupal 7, Drupal 8, Drupal 9, Drupal 10 och Drupal 11.
Installationssteg
- Använder Composer
- Använder Drush
- Manuell installation
Konfigurationssteg
Drupal SAML SP Metadata
- Gå till konfiguration → Personer → SAML-inloggningskonfiguration i Administration meny. (/admin/config/people/miniorange_saml/idp_setup)
- Under fliken Service Provider Metadata kopierar du SP Entity ID/Emittent och SP ACS URL och ha dem till hands. Denna SP-metadata krävs för att konfigurera SimpleSAMLphp som identitetsleverantör (IdP).
Konfigurera SimpleSAMLphp som en identitetsleverantör
-
Öppna installationskatalogen för SimpleSAML config/config.php och redigera följande:
'enable.saml20-idp' ⇒ sant
- aktivera UserPass-autentisering modul (ingår i exempelauth). Detta görs genom att skapa en fil med namnet möjliggöra (filnamn) i modules/exampleuth/.
-
Skapa en autentiseringskälla i config/authsources.php. Filen bör innehålla en enda post, se nedan:
'__DEFAULT__', /* * Den privata nyckeln och certifikatet som ska användas vid signering av svar. * Dessa lagras i cert-katalogen. */ 'privatekey' => 'example.org.pem', 'certificate' => 'example.org.crt', /* * Autentiseringskällan som ska användas för att autentisera *användaren. Detta måste matcha en av posterna i config/authsources.php. */ 'auth' => '' Exempel:- 'example-userpass', // Du kan hitta detta i steg nummer 1 ];
Denna konfiguration skapar två användare - student och anställd, med lösenorden studentpass och employeepass. Användarnamnet och lösenordet lagras i arrayindexet (student:studentpass för student-användare). Attributen för varje användare konfigureras i den array som refereras till av indexet. Så för studentanvändaren är dessa:
[ 'uid' => ['student'], 'eduPersonAffiliation' => ['medlem', 'student'], ],
Attributen kommer att returneras av IdP när användaren loggar in.
- Skapa ett självsignerat certifikat med någon av följande metoder:
-
Använder kommandot openssl
openssl req -newkey rsa:3072 -new -x509 -days 3652 -nodes -out example.org.crt -keyout example.org.pem
-
Skapa det med hjälp av alla onlineverktyg och lägg till dem i cert-katalogen.
Förlängningen ska vara somexample.org.crt //(Public Key)example.org.pem //(Privat Key)
-
Obs: SimpleSAMLphp fungerar endast med RSA-certifikat. DSA-certifikat stöds inte.
-
SAML 2.0 IdP konfigureras av metadata som lagras i metadata/saml20-idp-hosted.php. Detta är en minimal konfiguration:
'__DEFAULT__', /* * Den privata nyckeln och certifikatet som ska användas vid signering av svar. * Dessa lagras i cert-katalogen. */ 'privatekey' => 'example.org.pem', 'certificate' => 'example.org.crt', /* * Autentiseringskällan som ska användas för att autentisera *-användaren. Detta måste matcha en av posterna i config/authsources.php. */ ' auth' => '' Exempel:- 'exempel-användarpass', // Du kan hitta detta i steg nummer 1 ];
-
Identitetsleverantören du konfigurerar behöver veta om de tjänsteleverantörer du ska ansluta till den. Detta konfigureras av metadata som lagras i metadata/saml20-sp-remote.php. Detta är ett minimalt exempel på en metadata/saml20-sp-remote.php-metadatafil för en SimpleSAMLphp SP: (Ersätt example.com med din Drupal domännamn.)
'https://example.com/samlassertion', 'SingleLogoutService' => 'https://example.com/user/logout', 'NameIDFormat' => 'urn:oasis:names:tc:SAML:1.1:nameid -format:emailAddress', 'simplesaml.nameidattribute' => 'mail', 'simplesaml.attributes' => true, 'attributes' => array('mail', 'givenname', 'sn', 'memberOf'), ];
Obs: Att URI:n i Entity ID och URL:erna till AssertionConsumerService- och Single Logout Service-slutpunkterna ändras mellan olika tjänsteleverantörer. Om du har metadata för fjärr-SP:n som en XML-fil kan du använda den inbyggda XML till SimpleSAMLphp-metadatakonverteraren, som som standard är tillgänglig som /admin/metadata-converter.php i din SimpleSAMLphp-installation.
- Gå till SimpleSAMLphp hemsida för installation. (Webbadressen till en installation kan vara t.ex https://service.example.com/simplesaml/ där service.example.com måste ersättas med din SimpleSAMLphp-sökväg.)
- Navigera till Federation-fliken och klicka på Visa metadata. (Denna IdP-metadata krävs för att konfigurera Drupal som SP.)
Konfigurera Drupal som SAML-tjänsteleverantör:
- Gå till din Drupal-sajt. Navigera till Konfiguration av tjänsteleverantör fliken i modulen och klicka på Ladda upp IDP-metadata.
- Ladda upp den tidigare nedladdade metadatafilen från SimpleSAML till Ladda upp metadatafil textfältet och klicka på Ladda upp fil knapp.
Obs: Följ dessa steg för att uppdatera identitetsleverantörens namn:
- Enligt Handling, Välj Redigera.
- Ange SimpleSAMLphp i Identitetsleverantörens namn textfält.
- Bläddra ner och klicka på Spara konfiguration knapp.
- Klicka på länken Testa för att testa kopplingen mellan Drupal och SimpleSAMLphp.
- I ett popup-fönster för testkonfiguration loggar du in med SimpleSAMLphp-inloggningsuppgifter (om det inte finns någon aktiv session). Efter lyckad autentisering visas en lista över attribut som mottagits från SimpleSAMLphp. Klicka på Färdig .
Grattis! du har framgångsrikt konfigurerat SimpleSAMLphp som SAML Identity Provider (IdP) och Drupal som SAML Service Provider.
Hur fungerar SAML SSO-inloggning?
- Öppna en ny webbläsare/privat fönster och navigera till inloggningssidan för Drupal-webbplatsen.
- Klicka på Logga in med identitetsleverantör (SimpleSAMLphp) länken.
- Du kommer att omdirigeras till SimpleSAMLphp-inloggningssidan. Ange SimpleSAMLphp-uppgifterna. Efter framgångsrik autentisering kommer användaren att omdirigeras tillbaka till Drupal-webbplatsen.
Tack för ditt svar. Vi återkommer snart.
Något gick fel. Skicka din fråga igen

Kontakta oss