Útmutató: Az ACS felügyeleti szolgáltatás használata a Facebook internetes identitásszolgáltatóként való konfigurálásához
Frissítve: 2015. június 19.
A következőkre vonatkozik: Azure
Érvényesség
Microsoft® Azure™ Access Control Service (ACS)
Facebook
Összefoglalás
Ez a témakör a Facebook identitásszolgáltatóként való hozzáadásához szükséges alapvető lépéseket ismerteti. A Facebookot identitásszolgáltatóként a felügyeleti portálon lehet hozzáadni az ACS-hez, vagy automatizálható az ACS felügyeleti szolgáltatással. A felügyeleti szolgáltatás használata hasznos lehet például olyan helyzetekben, amikor egyéni felhasználói felületet hoz létre az ACS kezeléséhez, vagy amikor automatizálja egy új bérlő előkészítését több-bérlős szolgáltatott szoftver (SaaS) megoldásokhoz.
Tartalom
Célkitűzések
Áttekintés
A lépések összefoglalása
1. lépés – Konfigurációs adatok gyűjtése
2. lépés – Hivatkozások hozzáadása a szükséges szolgáltatásokhoz és szerelvényekhez
3. lépés – A felügyeleti szolgáltatás proxyjának implementálása
4. lépés – Identitásszolgáltató hozzáadása
5. lépés – A munka tesztelése
Célkitűzések
Azonosítsa a szükséges előfeltételeket és konfigurációs információkat.
Sorolja fel a Facebook identitásszolgáltatóként való hozzáadásához szükséges lépéseket.
Ellenőrizze, hogy a konfiguráció sikeres-e.
Áttekintés
A Felügyeleti szolgáltatás egy webszolgáltatás, amely az ACS egyik legfontosabb összetevője. A felügyeleti szolgáltatás a Felügyeleti portál felhasználói felületén elérhető funkciókat tesz elérhetővé. A felügyeleti portálon elvégezhető feladatok a felügyeleti szolgáltatással is elvégezhetők. Ha a Facebookot identitásszolgáltatóként hozzáadja az ACS-hez, azzal megtakaríthatja az internetes szintű identitáskezelési mechanizmus fejlesztését és fenntartását. Ahhoz, hogy a Facebookot identitásszolgáltatóként konfigurálhassa, meg kell írnia a konkrét lépéseket követő kódot. Ez a témakör ezeket az alapvető lépéseket ismerteti.
A lépések összefoglalása
1. lépés – Konfigurációs adatok gyűjtése
2. lépés – Hivatkozások hozzáadása a szükséges szolgáltatásokhoz és szerelvényekhez
3. lépés – A felügyeleti szolgáltatás proxyjának implementálása
4. lépés – Identitásszolgáltató hozzáadása
5. lépés – A munka tesztelése
1. lépés – Konfigurációs adatok gyűjtése
Ez a lépés azonosítja és bemutatja, hogyan gyűjtheti össze a szükséges konfigurációs adatokat. A következő információkat kell összegyűjtenie:
Felügyeleti szolgáltatás identitásának felhasználóneve – ManagementClient.
Felügyeleti szolgáltatás identitásjelszava – A felügyeleti szolgáltatáshoz tartozó szolgáltatásidentitás-jelszó beszerzése:
Jelentkezzen be a Access Control Szolgáltatáskezelési portálra.
A Felügyelet szakaszban kattintson a Felügyeleti szolgáltatás hivatkozásra.
A Felügyeleti szolgáltatás lapon kattintson a ManagementClient hivatkozásra (a ManagementClient a szolgáltatás tényleges felhasználóneve).
A Hitelesítő adatok szakaszban kattintson a szimmetrikus kulcsra vagy a Jelszó hivatkozásra. Az egyes értékek megegyeznek. Ez a jelszó.
A szolgáltatás névtere
ACS-állomásnév – általában accesscontrol.windows.net.
Facebook-alkalmazásazonosító és alkalmazáskulcs – Kövesse a Következő útmutató utasításait: A Facebook konfigurálása identitásszolgáltatóként.
A szükséges információk összegyűjtése után az alábbi lépéseket követve hozzon létre egy minta konzolalkalmazást, amely futtatja a Facebook identitásszolgáltatóként való hozzáadására szolgáló kódot:
Nyissa meg Visual Studio ® 2010-et, és hozzon létre egy új konzolalkalmazás-projektet.
A Program osztályban rendelje hozzá a korábban gyűjtött adatokat a modul hatókörének változóihoz az alábbihoz hasonló kód használatával.
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";
2. lépés – Hivatkozások hozzáadása a szükséges szolgáltatásokhoz és szerelvényekhez
Ez a lépés azonosítja és hozzáadja a szükséges függőségeket a szolgáltatásokhoz és szerelvényekhez.
A szükséges függőségek hozzáadása a szolgáltatásokhoz és szerelvényekhez
Adjon hozzá egy hivatkozást a System.Web.Extensions fájlhoz.
Adjon hozzá egy szolgáltatáshivatkozást a felügyeleti szolgáltatáshoz. A felügyeleti szolgáltatás URL-címe egyedi a névtérben, és az alábbihoz hasonló:
https:// YOURNAMESPACE.accesscontrol.windows.net/v2/mgmt/service
Adja hozzá a következő deklarációkat.
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;
Figyelje meg az utolsó deklarációt, a ConsoleApplication1.ServiceReference1-et, amely a konzolalkalmazás létrehozásakor vagy a felügyeleti szolgáltatáshoz való hivatkozás hozzáadásakor módosította az alapértelmezett értékeket.
3. lépés – A felügyeleti szolgáltatás proxyjának implementálása
Ez a lépés létrehoz egy metódust, amely a felügyeleti szolgáltatás proxyjának megvalósítását foglalja magában.
A felügyeleti szolgáltatás proxyjának megvalósítása
Adja hozzá a következő metódust a Program osztályhoz.
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; }
Implementálja a GetTokenWithWritePermission metódust és annak segédmetódusait. Hozzáadja az SWT OAuth-jogkivonatot a HTTP-kérés engedélyezési fejlécéhez.
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; }
4. lépés – Identitásszolgáltató hozzáadása
Ez a lépés hozzáadja a Facebookot identitásszolgáltatóként a korábban létrehozott felügyeleti szolgáltatás proxyjával.
Facebook hozzáadása identitásszolgáltatóként
A Main metódusban inicializálja a felügyeleti szolgáltatás proxyt.
ManagementService svc = CreateManagementServiceClient();
Adja hozzá identitásszolgáltatóját kiállítóként.
Issuer issuer = new Issuer { Name = identityProviderName + “-” + facebookAppId }; svc.AddToIssuers(issuer); svc.SaveChanges(SaveChangesOptions.Batch);
Hozzon létre egy identitásszolgáltatót.
var facebook = new IdentityProvider { DisplayName = identityProviderName, LoginLinkName = "Facebook", LoginParameters = "email", WebSSOProtocolType = "Facebook", IssuerId = issuer.Id }; svc.AddObject("IdentityProviders", facebook);
Hozzon létre egy identitásszolgáltató aláírókulcsát a korábban beszerzett tanúsítvány alapján.
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);
Tegye elérhetővé az identitásszolgáltatót a függő entitások számára, kivéve a felügyeleti szolgáltatást.
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);
5. lépés – A munka tesztelése
A munka tesztelése
Jelentkezzen be a Access Control Szolgáltatáskezelési portálra.
A Access Control Szolgáltatás lapon kattintson a Szabálycsoportok hivatkozásra a Megbízhatósági kapcsolatok szakaszban.
Kattintson bármelyik elérhető szabályra.
A Szabálycsoport szerkesztése lapon kattintson a Szabály hozzáadása hivatkozásra.
A Jogcímszabály hozzáadása lapon válassza ki az újonnan hozzáadott identitásszolgáltatót a Jogcímkibocsátó szakasz legördülő listájából.
Hagyja meg a többi alapértelmezett értéket.
Kattintson a Mentés gombra.
Most hozott létre egy átmenő szabályt az identitásszolgáltató számára.