Social inloggning med Facebook och Twitter social-login-with-facebook-and-twitter
Social inloggning är en funktion för att ge en besökare möjlighet att logga in med sitt Facebook- eller Twitter-konto. Det innebär att tillåtna Facebook- eller Twitter-data inkluderas i deras AEM medlemsprofil.
Översikt över social inloggning social-login-overview
För att inkludera inloggning via sociala medier krävs *för att skapa anpassade Facebook- och Twitter-program.
Exemplet med webbutik innehåller exempel på Facebook- och Twitter-appar samt molntjänster, men de är inte tillgängliga på en produktionswebbplats.
De steg som krävs är:
-
Aktivera OAuth-autentisering på alla AEM publiceringsinstanser.
Om OAuth inte är aktiverat misslyckas inloggningsförsöken.
-
Skapa en social app och molntjänst.
-
Så här hanterar du inloggning med Facebook:
- Skapa en Facebook.
- Skapa och publicera en Molntjänsten facebook Connect.
-
Så här hanterar du inloggning med Twitter:
- Skapa en Twitter.
- Skapa och publicera en Molntjänsten twitter Connect.
-
-
Aktivera social inloggning för en communitysajt.
Det finns två grundläggande begrepp:
-
Omfång (behörigheter) anger vilka data programmet får begära.
- Facebook och Twitter Adobe Granite OAuth-program och -leverantör som standard inkluderar du de grundläggande programbehörigheterna i deras omfång.
-
Fält (params) anger de faktiska data som begärts med URL-parametrar.
- Dessa fält anges i AEM Communities Facebook OAuth Provider och AEM Communities Twitter OAuth Provider.
- Standardfälten räcker för de flesta fall, men kan ändras.
Facebook Login facebook-login
Facebook API-version facebook-api-version
Samtidig inloggning och Facebook-exemplet för webbförsäljning utvecklades när Facebook Graph API var version 1.0.
Från och med AEM 6.4 GA och AEM 6.3 SP1 uppdaterades den sociala inloggningen för att fungera med den nyare Facebook Graph API 2.5-versionen.
Versionsinformation om Facebook Graph API finns i Facebook API-ändringslogg.
Skapa en Facebook-app create-a-facebook-app
Ett korrekt konfigurerat Facebook-program krävs för att aktivera Facebook inloggning för sociala medier.
Följ Facebook instruktioner för att skapa Facebook-program på https://developers.facebook.com/apps/. Ändringar av instruktionerna återspeglas inte i följande information.
Från och med Facebook API v2.7:
-
Lägg till en ny Facebook-app:
- För Plattform, välj Webbplats
- För Webbplats-URL, ange
https://<server>:<port>.
- För Webbplats-URL, ange
- För Visningsnamn, anger du en titel som ska användas som titel för Facebook-anslutningstjänsten.
- För Kategori, rekommenderas Appar för sidor, men kan vara vad som helst.
- Lägg till produkt: Facebook Login
- För Giltiga omdirigerings-URI:er för OAuth, ange
https://<server>:<port>.
- För Giltiga omdirigerings-URI:er för OAuth, ange
- För Plattform, välj Webbplats
När programmet har skapats letar du reda på App ID och App Secret inställningar. Den här informationen krävs för att konfigurera Facebook molntjänst.
Skapa en Facebook Connect-Cloud Service create-a-facebook-connect-cloud-service
The Adobe Granite OAuth-program och -leverantör -instans, som initieras genom att en molntjänstkonfiguration skapas, identifierar Facebook-programmet och den eller de medlemsgrupper som de nya användarna läggs till i.
-
Logga in med administratörsbehörighet på AEM författarinstans.
-
Från global navigering väljer du Tools > Cloud Services > Facebook Social login configuration.
-
Välj konfigurationen context path.
Context path ska vara samma som den molnkonfigurationssökväg som du har valt när du skapar/redigerar en community-webbplats.
-
Kontrollera om din kontextsökväg är aktiverad för att skapa molntjänster under den.
-
Gå till Tools > General > Configuration Browser. Välj kontext och redigera egenskaper. Aktivera molnkonfigurationer om de inte har aktiverats ännu.
- Se Configuration Browser-dokumentation för mer information.
-
Skapa/redigera Facebook molntjänstkonfiguration.
- Title (Obligatoriskt) Ange en visningsrubrik som identifierar Facebook App. Vi rekommenderar att du använder samma namn som Visningsnamn för Facebook.
- App ID/API Key (Obligatoriskt) Ange Program-ID för Facebook App. Detta identifierar Adobe Granite OAuth-program och -leverantör -instans som har skapats från dialogrutan.
- App Secret (Obligatoriskt) Ange Apphemlighet för Facebook App.
- Create Users Om du markerar det här alternativet skapas en AEM användarpost och läggs till som medlem i de valda användargrupperna när du loggar in med ett Facebook-konto. Standard är markerat (rekommenderas starkt).
- Mask User IDs: Låt vara avmarkerat.
- Scope Email: användarens e-postadress ska hämtas från Facebook.
- Add to User Groups välj Lägg till användargrupp om du vill välja en eller flera medlemsgrupper för den community som användarna ska läggas till på.
note note NOTE Grupper kan läggas till eller tas bort när som helst. Men befintliga användares medlemskap påverkas inte. Automatiskt medlemskap gäller endast för nya användare som skapas efter den här fältuppdateringen. För webbplatser där anonyma användare är inaktiverade väljer du att lägga till användare i motsvarande community-medlemsgrupp som är avsedd för den stängda communitywebbplatsen. - Välj SAVE.
- Publish.
Resultatet är ett Adobe Granite OAuth-program och -leverantör -instans som inte behöver ändras ytterligare såvida inte ytterligare omfång (behörigheter) läggs till. Standardomfattningen är standardbehörigheterna för Facebook-inloggning. Om ytterligare omfattning önskas måste OSGI-konfigurationen redigeras direkt. Om ändringar görs direkt via system/konsol ska du undvika att redigera molntjänstkonfigurationerna från pekgränssnittet för att undvika att skriva över dem.
AEM Communities Facebook OAuth Provider aem-communities-facebook-oauth-provider
AEM Communities-leverantören utökar Adobe Granite OAuth-program och -leverantör -instans.
Den här providern behöver redigeras för att:
-
Tillåt användaruppdateringar
-
Lägg till ytterligare fält inom omfånget
- Alla fält som tillåts som standard inkluderas inte som standard.
Om redigering är nödvändig, för varje AEM publiceringsinstans:
-
Logga in med administratörsbehörighet.
-
Navigera till Webbkonsol. Exempel: http://localhost:4503/system/console/configMgr.
-
Hitta AEM Communities Facebook OAuth Provider.
-
Markera pennikonen som du vill öppna för redigering.
-
OAuth Provider ID
(Obligatoriskt) Standardvärdet är soco-facebook. Redigera inte.
-
Cloud Service Config
Standardvärdet är /etc/molntjänster/facebookconnect. Redigera inte.
-
OAuth Provider Service Config
Standardvärdet är /apps/social/facebookprovider/config/. Redigera inte.
-
Enable Tags
Redigera inte.
-
User Path
Plats i databasen där användardata lagras. För en communitywebbplats, för att säkerställa behörighet för medlemmar att se varandras profil, bör sökvägen vara standardsökvägen /home/users/community.
-
Enable fields
Om du markerar det här alternativet anges fälten i listan på begäran till Facebook för användarautentisering och användarinformation. Standardvärdet är avmarkerat.
-
Fields
När fält är aktiverade inkluderas följande fält när du anropar Facebook Graph API. Fälten måste vara tillåtna inom det omfång som definieras i molntjänstkonfigurationen. Ytterligare fält kan behöva godkännas av Facebook. Se avsnittet Facebook inloggningsbehörigheter i Facebook-dokumentationen. Standardfälten som läggs till som parametrar är:
- id
- name
- first_name
- last_name
- link
- locale
- bild
- tidszon
- uppdaterad_tid
- verifierad
- e-post
Om något fält läggs till eller ändras, uppdaterar du motsvarande standardkonfiguration för synkroniseringshanteraren för att korrigera mappningen.
- Update User
Om du markerar det här alternativet uppdateras användardata i databasen vid varje inloggning så att profiländringar eller ytterligare data som efterfrågas återspeglas. Standard är avmarkerat.
-
Nästa steg next-steps
Nästa steg är samma för både Facebook och Twitter:
Twitter Login twitter-login
Skapa en Twitter-app create-a-twitter-app
Ett konfigurerat Twitter-program krävs för att aktivera Twitter inloggning för sociala medier.
Följ de senaste instruktionerna för att skapa ett nytt Twitter-program på https://apps.twitter.com.
I allmänhet:
-
Ange Namn som identifierar ditt Twitter-program för webbplatsens användare.
-
Ange Beskrivning.
-
För webbplats - ange https://<server>/.
-
För Återanrops-URL - ange https://<server>/.
note note NOTE Porten behöver inte anges. https://127.0.0.1/ fungerar för utveckling. -
När programmet har skapats letar du reda på Consumer (API) Key och Consumer (API) Secret. Den här informationen behövs för att konfigurera Twitter molntjänst.
Behörigheter permissions
I behörighetssektionen i Twitter Application Management:
-
Access: Välj
Read only
.- Andra alternativ stöds inte
-
Additional Permissions: Välj
Request email addresses from users
.- Om du inte väljer det här alternativet inkluderas inte AEM e-postadress.
- Twitter instruktioner innehåller information om ytterligare åtgärder.
Den enda REST-begäran som har gjorts för social inloggning är GET-konto/verifiera autentiseringsuppgifter.
Skapa en Twitter Connect-Cloud Service create-a-twitter-connect-cloud-service
The Adobe Granite OAuth-program och -leverantör -instans, som initieras genom att en molntjänstkonfiguration skapas, identifierar Twitter-programmet och den eller de medlemsgrupper som de nya användarna läggs till i.
-
Logga in med administratörsbehörighet på författarinstansen.
-
Från global navigering väljer du Tools > Cloud Services > Twitter Social login configuration.
-
Välj context path konfiguration.
Kontextsökvägen ska vara samma som den molnkonfigurationssökväg som du valde när du skapade/redigerade en community-plats.
-
Kontrollera om din kontextsökväg är aktiverad för att skapa molntjänster under den.
-
Gå till Tools > General > Configuration Browser. Välj kontext och redigera egenskaper. Aktivera molnkonfigurationer om de inte har aktiverats ännu.
- Se Configuration Browser-dokumentation för mer information.
-
Skapa/redigera Twitter molntjänstkonfiguration.
-
Title (Obligatoriskt) Ange en visningsrubrik som identifierar Twitter App. Vi rekommenderar att du använder samma namn som Visningsnamn för Twitter.
-
Consumer Key (Obligatoriskt) Ange Kundnyckel (API) för Twitter. Detta identifierar Adobe Granite OAuth-program och -leverantör -instans som har skapats från dialogrutan.
-
Consumer Secret (Obligatoriskt) Ange Consumer(API) Secret för Twitter App.
-
Create Users Om du markerar det här alternativet skapas en AEM användarpost och läggs till som medlem i de valda användargrupperna när du loggar in med ett Twitter-konto. Standard är markerat (rekommenderas starkt).
-
Mask User IDs Låt vara avmarkerat.
-
Add to User Groups välj Lägg till användargrupp om du vill välja en eller flera medlemsgrupper för den community som användarna ska läggas till på.
note note NOTE Grupper kan läggas till eller tas bort när som helst. Men befintliga användarmedlemskap påverkas inte. Automatiskt medlemskap gäller endast för nya användare som skapas efter den här fältuppdateringen. För webbplatser där anonyma användare är inaktiverade lägger du till användare i motsvarande community-medlemsgrupp som är avsedd för den stängda communitywebbplatsen. -
-
Välj SAVE och Publish.
Resultatet är ett Adobe Granite OAuth-program och -leverantör -instans som inte behöver ändras ytterligare. Standardomfattningen är standardbehörigheterna för Twitter-inloggning.
AEM Communities Twitter OAuth Provider aem-communities-twitter-oauth-provider
AEM Communities-konfigurationen utökar Adobe Granite OAuth-program och -leverantör -instans. Leverantören måste redigeras för att tillåta användaruppdateringar.
Om redigering är nödvändig, för varje AEM publiceringsinstans:
-
Logga in med administratörsbehörighet.
-
Navigera till Webbkonsol.
Exempel: http://localhost:4503/system/console/configMgr.
-
Hitta AEM Communities Twitter OAuth Provider.
-
Markera pennikonen som du vill öppna för redigering.
-
OAuth Provider ID (Obligatoriskt)
Standardvärdet är soco-twitter. Redigera inte.
-
Cloud Service Config
Standardvärdet är conf. Redigera inte.
-
OAuth Provider Service Config
Standardvärdet är /apps/social/twitterprovider/config/. Redigera inte.
-
User Path
Plats i databasen där användardata lagras. För en communitywebbplats, för att säkerställa behörighet för medlemmar att se varandras profil, bör sökvägen vara standardsökvägen /home/users/community.
-
Enable Params redigera inte
-
URL Parameters redigera inte
-
Update User
Om du markerar det här alternativet uppdateras användardata i databasen vid varje inloggning så att profiländringar eller ytterligare data som efterfrågas återspeglas. Standardvärdet är avmarkerat.
-
Nästa steg next-steps-1
Nästa steg är samma för både Facebook och Twitter:
Aktivera social inloggning enable-social-login
AEM Communities Sites Console aem-communities-sites-console
När en molntjänst har konfigurerats kan den aktiveras för den relevanta inställningen för social inloggning för en community-webbplats med Användarhantering Underpanelen Inställningar under communitywebbplatsen skapa eller hantering.
-
Välj den platskonfiguration där du sparade dina konfigurationer för social inloggning.
-
Ange molnkonfigurationer på fliken Allmänt.
-
På fliken Inställningar aktiverar du Social Logins och Spara.
Testa social inloggning test-social-login
- Säkerställ Adobe Granite OAuth-autentiseringshanterare har aktiverats för alla publiceringsinstanser
- Kontrollera att molntjänsterna har publicerats
- Kontrollera att communitywebbplatsen har publicerats
- Starta den publicerade webbplatsen i en webbläsare Till exempel http://localhost:4503/content/sites/engage/en.html
- Välj Login In
- Välj antingen Sign in with Facebook eller Sign in with Twitter
- Om du inte redan är inloggad på Facebook eller Twitter loggar du in med rätt autentiseringsuppgifter
- Du kan behöva bevilja behörighet beroende på vilken dialogruta som visas i Facebook- eller Twitter-appen
- Observera att verktygsfältet högst upp på sidan uppdateras för att återspegla den lyckade inloggningen
- Välj Profile: På profilsidan visas användarens avatarbild, förnamn och efternamn. Den visar även information från Facebook- eller Twitter-profilen enligt de fält/parametrar som tillåts.
OAuth-konfigurationer för AEM aem-platform-oauth-configurations
Adobe Granite OAuth-autentiseringshanterare adobe-granite-oauth-authentication-handler
The Adobe Granite OAuth Authentication Handler
är inte aktiverat som standard och måste vara aktiverat för alla AEM publiceringsinstanser.
Aktivera autentiseringshanteraren vid publicering genom att öppna OSGi-konfigurationen och spara den:
- Logga in med administratörsbehörighet
- Navigera till Webbkonsol
Till exempel http://localhost:4503/system/console/configMgr - Sök
Adobe Granite OAuth Authentication Handler
- Markera för att öppna konfigurationen för redigering
- Välj Save
Adobe Granite OAuth-program och -leverantör adobe-granite-oauth-application-and-provider
När en molntjänst för Facebook eller Twitter skapas, en instans av Adobe Granite OAuth Authentication Handler
skapas.
Så här söker du efter den skapade instansen för en Facebook- eller Twitter-app:
-
Logga in med administratörsbehörighet.
-
Navigera till Webbkonsol.
Exempel: http://localhost:4503/system/console/configMgr.
-
Hitta Adobe Granite OAuth-program och -provider.
- Leta reda på instansen där Client ID matchar App ID
Utom följande egenskaper lämnar du de andra egenskaperna i konfigurationen oförändrade:
-
Config ID
(Obligatoriskt) Konfigurations-ID:n för OAuth måste vara unika. Autogenereras när molntjänsten skapas.
-
Client ID
(Obligatoriskt) Det program-ID som angavs när molntjänsten skapades.
-
Client Secret
(Obligatoriskt) Programhemligheten som angavs när molntjänsten skapades.
-
Scope
(Valfritt) Ytterligare utrymme för vad som är tillåtet kan tillfrågas från leverantören. Standardomfånget omfattar de behörigheter som krävs för att tillhandahålla social autentisering och profildata.
-
Provider ID
(Obligatoriskt) Leverantörs-ID för AEM Communities anges när molntjänsten skapades. Redigera inte. För Facebook Connect är värdet soco-facebook. För Twitter Connect är värdet soco-twitter.
-
Groups
(Rekommenderas) En eller flera medlemsgrupper som användare har skapats i. För AEM Communities rekommenderar vi att du listar medlemsgruppen för communitywebbplatsen.
-
Callback URL
(Valfritt) URL konfigurerad med OAuth-providers för att dirigera om klienten tillbaka. Använd en relativ URL för att använda värddatorn för den ursprungliga begäran. Lämna tomt om du vill använda den ursprungligen begärda URL:en i stället. Suffixet"/callback/j_security_check" läggs automatiskt till på den här URL:en.
note note NOTE Domänen för återanropet måste vara registrerad hos providern (Facebook eller Twitter).
För varje konfiguration av OAuth-autentiseringshanterare skapas ytterligare två konfigurationer i instansen:
- Apache Jackrabbit Oak Default Sync Handler (org.apache.jackrabbit.oak.spi.security.authentication.external.impl.DefaultSyncHandler) - Inga redigeringar krävs, men du kan se hur Facebook-fält mappas till en CQ-användarprofilnod i användarfältet. Lägg även märke till att Sync Handler Name matchar Config Id för OAuth-providerkonfigurationen.
- Apache Jackrabbit Oak External Login Module (org.apache.jackrabbit.oak.spi.security.authentication.external.impl.ExternalLoginModuleFactory) - Inga redigeringar krävs där, men du kan lägga märke till att Identity Provider Name och Sync Handler Name är samma och pekar på motsvarande OAuth- respektive sync handler-konfigurationer.
Mer information finns i Autentisering med extern inloggningsmodul för Apache Oak.
OAuth User Traversal Performance oauth-user-traversal-performance
För communitysajter där hundratusentals användare registrerar sig med sina inloggningar på Facebook eller Twitter kan genomgången av den fråga som utfördes när en besökare använder sin inloggning via sociala medier förbättras genom att följande Oak-index läggs till.
Om traversal-varningar visas i loggarna bör du lägga till det här indexet.
Inloggad med administratörsbehörighet för en författarinstans:
-
Från global navigering: välj verktyg, CRX/DE Lite.
-
Skapa ett index med namnet ntBaseLucene-oauth från en kopia av ntBaseLucene:
- Under nod /oak:index
- Markera noden ntBaseLucene
- Välj Copy
- Välj
/oak:index
- Välj Paste
- Byt namn på kopian av ntBaseLucene till ntBaseLucene-oauth
-
Ändra egenskaperna för noden ntBaseLucene-oauth:
- indexPath: /oak:index/ntBaseLucene-oauth
- name: oauthid-123xxxx
- reindex: true
- reindexCount: 1
-
Under noden /oak:index/ntBaseLucene-oauth/indexRules/nt:base/properties:
-
Ta bort alla underordnade noder, förutom cqTags.
-
Byt namn på cqTags till oauthid-123xxxx
-
Ändra egenskaperna för noden oauthid-123xxxx
- name: oauthid-123xxxx
-
Välj Save All.
-
* För name oauthid-123, ersätt 123 med Facebook Program-ID eller Twitter Kundnyckel (API) som är värdet av Klient-ID i Adobe Granite OAuth-program och -leverantörkonfiguration.
Mer information och verktyg finns i Fråga och indexering.
Dispatcher-konfiguration dispatcher-configuration
Se Konfigurera Dispatcher för Communities.