Využití Facebook a Microsoft Account identit pro přihlášení k SharePoint 2013
V případě kdy potřebujeme zpřístupnit SharePoint pro externí uživatele, potřebujeme rozhodnout, jaké identity budeme pro externí uživatele využívat. SharePoint samozřejmě standardně využívá Active Directory účty, ale v závislosti na počtu a typu externích uživatelů, může být správa AD účtů pro externisty hodně náročnou a nepříjemnou činností.
Jedním z řešení tohoto problému, může být využití Facebook nebo Windows Live ID identit pro přístup do SharePointu.
Co budeme potřebovat:
- Windows Azure Account s Access Control Service (ACS)
- Facebook account integrovaný s Facebook Developer Aplication
- SharePoint 2013
- X.509 certifikát pro digitální podepsání tokenů vydaných Azure ACS
Postup:
- Vytvoření FaceBook aplikace, která podporuje Facebook Login
- V Azure ACS vytvoříme nový Identity Provider, Relying Party a Rule Group
- Na závěr provedeme konfiguraci SharePointu, kde přidáme Azure ACS jako Trusted Identity Providera
Vytvoření Azure ACS namespace
V Azure portálu vybereme Access Control a zadáme vhodný název.
Facebook Aplikace
Na https://developers.facebook.com/apps
Zvolíme vytvoření nové aplikace
Zvolíme vhodné jméno
Jako Site URL zadáme jméno Azure ACL NameSpace zadané dříve do Azure portálu.
App ID a App Secret budeme potřebovat pro konfiguraci Identity Providera v ACS.
Konfigurace ACS Identity Provider
Zvolíme Manage
V ACS konfiguraci si můžeme všimnout, že Windows Live ID je již předkonfigurovaný. Potřebujeme tedy nakonfigurovat pouze Facebook jako Identity Providera.
Zadáme údaje, které jsme získali z Facebook aplikace. Klikneme na Save.
V dalším kroku budeme konfigurovat Relying Party – v tomto případě tedy SharePoint. Zadáme příslušné URL.
V Rule groups poté vygenerujeme Rules pro jednotlivé Identity Providery.
V dalším kroku nahrajeme do ACS certifikát pro podepisování tokenů.
V tomto případě je použít certifikát od Windows CA, ale pro testovací účely je možné použít i například self-signed certifikát, který můžeme získat tímto způsobem.
MakeCert.exe -r -pe -n "CN=osharepoint.accesscontrol.windows.net" -sky exchange -ss my -len 2048 -e 08/04/2015
Na závěr můžeme přikročit ke konfiguraci SharePointu
.V SharePoint Management Shell zadáme:
$realm = "https://mtshowosp"
$signinurl = "https://osharepoint.accesscontrol.windows.net:443/v2/wsfederation?wa=wsignin1.0&wtrealm=http%3a%2f%2fmtshowosp%2f"
$certloc = "C:\i\osharepoint.cer"
$rootcert = Get-PfxCertificate $certloc
New-SPTrustedRootAuthority "Windows Azure ACS" -Certificate $rootcert
$cert = New-Object System.Security.Cryptography.X509Certificates.X509Certificate2($certloc)
$map1 = New-SPClaimTypeMapping -IncomingClaimType "https://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress" -IncomingClaimTypeDisplayName "Email" -SameAsIncoming
$map2 = New-SPClaimTypeMapping -IncomingClaimType "https://schemas.xmlsoap.org/ws/2005/05/identity/claims/name" -IncomingClaimTypeDisplayName "Display Name" –LocalClaimType "https://schemas.xmlsoap.org/ws/2005/05/identity/claims/givenname"
$map3 = New-SPClaimTypeMapping -IncomingClaimType "https://www.facebook.com/claims/AccessToken" -IncomingClaimTypeDisplayName "Access Token" -SameAsIncoming
$map4 = New-SPClaimTypeMapping -IncomingClaimType "https://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameidentifier" -IncomingClaimTypeDisplayName "Name Identifier" –LocalClaimType "https://schemas.xmlsoap.org/ws/2005/05/identity/claims/upn"
$map5 = New-SPClaimTypeMapping -IncomingClaimType "https://schemas.microsoft.com/ws/2008/06/identity/claims/expiration" -IncomingClaimTypeDisplayName "Expiration" -SameAsIncoming
New-SPTrustedIdentityTokenIssuer -Name "Facebook/LiveID" -Description "Facebook/LiveID" -Realm $realm -ImportTrustCertificate $cert -ClaimsMappings $map1,$map2,$map3,$map4,$map5 -SignInUrl $signinurl -IdentifierClaim $map1.InputClaimType
V Application Management zvolíme Authentication provider a vybereme právě vytvořený Identity Provider Facebook/LiveID
Dále musíme povolit přístup uživatelům ověřeným přes FB a LiveID. V User Policy zvolíme Add Users:
Vybereme All Zones:
A vybereme všechny uživatele od našeho providera.
A nakonec přidělíme potřebná oprávnění
Závěrem provede otestování. Pro přihlášení vybereme FaceBook/LiveID
Vybereme příslušný zdroj identit
V případě FB potvrdíme, že povolujeme předání údajů externí aplikaci.
A jsme přihlášeni FaceBook účtem. Stejně se můžeme přihlásit pomocí Live ID.
Ověření pomocí FaceBook a LiveID účtů prostřednictvím Azure ACS může být velice užitečný pomocník zejména pro různé „extranety“, kde je potřeba spolupráce s větším počtem externích subjektů, kterým nechceme nebo nemůžeme vytvářet účty v Active Directory.
Ondřej Štefka
Mainstream Technologies