suchen
HeimBackend-EntwicklungPython-TutorialVerwendung verwalteter Identitäten für sichere dienstübergreifende Kommunikation in Azure

Verwaltete Identitäten sind für die sichere dienstübergreifende Kommunikation in Azure unerlässlich. Sie machen die Verwaltung von Geheimnissen, Schlüsseln oder Verbindungszeichenfolgen überflüssig und ermöglichen eine nahtlose Integration von Anwendungskomponenten. In diesem Blog zeige ich, wie man mithilfe verwalteter Identitäten eine Azure SQL-Datenbank mit einem Python-Backend verbindet, das auf Azure App Service ausgeführt wird.


Microsoft-Authentifizierungsbibliothek

Um über Entra-Identitäten eine Verbindung zu Azure-Diensten herzustellen, benötigen Sie die Microsoft Authentication Library (MSAL). In diesem Beispiel verwende ich die Python-Bibliothek, aber keine Sorge, die MSAL existiert für jede große Programmiersprache.

import msal

Hier ist eine einfache Funktion zum Herstellen einer Verbindung mit einer Azure SQL-Datenbank:

def get_db_connection():
    connection_string = f'DRIVER={{ODBC Driver 17 for SQL Server}};SERVER={server}.database.windows.net;PORT=1433;DATABASE={database};Authentication=ActiveDirectoryMsi'
    return pyodbc.connect(connection_string)

Wenn diese Voraussetzungen erfüllt sind, können Sie Datenbankverbindungen innerhalb Ihres Codes herstellen und Abfragen ausführen, ohne mit Geheimnissen oder Verbindungszeichenfolgen umgehen zu müssen.


Demo-Python-Backend

Zur Demonstration habe ich eine einfache Python-Flask-API erstellt, die Mitarbeiterdaten wie Name, Position und Gehalt zurückgibt. Beachten Sie, wie die Funktion get_db_connection() verwendet wird, um die Datenbankverbindung zu öffnen und die Daten abzufragen.

def get_employees():
    conn = get_db_connection()
    cursor = conn.cursor()
    cursor.execute('SELECT ID, Name, Position, Salary FROM Employees')
    rows = cursor.fetchall()
    conn.close()

    # Convert data to a list of dictionaries.
    employees = []
    for row in rows:
        employees.append({
            'ID': row.ID,
            'Name': row.Name,
            'Position': row.Position,
            'Salary': row.Salary
        })

    return jsonify(employees)

Dieser einfache Ansatz stellt sicher, dass Ihr Backend über verwaltete Identitäten sicher mit der Datenbank interagiert.


Docker-Datei

Wenn Sie Ihre Anwendung in Docker-Containern bereitstellen, finden Sie hier die Docker-Datei zum Installieren des ODBC-Treibers für SQL Server:

FROM python:3.13-slim

COPY . /app
WORKDIR /app

# Install Microsoft ODBC Driver 17 for SQL Server and dependencies
RUN apt-get update \
 && apt-get install -y gnupg curl apt-transport-https \
 && curl https://packages.microsoft.com/keys/microsoft.asc | tee /etc/apt/trusted.gpg.d/microsoft.asc \
 && echo "deb [arch=amd64] https://packages.microsoft.com/debian/11/prod bullseye main" | tee /etc/apt/sources.list.d/mssql-release.list \
 && apt-get update \
 && ACCEPT_EULA=Y apt-get install -y msodbcsql17 unixodbc-dev \
 && apt-get install -y build-essential \
 && apt-get clean -y

# Install Python dependencies
RUN pip install -r requirements.txt

EXPOSE 80

CMD ["gunicorn", "-w", "4", "-b", "0.0.0.0:80", "app:app"]

Dieses Setup stellt sicher, dass Ihr Container für eine sichere Verbindung mit Azure SQL bereit ist.


SQL Server- und Datenbankbereitstellung

Konfigurieren Sie bei der Bereitstellung eines Azure SQL-Servers die reine Azure AD-Authentifizierung. Dies ist eine Voraussetzung für die verwaltete Identität. Nachfolgend finden Sie die Bicep-Vorlage, die zum Bereitstellen des SQL-Servers und der Datenbank verwendet wird:

resource sqlServer 'Microsoft.Sql/servers@2023-08-01-preview' = {
  name: serverName
  location: location
  tags: {
    workload: 'Sample Backend with SQL Database'
    topic: 'SQL Server'
    environment: 'Production'
  }
  properties: {
    minimalTlsVersion: '1.2'
    administrators: {
      administratorType: 'ActiveDirectory'
      login: sqlAdminName
      sid: sqlAdminObjectId
      tenantId: tenantId
      principalType: principalType
      azureADOnlyAuthentication: azureADOnlyAuthentication
    }
  }
}

resource sqlDB 'Microsoft.Sql/servers/databases@2023-08-01-preview' = {
  parent: sqlServer
  name: sqlDBName
  location: location
  sku: {
    name: sqlDBSkuName
    tier: sqlDBSkuTier
    capacity: capacity
  }
}

