Postupy: Konfigurace služby AD FS 2.0 jako zprostředkovatele identity Enterprise pomocí služby ACS Management Service
Aktualizováno: 19. června 2015
Platí pro: Azure
Platí pro
Služba Microsoft® Azure™ Access Control (ACS)
Microsoft Active Directory® Federation Services (AD FS) 2.0
Souhrn
Toto téma vysvětluje, jak přidat zprostředkovatele identity do oboru názvů nebo aplikace předávající strany. Chcete-li provést tuto úlohu, můžete službu ACS Management Service. Služba pro správu je užitečná zejména při vytváření vlastního uživatelského rozhraní pro správu služby ACS a při automatizaci přidávání nových tenantů pro řešení SaaS (Software as a Service).
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žadavky a informace o konfiguraci.
Uveďte požadované kroky.
Ověřte, že konfigurace byla úspěšná.
Přehled
Služba ACS Management Service je webová služba, která zpřístupňuje funkce služby ACS kódu. Služba správy služby ACS má přístup ke všem funkcím služby ACS, včetně podmnožina funkcí, která je dostupná v uživatelském rozhraní portálu pro správu služby ACS.
Přidání Microsoftu jako zprostředkovatele identity do služby ACS umožňuje znovu použít investice provedené ve správě podnikových identit pro cloudová řešení. Pokud chcete nakonfigurovat 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 vysvětluje, 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 Výchozí hodnota je ManagementClient.
Heslo identity služby pro správu
Název oboru názvů
Název hostitele ACS: accesscontrol.windows.net
Podpisový řetězec certifikátu: Získejte řetězec podpisového certifikátu služby AD FS z vašeho nasazení.
Pokud chcete najít uživatelské jméno a heslo služby pro správu, použijte následující postup.
Přejděte na portál pro správu Microsoft Azure (https://manage.WindowsAzure.com), přihlaste se a klikněte na Active Directory. (Tip pro řešení potíží: Položka Active Directory chybí nebo není k dispozici) Pokud chcete spravovat Access Control obor názvů, vyberte obor názvů a klikněte na Spravovat. (Nebo klikněte na Access Control Obory názvů, vyberte obor názvů a potom klikněte na Spravovat.)
Klikněte na Službu pro správu a pak vyberte službu pro správu, například ManagementClient.
Hodnota pole Název je uživatelské jméno identity služby pro správu.
V části Přihlašovací údaje klikněte na Heslo. Hodnota v poli heslo je heslo identity služby pro správu.
Po shromáždění požadovaných informací vytvořte ukázkovou konzolovou aplikaci, která spustí kód pro přidání jako zprostředkovatele identity:
Spusťte Visual Studio a vytvořte nový projekt konzolové aplikace.
Ve třídě Program přiřaďte hodnoty informací o konfiguraci proměnným s oborem modulu. Následující ukázka kódu ukazuje, jak to může být provedeno.
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";
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;
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 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; }
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, 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; }
Krok 4 – Přidání zprostředkovatele identity
Tento krok přidá jako zprostředkovatele identity pomocí proxy serveru služby pro správu, který jste vytvořili dříve.
Přidání služby AD FS 2.0 jako zprostředkovatele identity
Inicializace proxy služby pro správu
ManagementService svc = CreateManagementServiceClient();
Přidejte svého zprostředkovatele identity jako vystavitele.
Issuer issuer = new Issuer { Name = identityProviderName }; svc.AddToIssuers(issuer); svc.SaveChanges(SaveChangesOptions.Batch);
Vytvořte zprostředkovatele identity.
IdentityProvider identityProvider = new IdentityProvider() { DisplayName = identityProviderName, Description = identityProviderName, WebSSOProtocolType = "WsFederation", IssuerId = issuer.Id }; svc.AddObject("IdentityProviders", identityProvider);
Vytvořte podpisový klíč zprostředkovatele identity na základě certifikátu, který jste získali dříve.
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);
Aktualizujte přihlašovací adresu zprostředkovatele identity.
IdentityProviderAddress realm = new IdentityProviderAddress() { Address = "http://SampleIdentityProvider.com/sign-in/", EndpointType = "SignIn", IdentityProvider = identityProvider, }; svc.AddRelatedObject(identityProvider, "IdentityProviderAddresses", realm); 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 = identityProvider.Id, RelyingPartyId = rp.Id }); } } svc.SaveChanges(SaveChangesOptions.Batch);
Krok 5 – Testování práce
Otestování práce
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.