Share via


ACS-federatieve toepassingen en -service implementeren in Azure

Van toepassing op

  • Microsoft Azure Active Directory Access Control (ook wel Access Control Service of ACS genoemd)

  • Windows Identity Foundation (WIF)

  • Microsoft Azure

Samenvatting

In dit onderwerp worden de richtlijnen samengevoegd waarmee u rekening moet houden wanneer u toepassingen en services ontwikkelt die gebruikmaken van ACS en die worden geïmplementeerd in Azure.

Doelen

  1. Dynamisch gegenereerde poorten omzeilen met Compute Emulator.

  2. Wif-runtime (Windows Identity Foundation) implementeren in Azure.

  3. Cookies versleutelen met RSA.

  4. Configureer assembly's die worden aangeroepen via weerspiegeling om te worden geïmplementeerd in Azure.

Dynamisch gegenereerde poorten omzeilen met Compute Emulator

Deze sectie is relevant wanneer u webtoepassingen maakt. Dit is niet relevant wanneer u webservices maakt. Compute Emulator maakt deel uit van Azure SDK-hulpprogramma's. U kunt deze gebruiken om uw toepassing uit te voeren, te testen, fouten op te sporen en af te stemmen voordat u deze implementeert als gehoste service in Azure. In Compute Emulator is het niet mogelijk om een uniek IP-adres toe te wijzen. Reken Emulator probeert de aangevraagde poort toe te wijzen. Als deze poort niet beschikbaar is, wordt het volgende beste beschikbare poortnummer toegewezen. Dit betekent dat uw service in de Compute-Emulator mogelijk een ander poortnummer heeft toegewezen dan het poortnummer dat u in het definitiebestand hebt opgegeven. Zie Overzicht van de Windows Azure Compute-Emulator (https://go.microsoft.com/fwlink/?LinkId=221212) voor meer informatie over compute-Emulator.

Als Compute Emulator een ander IP-adres toewijst dan het IP-adres dat is geconfigureerd als de retour-URL in de ACS-beheerportal, worden geverifieerde aanvragen omgeleid naar de URL die is geconfigureerd in het veld Retour-URL van de relying party-configuratie, maar er bestaat geen overeenkomende pagina in deze URL. Als gevolg hiervan krijgt u een lege pagina te zien.

Als u dit gedrag wilt omzeilen, configureert u de openbare poort van uw cloudwebtoepassing naar een poort die beschikbaar is op uw computer. Vervolgens wijst Compute Emulator geen willekeurige poort toe om een botsing te voorkomen.

Het eindpunt configureren voor het gebruik van een beschikbare poort

  1. Als u de opdrachtprompt wilt openen, klikt u op Startmenu, typt u cmd en drukt u op Enter.

  2. Voer de volgende opdracht uit om de lijst met IP-adressen van lokale hosts met gebruikte poorten weer te geven: netstat –a -n | findstr 127.0.0.1

  3. Scan de lijst en identificeer een poort die momenteel niet wordt gebruikt. U gebruikt deze poort in de volgende stappen.

  4. Dubbelklik in Solution Explorer op uw rol, die zich bevindt onder de map Rollen in het cloudproject. De pagina met roleigenschappen wordt geopend.

  5. Klik op de pagina Eigenschappen van webrol op het tabblad Eindpunten .

  6. Geef in het bestand **Openbare poort ** de poortwaarde op die u hebt geïdentificeerd in stap 3.

  7. Druk op Ctrl+S om uw werk op te slaan.

Windows Identity Foundation-runtime implementeren in Windows Azure

Windows Identity Foundation (WIF) is een out-of-band runtime die moet worden geïnstalleerd op de computer, zodat uw claimbewuste toepassing deze kan gebruiken. WIF is niet standaard geïnstalleerd op Azure-exemplaren. Als u uw cloudclaimbewuste toepassing wilt uitvoeren, moet u WIF-runtime beschikbaar maken op het Azure-exemplaar. De eenvoudigste manier is om dit te doen, is door de WIF-assembly op te nemen met het implementatiepakket.

