Postupy: Konfigurace Facebooku jako zprostředkovatele internetových identit pomocí služby ACS Management Service
Aktualizováno: 19. června 2015
Platí pro: Azure
Platí pro
Služba Microsoft® Azure™ Access Control (ACS)
Facebook
Souhrn
Toto téma popisuje základní kroky potřebné pro přidání Facebooku jako zprostředkovatele identity. Facebook je možné přidat jako zprostředkovatele identity do služby ACS pomocí portálu pro správu nebo ho můžete automatizovat pomocí služby ACS Management Service. Práce se službou pro správu je užitečná například ve scénářích, kdy vytváříte vlastní uživatelské rozhraní pro správu služby ACS nebo při automatizaci onboardingu nového tenanta pro řešení SaaS (Software as a Service) s více tenanty.
Obsah
Cíle
Přehled
Přehled kroků
Krok 1 – Shromažďování informací o konfiguraci
Krok 2 – Přidání odkazů na požadované služby a sestavení
Krok 3 – Implementace proxy služby pro správu
Krok 4 – Přidání zprostředkovatele identity
Krok 5 – Testování práce
Cíle
Identifikujte požadované požadavky a informace o konfiguraci.
Uveďte kroky potřebné k přidání Facebooku jako zprostředkovatele identity.
Otestujte, zda je konfigurace úspěšná.
Přehled
Služba pro správu je webová služba, která je jednou z klíčových komponent služby ACS. Služba pro správu zveřejňuje funkce, které jsou k dispozici prostřednictvím uživatelského rozhraní portálu pro správu. Na portálu pro správu je možné provést také cokoli, co je možné provést pomocí služby pro správu. Přidání Facebooku jako zprostředkovatele identity do služby ACS vám umožní ušetřit vývoj a údržbu mechanismu správy identit v internetovém měřítku. Abyste mohli provést úlohu konfigurace Facebooku jako zprostředkovatele identity, musíte napsat kód, který se řídí konkrétními kroky. Toto téma popisuje tyto základní kroky.
Přehled kroků
Krok 1 – Shromažďování informací o konfiguraci
Krok 2 – Přidání odkazů na požadované služby a sestavení
Krok 3 – Implementace proxy služby pro správu
Krok 4 – Přidání zprostředkovatele identity
Krok 5 – Testování práce
Krok 1 – Shromažďování informací o konfiguraci
Tento krok identifikuje a ukazuje, jak shromáždit požadované informace o konfiguraci. Potřebujete shromáždit následující informace:
Uživatelské jméno identity služby pro správu – ManagementClient.
Heslo identity služby pro správu – Získání hesla identity služby pro službu pro správu:
Přihlaste se k portálu pro správu služeb Access Control.
V části Správa klikněte na odkaz Služby pro správu .
Na stránce Služba pro správu klikněte na odkaz ManagementClient (ManagementClient je skutečné uživatelské jméno služby).
V části Přihlašovací údaje klikněte na symetrický klíč nebo odkaz Heslo . Hodnota v každé z nich je stejná. Toto je heslo.
Obor názvů vaší služby
Název hostitele ACS – obvykle accesscontrol.windows.net.
ID aplikace Facebook a tajný kód aplikace – postupujte podle pokynů v tématu Postupy: Konfigurace Facebooku jako zprostředkovatele identity.
Po shromáždění požadovaných informací vytvořte ukázkovou konzolovou aplikaci, která spustí kód pro přidání Facebooku jako zprostředkovatele identity:
Otevřete Visual Studio ® 2010 a vytvořte nový projekt konzolové aplikace.
Ve třídě Program přiřaďte informace shromážděné dříve proměnným oboru modulu pomocí kódu podobného následujícímu.
static string serviceIdentityUsernameForManagement = "ManagementClient";
static string serviceIdentityPasswordForManagement = "My Password for my ManagementClient";
static string serviceNamespace = "MyNameSpaceNoDots";
static string acsHostName = "accesscontrol.windows.net";
static string acsManagementServicesRelativeUrl = "v2/mgmt/service/";
static string cachedSwtToken;
static string identityProviderName = "Facebook";
static string facebookAppId = "Your Facebook AppID";
static string facebookAppSecret = "Your Facebook Secret";
Krok 2 – Přidání odkazů na požadované služby a sestavení
Tento krok identifikuje a přidá požadované závislosti do služeb a sestavení.
Přidání požadovaných závislostí do služeb a sestavení
Přidejte odkaz na System.Web.Extensions.
Přidejte odkaz na službu pro správu. Adresa URL služby pro správu je jedinečná pro váš obor názvů a vypadá podobně jako následující:
https:// UOURNAMESPACE.accesscontrol.windows.net/v2/mgmt/service
Přidejte následující deklarace.
using System.Web; using System.Net; using System.Data.Services.Client; using System.Collections.Specialized; using System.Web.Script.Serialization; using System.Globalization; using System.Runtime.Serialization.Json; using ConsoleApplication1.ServiceReference1;
Všimněte si poslední deklarace ConsoleApplication1.ServiceReference1, může se v případě změny výchozích hodnot při vytváření konzolové aplikace nebo při přidávání odkazu na službu pro správu lišit.
Krok 3 – Implementace proxy služby pro správu
Tento krok vytvoří metodu zapouzdření implementace proxy služby pro správu.
Implementace proxy služby pro správu
Do třídy Program přidejte následující metodu.
public static ManagementService CreateManagementServiceClient() { string managementServiceEndpoint = String.Format(CultureInfo.InvariantCulture, "https://{0}.{1}/{2}", serviceNamespace, acsHostName, acsManagementServicesRelativeUrl); ManagementService managementService = new ManagementService(new Uri(managementServiceEndpoint)); managementService.SendingRequest += GetTokenWithWritePermission; return managementService; }
Implementujte metodu GetTokenWithWritePermission a její pomocné metody. Přidá token SWT OAuth do hlavičky autorizace požadavku HTTP.
public static void GetTokenWithWritePermission(object sender, SendingRequestEventArgs args) { GetTokenWithWritePermission((HttpWebRequest)args.Request); } public static void GetTokenWithWritePermission(HttpWebRequest args) { if (cachedSwtToken == null) { cachedSwtToken = GetTokenFromACS(); } args.Headers.Add(HttpRequestHeader.Authorization, "Bearer " + cachedSwtToken); } private static string GetTokenFromACS() { // // Request a token from ACS // WebClient client = new WebClient(); client.BaseAddress = string.Format(CultureInfo.CurrentCulture, "https://{0}.{1}", serviceNamespace, acsHostName); NameValueCollection values = new NameValueCollection(); values.Add("grant_type", "client_credentials"); values.Add("client_id", serviceIdentityUsernameForManagement); values.Add("client_secret", serviceIdentityPasswordForManagement); values.Add("scope", client.BaseAddress + acsManagementServicesRelativeUrl); byte[] responseBytes = client.UploadValues("/v2/OAuth2-13", "POST", values); string response = Encoding.UTF8.GetString(responseBytes); // Parse the JSON response and return the access token JavaScriptSerializer serializer = new JavaScriptSerializer(); Dictionary<string, object> decodedDictionary = serializer.DeserializeObject(response) as Dictionary<string, object>; return decodedDictionary["access_token"] as string; }
Krok 4 – Přidání zprostředkovatele identity
Tento krok přidá Facebook jako zprostředkovatele identity pomocí proxy serveru služby pro správu, který jste vytvořili dříve.
Přidání Facebooku jako zprostředkovatele identity
V metodě Main inicializuje proxy služby pro správu.
ManagementService svc = CreateManagementServiceClient();
Přidejte svého zprostředkovatele identity jako vystavitele.
Issuer issuer = new Issuer { Name = identityProviderName + “-” + facebookAppId }; svc.AddToIssuers(issuer); svc.SaveChanges(SaveChangesOptions.Batch);
Vytvořte zprostředkovatele identity.
var facebook = new IdentityProvider { DisplayName = identityProviderName, LoginLinkName = "Facebook", LoginParameters = "email", WebSSOProtocolType = "Facebook", IssuerId = issuer.Id }; svc.AddObject("IdentityProviders", facebook);
Vytvořte podpisový klíč zprostředkovatele identity na základě certifikátu, který jste získali dříve.
var facebookKeys = new[] { new IdentityProviderKey { IdentityProvider = facebook, StartDate = DateTime.UtcNow, EndDate = DateTime.UtcNow.AddYears(1), Type = "ApplicationKey", Usage = "ApplicationId", Value = Encoding.UTF8.GetBytes(facebookAppId) }, new IdentityProviderKey { IdentityProvider = facebook, StartDate = DateTime.UtcNow, EndDate = DateTime.UtcNow.AddYears(1), Type = "ApplicationKey", Usage = "ApplicationSecret", Value = Encoding.UTF8.GetBytes(facebookAppSecret) } }; foreach (var key in facebookKeys) { svc.AddRelatedObject(facebook, "IdentityProviderKeys", key); } svc.SaveChanges(SaveChangesOptions.Batch);
Zpřístupněte zprostředkovatele identity předávajícím stranám s výjimkou služby pro správu.
foreach (RelyingParty rp in svc.RelyingParties) { // skip the built-in management RP. if (rp.Name != "AccessControlManagement") { svc.AddToRelyingPartyIdentityProviders(new RelyingPartyIdentityProvider() { IdentityProviderId = facebook.Id, RelyingPartyId = rp.Id }); } } svc.SaveChanges(SaveChangesOptions.Batch);
Krok 5 – Testování práce
Otestování práce
Přihlaste se k portálu pro správu služeb Access Control.
Na stránce služby Access Control klikněte na odkaz Skupiny pravidel v části Vztahy důvěryhodnosti.
Klikněte na některá z dostupných pravidel.
Na stránce Upravit skupinu pravidel klikněte na odkaz Přidat pravidlo .
Na stránce Přidat pravidlo deklarace identity zvolte nově přidaného zprostředkovatele identity z rozevíracího seznamu v části Vystavitel deklarací identity .
Ponechte zbývající výchozí hodnoty.
Klikněte na Uložit.
Právě jste vytvořili předávací pravidlo pro zprostředkovatele identity.