Diese Vorlage stellt sicher, dass die Datenbank sicher konfiguriert und einsatzbereit ist.


Gewähren von Datenbankrollen für verwaltete Identitäten

Damit Ihr App Service ohne Geheimnisse auf die Datenbank zugreifen kann, weisen Sie der verwalteten Identität die erforderlichen Datenbankrollen zu. Sie können diesen Schritt nicht mit Bicep oder Terraform ausführen. Erstellen Sie ein benutzerdefiniertes Skript oder greifen Sie über das Azure-Portal auf die Datenbank zu.

CREATE USER [<displayname-of-appservice>] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER [<displayname-of-appservice>];
ALTER ROLE db_datawriter ADD MEMBER [<displayname-of-appservice>];
ALTER ROLE db_ddladmin ADD MEMBER [<displayname-of-appservice>];
GO
</displayname-of-appservice></displayname-of-appservice></displayname-of-appservice></displayname-of-appservice>

Diese Rollen ermöglichen es der verwalteten Identität, nach Bedarf Lese-, Schreib- und Schemaänderungsvorgänge durchzuführen.


Öffentliche Vorlage auf GitHub

Den vollständigen Code, einschließlich CI/CD-Integration, finden Sie in der öffentlichen Vorlage auf GitHub. Dieses Repository enthält alles, was Sie zum Replizieren des in diesem Blog beschriebenen Setups benötigen.

Using Managed Identities for Secure Cross-Service Communication in Azure Latzox / Schnellstart-Backend-mit-SQL-Datenbank

Eine schlanke Backend-Umgebung zum Testen neuer Anwendungsfunktionen. Es umfasst alles vom Hosting der App bis zur Verwaltung der Datenpersistenz und integriert CI/CD für einfaches Testen und Iteration.

Schnellstart-Backend mit SQL-Datenbankverbindung

Dieser Anwendungsfall umfasst die Bereitstellung eines Azure App Service mit einer Azure SQL-Datenbank, um eine schlanke Backend-Umgebung zum Testen neuer Anwendungsfunktionen bereitzustellen. Es umfasst alles vom Hosting der App bis zur Verwaltung der Datenpersistenz und integriert CI/CD für einfaches Testen und Iteration.

Ziele

  • Stellen Sie ein skalierbares und sicheres Web-Backend auf Azure bereit, um neue Anwendungsfunktionen zu testen.
  • Automatisieren Sie die Infrastrukturbereitstellung mit Bicep.
  • Integrieren Sie die kontinuierliche Bereitstellung der Anwendung für häufige Tests und einfache Updates.

Komponentenübersicht

  • Azure App Service – Stellen Sie eine einfache Backend-API bereit.
  • Azure SQL-Datenbank – Richten Sie eine SQL-Datenbank für Persistenz ein.
  • Azure Container Registry (optional) – Speichern Sie Containerbilder zur Versionierung (wenn Sie eine Containerversion verwenden).
  • Kontinuierliche Integration/kontinuierliche Bereitstellung (CI/CD) – Automatisieren Sie die Bereitstellung mithilfe von GitHub-Aktionen.



Auf GitHub ansehen



Die Verwendung verwalteter Identitäten vereinfacht die dienstübergreifende Kommunikation und erhöht die Sicherheit, da keine Geheimnisse mehr erforderlich sind. Dieser Ansatz wird jedem dringend empfohlen, der sichere und skalierbare Anwendungen in Azure erstellt.

Das obige ist der detaillierte Inhalt vonVerwendung verwalteter Identitäten für sichere dienstübergreifende Kommunikation in Azure. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Python lernen: Ist 2 Stunden tägliches Studium ausreichend?Python lernen: Ist 2 Stunden tägliches Studium ausreichend?Apr 18, 2025 am 12:22 AM

Ist es genug, um Python für zwei Stunden am Tag zu lernen? Es hängt von Ihren Zielen und Lernmethoden ab. 1) Entwickeln Sie einen klaren Lernplan, 2) Wählen Sie geeignete Lernressourcen und -methoden aus, 3) praktizieren und prüfen und konsolidieren Sie praktische Praxis und Überprüfung und konsolidieren Sie und Sie können die Grundkenntnisse und die erweiterten Funktionen von Python während dieser Zeit nach und nach beherrschen.

Python für die Webentwicklung: SchlüsselanwendungenPython für die Webentwicklung: SchlüsselanwendungenApr 18, 2025 am 12:20 AM

Zu den wichtigsten Anwendungen von Python in der Webentwicklung gehören die Verwendung von Django- und Flask -Frameworks, API -Entwicklung, Datenanalyse und Visualisierung, maschinelles Lernen und KI sowie Leistungsoptimierung. 1. Django und Flask Framework: Django eignet sich für die schnelle Entwicklung komplexer Anwendungen, und Flask eignet sich für kleine oder hochmobile Projekte. 2. API -Entwicklung: Verwenden Sie Flask oder Djangorestframework, um RESTFUFFUPI zu erstellen. 3. Datenanalyse und Visualisierung: Verwenden Sie Python, um Daten zu verarbeiten und über die Webschnittstelle anzuzeigen. 4. Maschinelles Lernen und KI: Python wird verwendet, um intelligente Webanwendungen zu erstellen. 5. Leistungsoptimierung: optimiert durch asynchrones Programmieren, Caching und Code

