Während der Bereitstellung von Nerdio Manager über den Azure Marketplace werden mehrere Azure-Dienste bereitgestellt, darunter App Service, Key Vault, Log Analytics und App Insights, Azure Automation sowie ein verwalteter SQL Server und eine Datenbank. Standardmäßig verwendet der verwaltete SQL Server nur die lokale Authentifizierung, wobei die Anmeldeinformationen in der Verbindungszeichenfolge gespeichert werden, die im Key Vault unter ConnectionStrings—DefaultConnection abgelegt ist.
Wenn Ihre Sicherheitsrichtlinien eine Entra ID-Authentifizierung auf dem SQL Server erfordern, werden Benutzeridentitäten zentral von Entra ID verwaltet und nicht durch einen lokalen SQL Server-Benutzersatz. Dieser Artikel führt Sie durch den Prozess der Umstellung des verwalteten SQL Servers von lokaler Authentifizierung auf den gemischten Modus und der Aktualisierung der Verbindungszeichenfolge von Nerdio Manager, um sich mithilfe des Dienstprinzipal von Nerdio Manager zu authentifizieren – dasselbe Anwendungsobjekt, das Nerdio Manager für die Interaktion mit Azure verwendet.
Anmerkung
-
Es ist möglich, eine separate Anwendung für Nerdio Manager zur Verwendung mit SQL-Authentifizierung zu erstellen, dies geht jedoch über den Rahmen dieses Artikels hinaus. Für weitere Informationen wenden Sie sich bitte an den Nerdio-Support unter nme.support@getnerdio.com.
-
App Services mit eingeschränktem Netzwerkzugriff erfordern eine Verbindung zu Microsoft-Authentifizierungs-URLs. Weitere Informationen finden Sie unter VNet-Integrations-Firewall-Anforderungen.
Wenn Nerdio Manager mithilfe der erweiterten Installationsmethode installiert wurde und/oder eingeschränkte Berechtigungen angewendet wurden, stellen Sie sicher, dass das Konto, das für die Verbindung mit SQL Server verwendet wird, mindestens über die Rolle Contributor verfügt. Befolgen Sie das Prinzip des Least Privilege (PoLP) und verwenden Sie kein Konto mit Berechtigungen, die über das für dieses Verfahren erforderliche Maß hinausgehen.
Bevor Sie dieses Verfahren durchführen, notieren Sie sich die folgenden Details aus der Nerdio Manager Unternehmensanwendung in Entra ID. Navigieren Sie im Entra ID-Portal zu Unternehmensanwendungen und notieren Sie im Abschnitt Übersicht Folgendes:
-
Anwendungsname: Dies wird als db_owner zur SQL-Datenbank hinzugefügt.
-
Anwendungs-ID: Dies ist in der aktualisierten Verbindungszeichenfolge erforderlich.
-
Navigieren Sie im Azure-Portal zum Nerdio Manager SQL Server und wählen Sie Einstellungen > Microsoft Entra ID. Weisen Sie ein Benutzerkonto als Entra ID-Administrator auf dem SQL Server zu.
-
Verwenden Sie SQL Server Management Studio, um eine Verbindung mit dem gehosteten SQL Server herzustellen, und melden Sie sich mit Ihrem Entra ID-Administratorkonto an.
Warnung
Wie in den oben genannten Voraussetzungen erwähnt, stellen Sie sicher, dass das verwendete Konto mindestens über die Least Privilege-Rolle Contributor verfügt.
-
Geben Sie die erforderlichen Verbindungsdetails für die Nerdio Manager SQL-Datenbank ein:
-
Navigieren Sie zur Azure SQL-Datenbank, die Nerdio Manager bereitgestellt hat.
-
Navigieren Sie zu Einstellungen > Übersicht und kopieren Sie den Servernamen.
-
Fügen Sie in SSMS den Servernamen in das Feld Server name ein.
-
Für Authentication wählen Sie in den meisten Umgebungen Microsoft Entra ID - Universal with MFA aus.
-
Geben Sie im Feld Username das Konto an, das in Schritt 1 als Entra ID-Admin auf dem SQL Server zugewiesen wurde.
Anmerkung
Sie werden möglicherweise aufgefordert, Ihre Client-IP-Adresse zu den SQL Server-Netzwerkmanagement-Regeln hinzuzufügen, falls diese noch nicht vorhanden ist. Navigieren Sie im Azure-Portal zum Nerdio Manager SQL Server, um dies zu überprüfen. Weitere Informationen finden Sie unter Azure SQL-Datenbank und Azure Synapse IP Firewall-Regeln.
-
-
Bestätigen Sie in der SSMS-Symbolleiste, dass im Datenbank-Dropdown nmw-app-db angezeigt wird, bevor Sie Abfragen ausführen. Das Ausführen von Abfragen gegen die master-Datenbank verursacht einen Fehler vom Typ Cannot alter the role 'db_owner'.
-
Führen Sie die folgende Abfrage aus, um Nerdio Manager als db_owner hinzuzufügen. Ersetzen Sie nerdio-nmw-app durch Ihren Nerdio Enterprise App-Namen und behalten Sie dabei die eckigen Klammern bei. Dies ist der Enterprise App-Name, nicht der App Service-Name.
CREATE USER [nerdio-nmw-app] FROM EXTERNAL PROVIDER ALTER ROLE db_owner ADD MEMBER [nerdio-nmw-app]; -
Führen Sie die folgende Abfrage aus, um die Änderungen zu validieren, indem Sie alle User anzeigen, denen derzeit die Rolle db_owner zugewiesen ist. Bestätigen Sie, dass die Anwendung von Nerdio Manager in den Ergebnissen erscheint.
SELECT members.name as 'members_name', roles.name as 'roles_name', roles.type_desc as 'roles_desc', members.type_desc as 'members_desc' FROM sys.database_role_members rolemem INNER JOIN sys.database_principals roles ON rolemem.role_principal_id = roles.principal_id INNER JOIN sys.database_principals members ON rolemem.member_principal_id = members.principal_id WHERE roles.name = 'db_owner' ORDER BY members.name
-
Navigieren Sie im Azure-Portal zu Key Vaults und wählen Sie den Nerdio Manager Key Vault aus. Der Name folgt dem Muster nmw-app-kv-*.
-
Wählen Sie im linken Blade unter Objects die Option Secrets aus.
Anmerkung
Möglicherweise müssen Sie zuerst den Zugriff für Ihr Konto aktivieren, um Geheimnisse lesen und ändern zu können. Navigieren Sie im Key Vault zu Einstellungen > Access Policies, um dies zu konfigurieren.
-
Kopieren Sie den Wert von AzureAD-ClientSecret. Dies ist das aktuelle Geheimnis, das Nerdio Manager für die Authentifizierung verwendet.
Anmerkung
Alternativ können Sie im Entra ID-Portal ein neues Geheimnis generieren. Ein neues Geheimnis wird neben allen vorhandenen Geheimnissen hinzugefügt.
-
Öffnen Sie den Wert von ConnectionStrings--DefaultConnection und erstellen Sie eine Backup-Kopie der aktuellen Verbindungszeichenfolge, bevor Sie fortfahren. Die vorhandene Zeichenfolge folgt diesem Format:
Server=tcp:nmw-app-sql-<unique value>.database.windows.net,1433;Initial Catalog=nmw-app-db;Persist Security Info=False;User ID=<local SQL user>;Password=<local SQL password>;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;
-
Erstellen Sie die aktualisierte Verbindungszeichenfolge unter Verwendung des unten stehenden Formats und ersetzen Sie die Platzhalterwerte durch die für Ihre Umgebung spezifische App-ID und den geheimen Clientschlüssel. Stellen Sie sicher, dass die Parameter Authentication= und Database= enthalten sind.
Server=tcp:nmw-app-sql-<unique value>.database.windows.net,1433;Authentication=Active Directory Service Principal;Database=nmw-app-db;Initial Catalog=nmw-app-db;Persist Security Info=False;User ID=<Nerdio Entra ID app ID>;Password=<app client secret>;MultipleActiveResultSets=False;Encrypt=True;TrustServerCertificate=False;Connection Timeout=30;
Anmerkung
Der Wert User ID ist die Enterprise App-ID, nicht die Enterprise App-Objekt-ID. Lassen Sie Authentication auf Active Directory Service Principal eingestellt. Die folgenden Parameter werden aus der ursprünglichen Verbindungszeichenfolge aktualisiert:
-
Server — auf den Nerdio SQL-Server einstellen
-
Authentication — auf Active Directory Service Principal einstellen
-
Database — auf den Namen der Nerdio-Datenbank einstellen
-
Initial Catalog — auf den Namen der Nerdio-Datenbank einstellen
-
User ID — auf die Enterprise App-ID einstellen
-
Password — auf den Wert AzureAD-ClientSecret einstellen
-
-
Navigieren Sie im Nerdio Manager Key Vault zu Objects > Secrets und wählen Sie ConnectionStrings—DefaultConnection aus. Da das vorhandene Geheimnis nicht direkt ersetzt werden kann, erstellen Sie wie folgt eine neue Version:
-
Wählen Sie New Version aus.
-
Geben Sie die aktualisierte Verbindungszeichenfolge in das Feld Secret Value ein.
-
Belassen Sie alle anderen Parameter auf dem Standardwert und wählen Sie Create aus.
-
-
Navigieren Sie im Azure-Portal zu App Services und wählen Sie den Nerdio Manager App Service aus.
-
Wählen Sie Stop und anschließend Start aus.
-
Nachdem Sie bestätigt haben, dass Nerdio Manager zugänglich ist und ordnungsgemäß funktioniert, deaktivieren Sie den SQL-Modus für gemischte Authentifizierung, um den Zugriff ausschließlich auf die Entra ID-Authentifizierung zu beschränken:
-
Navigieren Sie im Azure-Portal zu dem Nerdio Manager SQL Server.
-
Navigieren Sie zu Settings > Microsoft Entra ID.
-
Wählen Sie die Option, um die Authentifizierung nur auf Entra ID zu begrenzen.
Anmerkung
-
Warten Sie nach dem Neustart einige Minuten, bevor Sie den Zugriff überprüfen. Nerdio Manager wird in der Benutzeroberfläche nicht geladen, wenn die Verbindungszeichenfolge ungültig ist oder die Berechtigungen falsch festgelegt sind – es wird sofort ein Fehler zurückgegeben.
-
Wenn Probleme auftreten, ersetzen Sie die ursprüngliche Verbindungszeichenfolge und starten Sie den App Service neu, um die Funktionalität wiederherzustellen.
-
Kommentare (0 Kommentare)