Megosztás a következőn keresztül:


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

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

  2. Kattintson a Felügyeleti szolgáltatás elemre, majd válasszon ki egy felügyeleti szolgáltatást, például a ManagementClientet.

  3. A Név mező értéke a felügyeleti szolgáltatás identitásának felhasználóneve.

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

  1. Start menü Visual Studio és hozzon létre egy új konzolalkalmazás-projektet.

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

  1. Adjon hozzá egy hivatkozást a System.Web.Extensions fájlhoz.

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

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

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

  1. Inicializálja a felügyeleti szolgáltatás proxyt.

    ManagementService svc = CreateManagementServiceClient();
    
  2. 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);
    
  3. 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);
    
  4. 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);
    
  5. 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);
    
  6. 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

  1. A Access Control Szolgáltatás lapon kattintson a Megbízhatósági kapcsolatok szakasz Szabálycsoportok hivatkozására.

  2. Kattintson bármelyik elérhető szabályra.

  3. A Szabálycsoport szerkesztése lapon kattintson a Szabály hozzáadása hivatkozásra.

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

  5. A többi alapértelmezett értéket hagyja meg.

  6. Kattintson a Mentés gombra.

Most hozott létre egy átmenő szabályt az identitásszolgáltató számára.