Sdílet prostřednictvím


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.

  1. 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.)

  2. Klikněte na Službu pro správu a pak vyberte službu pro správu, například ManagementClient.

  3. Hodnota pole Název je uživatelské jméno identity služby pro správu.

  4. 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:

  1. Spusťte Visual Studio a vytvořte nový projekt konzolové aplikace.

  2. 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í

  1. Přidejte odkaz na System.Web.Extensions.

  2. 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

  3. 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

  1. 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;
            }
    
  2. 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

  1. Inicializace proxy služby pro správu

    ManagementService svc = CreateManagementServiceClient();
    
  2. Přidejte svého zprostředkovatele identity jako vystavitele.

    Issuer issuer = new Issuer
           {
           Name = identityProviderName
    };
           svc.AddToIssuers(issuer);
           svc.SaveChanges(SaveChangesOptions.Batch);
    
  3. Vytvořte zprostředkovatele identity.

    IdentityProvider identityProvider = new IdentityProvider()
    {
        DisplayName = identityProviderName,
        Description = identityProviderName,
        WebSSOProtocolType = "WsFederation",
        IssuerId = issuer.Id
    };
           svc.AddObject("IdentityProviders", identityProvider);
    
  4. 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);
    
  5. 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);
    
  6. 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

  1. Na stránce služby Access Control klikněte na odkaz Skupiny pravidel v části Vztahy důvěryhodnosti.

  2. Klikněte na některá z dostupných pravidel.

  3. Na stránce Upravit skupinu pravidel klikněte na odkaz Přidat pravidlo .

  4. 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 .

  5. Ponechte zbývající výchozí hodnoty.

  6. Klikněte na Uložit.

Právě jste vytvořili předávací pravidlo pro zprostředkovatele identity.