De WIF-assembly opnemen met het Windows Azure-implementatiepakket

  1. Zoek in de Solution Explorer uw claimbewuste toepassing.

  2. Vouw de map Verwijzingen uit .

  3. Zoek de assembly Microsoft.IdentityModel onder de map Verwijzingen .

  4. Klik met de rechtermuisknop op de assembly en klik vervolgens op Eigenschappen.

  5. Geef in het eigenschappenvenster **Lokaal kopiëren ** op als Waar en Specifieke versie als Onwaar.

Cookies versleutelen met RSA

Deze sectie is relevant wanneer u webtoepassingen maakt. Standaard beveiligt WIF cookies cryptografisch met behulp van DPAPI (Data Protection Application Programming Interfaces). DPAPI is niet beschikbaar in Azure. Om ervoor te zorgen dat uw cloudclaimbewuste webtoepassing correct functioneert wanneer deze wordt geïmplementeerd in Azure, moet u cookiesversleutelingsfunctionaliteit toevoegen met RSA.

Cookies versleutelen met RSA

  1. Zoek in de Solution Explorer uw cloudclaimbewuste webtoepassing.

  2. Open het bestand global.asax.cs, de code achter het bestand global.asax, in de Visual Studio-editor.

  3. Voeg de volgende declaraties toe:

    using Microsoft.IdentityModel.Tokens;
    using Microsoft.IdentityModel.Web;
    using Microsoft.IdentityModel.Web.Configuration;
    
  4. Voeg de volgende code toe:

    void OnServiceConfigurationCreated(object sender, ServiceConfigurationCreatedEventArgs e)
    {
        //
        // Use the <serviceCertificate> to protect the cookies that are
        // sent to the client.
        //
        List<CookieTransform> sessionTransforms =
            new List<CookieTransform>(new CookieTransform[] {
            new DeflateCookieTransform(), 
            new RsaEncryptionCookieTransform(e.ServiceConfiguration.ServiceCertificate),
            new RsaSignatureCookieTransform(e.ServiceConfiguration.ServiceCertificate)  });
        SessionSecurityTokenHandler sessionHandler = new SessionSecurityTokenHandler(sessionTransforms.AsReadOnly());
        e.ServiceConfiguration.SecurityTokenHandlers.AddOrReplace(sessionHandler);
    }
    
    void Application_Start(object sender, EventArgs e)
    {
        FederatedAuthentication.ServiceConfigurationCreated += OnServiceConfigurationCreated;
    

    Notitie

    Als u de Application_Start gebeurtenis-handler al hebt toegevoegd, kunt u deze bijwerken om deze code op te nemen.

  5. Sla uw werk op.

Assembly's configureren die worden aangeroepen via weerspiegeling om te worden geïmplementeerd in Windows Azure

In sommige gevallen worden assembly's aangeroepen via weerspiegeling, bijvoorbeeld bij het ontwikkelen van REST-services (Representational State Transfer) of HttpModules die binnenkomende SWT-tokens inspecteren. Om ervoor te zorgen dat deze assembly's in Azure worden geïmplementeerd, moet u extra stappen uitvoeren om deze toe te voegen aan het implementatiepakket.

Assembly's toevoegen die worden aangeroepen via reflectie aan het Windows Azure-implementatiepakket

  1. Vouw de bin-map van de cloudclaimbewuste webtoepassing of -service uit.

  2. Klik met de rechtermuisknop op de assembly en klik vervolgens op Opnemen in Project.

  3. Klik met de rechtermuisknop op dezelfde bibliotheek en klik vervolgens op Eigenschappen.

  4. Klik in het venster Eigenschappen op Kopiëren als er nieuwer is voor de kopie naar uitvoermap.

Zie ook

Concepten

ACS-richtlijnenindex