Python vs. C: Erforschung von Leistung und Effizienz erforschenPython vs. C: Erforschung von Leistung und Effizienz erforschenApr 18, 2025 am 12:20 AM

Python ist in der Entwicklungseffizienz besser als C, aber C ist in der Ausführungsleistung höher. 1. Pythons prägnante Syntax und reiche Bibliotheken verbessern die Entwicklungseffizienz. 2. Die Kompilierungsmerkmale von Compilation und die Hardwarekontrolle verbessern die Ausführungsleistung. Bei einer Auswahl müssen Sie die Entwicklungsgeschwindigkeit und die Ausführungseffizienz basierend auf den Projektanforderungen abwägen.

Python in Aktion: Beispiele in realer WeltPython in Aktion: Beispiele in realer WeltApr 18, 2025 am 12:18 AM

Zu den realen Anwendungen von Python gehören Datenanalysen, Webentwicklung, künstliche Intelligenz und Automatisierung. 1) In der Datenanalyse verwendet Python Pandas und Matplotlib, um Daten zu verarbeiten und zu visualisieren. 2) In der Webentwicklung vereinfachen Django und Flask Frameworks die Erstellung von Webanwendungen. 3) Auf dem Gebiet der künstlichen Intelligenz werden Tensorflow und Pytorch verwendet, um Modelle zu bauen und zu trainieren. 4) In Bezug auf die Automatisierung können Python -Skripte für Aufgaben wie das Kopieren von Dateien verwendet werden.

Pythons Hauptnutzung: ein umfassender ÜberblickPythons Hauptnutzung: ein umfassender ÜberblickApr 18, 2025 am 12:18 AM

Python wird häufig in den Bereichen Data Science, Web Development und Automation Scripting verwendet. 1) In der Datenwissenschaft vereinfacht Python die Datenverarbeitung und -analyse durch Bibliotheken wie Numpy und Pandas. 2) In der Webentwicklung ermöglichen die Django- und Flask -Frameworks Entwicklern, Anwendungen schnell zu erstellen. 3) In automatisierten Skripten machen Pythons Einfachheit und Standardbibliothek es ideal.

Der Hauptzweck von Python: Flexibilität und BenutzerfreundlichkeitDer Hauptzweck von Python: Flexibilität und BenutzerfreundlichkeitApr 17, 2025 am 12:14 AM

Die Flexibilität von Python spiegelt sich in Multi-Paradigm-Unterstützung und dynamischen Typsystemen wider, während eine einfache Syntax und eine reichhaltige Standardbibliothek stammt. 1. Flexibilität: Unterstützt objektorientierte, funktionale und prozedurale Programmierung und dynamische Typsysteme verbessern die Entwicklungseffizienz. 2. Benutzerfreundlichkeit: Die Grammatik liegt nahe an der natürlichen Sprache, die Standardbibliothek deckt eine breite Palette von Funktionen ab und vereinfacht den Entwicklungsprozess.

Python: Die Kraft der vielseitigen ProgrammierungPython: Die Kraft der vielseitigen ProgrammierungApr 17, 2025 am 12:09 AM

Python ist für seine Einfachheit und Kraft sehr beliebt, geeignet für alle Anforderungen von Anfängern bis hin zu fortgeschrittenen Entwicklern. Seine Vielseitigkeit spiegelt sich in: 1) leicht zu erlernen und benutzten, einfachen Syntax; 2) Reiche Bibliotheken und Frameworks wie Numpy, Pandas usw.; 3) plattformübergreifende Unterstützung, die auf einer Vielzahl von Betriebssystemen betrieben werden kann; 4) Geeignet für Skript- und Automatisierungsaufgaben zur Verbesserung der Arbeitseffizienz.

Python in 2 Stunden am Tag lernen: Ein praktischer LeitfadenPython in 2 Stunden am Tag lernen: Ein praktischer LeitfadenApr 17, 2025 am 12:05 AM

Ja, lernen Sie Python in zwei Stunden am Tag. 1. Entwickeln Sie einen angemessenen Studienplan, 2. Wählen Sie die richtigen Lernressourcen aus, 3. Konsolidieren Sie das durch die Praxis erlernte Wissen. Diese Schritte können Ihnen helfen, Python in kurzer Zeit zu meistern.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
Will R.E.P.O. Crossplay haben?
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Dreamweaver Mac

Dreamweaver Mac

Visuelle Webentwicklungstools

PHPStorm Mac-Version

PHPStorm Mac-Version

Das neueste (2018.2.1) professionelle, integrierte PHP-Entwicklungstool

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

SAP NetWeaver Server-Adapter für Eclipse

SAP NetWeaver Server-Adapter für Eclipse

Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.

WebStorm-Mac-Version

WebStorm-Mac-Version

Nützliche JavaScript-Entwicklungstools