Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

Bereitstellen von ACS-Verbundanwendungen und Diensten in Azure

Letzte Aktualisierung: Juni 2015

  • Zugriffssteuerung für Microsoft Azure Active Directory (auch Zugriffssteuerungsdienst oder ACS)

  • Windows Identity Foundation (WIF)

  • Microsoft Azure

Dieses Thema fasst die Richtlinien zusammen, die Sie bei der Entwicklung von Anwendungen und Diensten beachten sollten, die ACS verwenden und in Azure- bereitgestellt werden.

  1. Umgehen dynamisch generierter Ports mit dem Serveremulator.

  2. Bereitstellen der Windows Identity Foundation (WIF)-Laufzeit in Azure-.

  3. Verschlüsseln von Cookies mit RSA.

  4. Konfigurieren von Assemblys, die per Reflektion aufgerufen werden, für die Bereitstellung in Azure-.

Dieser Abschnitt ist relevant für die Entwicklung von Webanwendungen. Dieser Abschnitt ist irrelevant für die Entwicklung von Webdiensten. Der Serveremulator ist in den Azure- SDK-Tools enthalten. Mit dem Emulator können Sie Ihre Anwendung ausführen, testen, debuggen und optimieren, bevor Sie sie als gehosteter Dienst in Azure- bereitstellen. Im Serveremulator ist es nicht möglich, eine eindeutige IP-Adresse zuzuweisen. Der Serveremulator versucht, den angeforderten Port zuzuweisen. Wenn dieser Port nicht verfügbar ist, wird die nächste verfügbare Portnummer zugewiesen. Im Serveremulator kann es also passieren, dass Ihr Dienst nicht die Portnummer erhält, die sie in der Definitionsdatei angegeben haben. Weitere Informationen zum Serveremulator finden Sie unter Übersicht über den Windows Azure-Serveremulator (http://go.microsoft.com/fwlink/?LinkId=221212).

Wenn der Serveremulator eine IP-Adresse vergibt, die von der als Rückgabe-URL im ACS-Verwaltungsportal konfigurierten IP-Adresse abweicht, dann leitet ACS authentifizierte Anfragen an die URL weiter, die im Feld Rückgabe-URL für die vertrauende Seite konfiguriert wurde. Unter dieser URL existiert jedoch keine passende Seite. Als Resultat wird eine leere Seite angezeigt.

Um dies zu umgehen, setzen Sie den öffentlichen Port für den Endpunkt Ihrer Cloud-Webanwendung auf einen Port, der auf Ihrem Computer verfügbar ist. Auf diese Weise weist der Serveremulator keinen zufälligen Port zu, um Konflikte zu vermeiden.

  1. Klicken Sie auf Start geben Sie cmd ein und drücken Sie die Eingabetaste, um die Eingabeaufforderung zu öffnen.

  2. Führen Sie den folgenden Befehl aus, um die Liste der lokalen Host-IP-Adressen mit belegten Ports anzuzeigen: netstat –a –n | findstr 127.0.0.1

  3. Suchen Sie in der Liste nach einem Port, der aktuell nicht verwendet wird. Sie werden diesen Port im nächsten Schritt verwenden.

  4. Doppelklicken Sie im Projektmappen-Explorer auf Ihre Rolle, die sich unter dem Roles-Ordner im Cloudprojekt befindet. Die Eigenschaftenseite für Rollen wird geöffnet.

  5. Klicken Sie auf der Eigenschaftenseite für Rollen auf die Registerkarte Endpunkte.

  6. Geben Sie unter Öffentlicher Port den Portwert ein, den Sie in Schritt 3 identifiziert haben.

  7. Drücken Sie STRG+S, um Ihre Änderungen zu speichern.

Windows Identity Foundation (WIF) ist eine Out-of-band-Laufzeit, die auf dem Computer installiert werden muss, um von Ihrer Ansprüche unterstützenden Anwendung verwendet werden zu können. WIF ist auf Azure--Instanzen standardmäßig nicht installiert. Um Ihre Ansprüche unterstützende Cloudanwendung auszuführen, müssen Sie die WIF-Laufzeit auf der Azure--Instanz verfügbar machen. Der einfachste Weg dazu ist, die WIF-Assembly im Bereitstellungspaket zu verpacken.

  1. Suchen Sie im Projektmappen-Explorer nach Ihrer Ansprüche unterstützenden Anwendung.

  2. Erweitern Sie den Ordner Verweise.

  3. Suchen Sie die Assembly Microsoft.IdentityModel unterhalb des Ordners Verweise.

  4. Klicken Sie mit der rechten Maustaste auf die Assembly, und klicken Sie dann auf Eigenschaften.

  5. Setzen Sie im Eigenschaftenfenster den Wert für Lokale Kopie  auf True und Bestimmte auf False.

Dieser Abschnitt ist relevant für die Entwicklung von Webanwendungen. WIF bietet standardmäßigen kryptografischen Schutz von Cookies durch Verwendung der Datenschutz-API (DPAPI). DPAPI ist in Azure- nicht verfügbar. Um sicherzustellen, dass Ihre Cloud-Ansprüche unterstützende Webanwendung nach der Bereitstellung in Azure- korrekt funktioniert, müssen Sie die Funktion zum Verschlüsseln von Cookies mit RSA hinzufügen.

  1. Suchen Sie im Projektmappen-Explorer nach Ihrer Cloud-Ansprüche unterstützenden Webanwendung.

  2. Öffnen Sie die Date global.asax.cs, die den Code für die Datei global.asax enthält, im Visual Studio-Editor.

  3. Fügen Sie die folgenden Deklarationen hinzu:

    using Microsoft.IdentityModel.Tokens;
    using Microsoft.IdentityModel.Web;
    using Microsoft.IdentityModel.Web.Configuration;
    
  4. Fügen Sie folgenden Code hinzu:

    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;
    
    noteHinweis
    Falls Sie den Application_Start-Ereignishandler bereits hinzugefügt haben, können Sie Ihren Code dort einfügen.

  5. Speichern Sie Ihre Änderungen.

In manchen Fällen werden Assemblys per Reflektion aufgerufen, z. B. bei der Entwicklung von REST-wcf-Diensten oder HTTP-Modulen, die eingehende SWT-Token untersuchen. Um sicherzustellen, dass diese Assemblys in Azure- bereitgestellt werden, müssen Sie diese mit einigen zusätzlichen Schritten zum Bereitstellungspaket hinzufügen.

  1. Erweitern Sie den bin-Ordner der Cloud-Ansprüche unterstützenden Webanwendung bzw. des Dienstes.

  2. Klicken Sie mit der rechten Maustaste auf die Assembly, und klicken Sie dann auf Zu Projekt hinzufügen.

  3. Klicken Sie mit der rechten Maustaste auf dieselbe Bibliothek und klicken Sie auf Eigenschaften.

  4. Wählen Sie im Fenster Eigenschaften die Option Kopieren, wenn neuer aus dem Listenfeld In Ausgabeverzeichnis kopieren aus.

Siehe auch

Anzeigen: