Útmutató: Az ACS felügyeleti szolgáltatás használata az AD FS 2.0 vállalati identitásszolgáltatóként való konfigurálásához
Frissítve: 2015. június 19.
Érintett kiadások: Azure
Érvényesség
Microsoft® Azure™ Access Control Service (ACS)
Microsoft Active Directory összevonási® szolgáltatások (AD FS) 2.0
Összefoglalás
Ez a témakör azt ismerteti, hogyan adhatja hozzá az identitásszolgáltatót egy névtérhez vagy függő entitás alkalmazásához. A feladat végrehajtásához használhatja az ACS felügyeleti szolgáltatást. A felügyeleti szolgáltatás különösen akkor hasznos, ha egyéni felhasználói felületet hoz létre az ACS kezeléséhez, és amikor automatizálja az új bérlők hozzáadását a 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 információk 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 követelményeket és a konfigurációs információkat.
Sorolja fel a szükséges lépéseket.
Ellenőrizze, hogy a konfiguráció sikeres-e.
Áttekintés
Az ACS felügyeleti szolgáltatás egy webszolgáltatás, amely elérhetővé teszi az ACS-funkciókat a kódban. Az ACS felügyeleti szolgáltatás minden ACS-szolgáltatást elérhet, beleértve az ACS felügyeleti portál felhasználói felületén elérhető szolgáltatásrészkészletet is.
Ha a Microsoftot identitásszolgáltatóként hozzáadja az ACS-hez, azzal újra felhasználhatja a vállalati identitáskezeléssel kapcsolatos befektetést a felhőalapú megoldásokhoz. Identitásszolgáltatóként való konfiguráláshoz meg kell írnia a megadott 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 információk 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 információk gyűjtése
Ez a lépés a szükséges konfigurációs adatok gyűjtését ismerteti. A következő adatokat kell összegyűjtenie:
A felügyeleti szolgáltatás identitásának felhasználóneve. Az alapértelmezett érték a ManagementClient.
A felügyeleti szolgáltatás identitásjelszója.
Névtér neve.
ACS-állomásnév: accesscontrol.windows.net
Aláíró tanúsítvány sztringje: Kérje le az AD FS aláíró tanúsítvány sztringet az üzemelő példányból.
A felügyeleti szolgáltatás identitásának felhasználónevét és jelszavát az alábbi eljárással keresheti meg.
Lépjen a Microsoft Azure felügyeleti portálra (https://manage.WindowsAzure.com), jelentkezzen be, majd kattintson az Active Directoryra. (Hibaelhárítási tipp: Az "Active Directory" elem hiányzik vagy nem érhető el) Egy Access Control-névtér kezeléséhez jelölje ki a névteret, majd kattintson a Kezelés gombra. (Vagy kattintson Access Control Névterek elemre, jelölje ki a névteret, majd kattintson a Kezelés gombra.)
Kattintson a Felügyeleti szolgáltatás elemre, majd válasszon ki egy felügyeleti szolgáltatást, például a ManagementClientet.
A Név mező értéke a felügyeleti szolgáltatás identitásának felhasználóneve.
A Hitelesítő adatok szakaszban kattintson a Jelszó elemre. A jelszó mezőben szereplő érték a felügyeleti szolgáltatás identitásjelszója.
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 végrehajtja az identitásszolgáltatóként hozzáadandó kódot:
Start menü Visual Studio és hozzon létre egy új konzolalkalmazás-projektet.
A Program osztályban rendelje hozzá a konfigurációs információk értékeit a modulhatókörrel rendelkező változókhoz. Az alábbi kódminta bemutatja, hogyan teheti ezt meg.
static string serviceIdentityUsernameForManagement = "ManagementClient"; static string serviceIdentityPasswordForManagement = "ManagementClientPasswordValue"; static string serviceNamespace = "MyNameSpaceNoDots"; static string acsHostName = "accesscontrol.windows.net"; static string signingCertificate = "Very long string representing ADFS signing certificate"; static string cachedSwtToken; static string identityProviderName = "My Other ADFS Identity Provider";
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óan néz ki:
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;
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 magában foglalja a felügyeleti szolgáltatás proxyjának megvalósítását.
A felügyeleti szolgáltatás proxyjának implementálása
Adja hozzá a következő metódust a Program osztályhoz.
public static ManagementService CreateManagementServiceClient() { string managementServiceHead = "v2/mgmt/service/"; string managementServiceEndpoint = string.Format("https://{0}.{1}/{2}", serviceNamespace, acsHostName, managementServiceHead); 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, string.Format("OAuth {0}", cachedSwtToken)); } private static string GetTokenFromACS() { // request a token from ACS WebClient client = new WebClient(); client.BaseAddress = string.Format("https://{0}.{1}", serviceNamespace, acsHostName); NameValueCollection values = new NameValueCollection(); values.Add("grant_type", "password"); values.Add("client_id", serviceIdentityUsernameForManagement); values.Add("username", serviceIdentityUsernameForManagement); values.Add("client_secret", serviceIdentityPasswordForManagement); values.Add("password", serviceIdentityPasswordForManagement); byte[] responseBytes = client.UploadValues("/v2/OAuth2-13/rp/AccessControlManagement", "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 identitásszolgáltatóként adja hozzá a korábban létrehozott felügyeleti szolgáltatás proxyt.
Az AD FS 2.0 hozzáadása identitásszolgáltatóként
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 }; svc.AddToIssuers(issuer); svc.SaveChanges(SaveChangesOptions.Batch);
Hozzon létre egy identitásszolgáltatót.
IdentityProvider identityProvider = new IdentityProvider() { DisplayName = identityProviderName, Description = identityProviderName, WebSSOProtocolType = "WsFederation", IssuerId = issuer.Id }; svc.AddObject("IdentityProviders", identityProvider);
Hozzon létre egy identitásszolgáltató aláírókulcsát a korábban beszerzett tanúsítvány alapján.
IdentityProviderKey identityProviderKey = new IdentityProviderKey() { DisplayName = "SampleIdentityProviderKeyDisplayName", Type = "X509Certificate", Usage = "Signing", Value = Convert.FromBase64String(signingCertificate), IdentityProvider = identityProvider, StartDate = startDate, EndDate = endDate, }; svc.AddRelatedObject(identityProvider, "IdentityProviderKeys", identityProviderKey);
Frissítse az identitásszolgáltató bejelentkezési címét.
IdentityProviderAddress realm = new IdentityProviderAddress() { Address = "http://SampleIdentityProvider.com/sign-in/", EndpointType = "SignIn", IdentityProvider = identityProvider, }; svc.AddRelatedObject(identityProvider, "IdentityProviderAddresses", realm); 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 = identityProvider.Id, RelyingPartyId = rp.Id }); } } svc.SaveChanges(SaveChangesOptions.Batch);
5. lépés – A munka tesztelése
A munka tesztelése
A Access Control Szolgáltatás lapon kattintson a Megbízhatósági kapcsolatok szakasz Szabálycsoportok hivatkozására.
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.
A többi alapértelmezett értéket hagyja meg.
Kattintson a Mentés gombra.
Most hozott létre egy átmenő szabályt az identitásszolgáltató számára.