Freigeben über


Bereitstellen von ACS-Verbundanwendungen und Diensten in Azure

Gilt für

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

  • Windows Identity Foundation (WIF)

  • Microsoft Azure

Zusammenfassung

In diesem Thema werden die Richtlinien konsolidiert, die Sie berücksichtigen sollten, wenn Sie Anwendungen und Dienste entwickeln, die ACS verwenden und die in Azure bereitgestellt werden.

Ziele

  1. Umgehen dynamisch generierter Ports mit dem Serveremulator.

  2. Stellen Sie Windows Identity Foundation (WIF)-Laufzeit in Azure bereit.

  3. Verschlüsseln von Cookies mit RSA.

  4. Konfigurieren Sie Assemblys, die durch Spiegelung aufgerufen werden, die in Azure bereitgestellt werden sollen.

Umgehen dynamisch generierter Ports mit dem Serveremulator

Dieser Abschnitt ist relevant für die Entwicklung von Webanwendungen. Dieser Abschnitt ist irrelevant für die Entwicklung von Webdiensten. Die Berechnung Emulator ist Teil der Azure SDK-Tools. Sie können sie verwenden, um Ihre Anwendung auszuführen, zu testen, zu debuggen und zu 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 zu Compute Emulator finden Sie unter Übersicht über die Windows Azure Compute Emulator (https://go.microsoft.com/fwlink/?LinkId=221212).

Wenn Compute Emulator eine IP-Adresse von der IP-Adresse zugewiesen, die als Rückgabe-URL im ACS-Verwaltungsportal konfiguriert ist, leitet ACS authentifizierte Anforderungen an die URL um, die im Feld "Rückgabe-URL" der Konfiguration der vertrauenden Partei konfiguriert ist, aber keine übereinstimmende Seite in dieser URL ist vorhanden. 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.

Konfigurieren des Endpunkts auf einen verfügbaren Port

  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 verwendeten 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 Seite "Webrolleneigenschaften " auf die Registerkarte "Endpunkte" .

  6. Geben Sie in der Datei **Public Port ** den Portwert an, den Sie in Schritt 3 identifiziert haben.

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

Bereitstellen der Windows Identity Foundation-Laufzeit in Azure

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 standardmäßig nicht in Azure-Instanzen installiert. Um Ihre Cloud-Anspruchsbewendungsanwendung auszuführen, müssen Sie WIF-Runtime auf der Azure-Instanz verfügbar machen. Der einfachste Weg dazu ist, die WIF-Assembly im Bereitstellungspaket zu verpacken.

Einfügen der WIF-Assembly in das Azure-Bereitstellungspaket

  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. Geben Sie im Eigenschaftenfenster **Local ** als True und spezifische Version als False an.

Verschlüsseln von Cookies mit RSA

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 cloudbezogene Webanwendung ordnungsgemäß funktioniert, wenn sie in Azure bereitgestellt wird, müssen Sie Cookies-Verschlüsselungsfunktionen mithilfe von RSA hinzufügen.

Verschlüsseln von Cookies mit RSA

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

  2. Öffnen Sie die Datei global.asax.cs, die der Code hinter der global.asax-Datei ist, 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 den 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;
    

    Hinweis

    Falls Sie den Application_Start-Ereignishandler bereits hinzugefügt haben, können Sie Ihren Code dort einfügen.

  5. Speichern Sie Ihre Arbeit.

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

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 zusätzliche Schritte ausführen, um sie dem Bereitstellungspaket hinzuzufügen.

Hinzufügen von Assemblys, die per Reflektion aufgerufen werden, zum Azure-Bereitstellungspaket

  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.

Weitere Informationen

Konzepte

ACS-Richtlinienindex