14-04-2024, 04:51
Wenn es darum geht, IIS mit Azure Active Directory für die Authentifizierung zu integrieren, könnte man denken, es sei ein komplexes Unterfangen, das eine Armee von Fachleuten erfordert. Aber ich versichere dir, sobald du die grundlegenden Schritte verstanden hast, wirst du sehen, dass es durchaus machbar ist. Also schnapp dir dein Lieblingsgetränk, lehn dich zurück, und lass uns darüber sprechen, wie du das einrichten kannst.
Zuerst möchte ich dir sagen, warum ich diese Integration besonders nützlich finde. Die Verwendung von Azure Active Directory bedeutet, dass ich Benutzeridentitäten ganz einfach verwalten und ein nahtloses Authentifizierungserlebnis für die Benutzer schaffen kann. Anstatt mich mit komplexen Konfigurationen herumzuschlagen oder zu versuchen, die Benutzerkonten in verschiedenen Systemen im Blick zu behalten, verlasse ich mich auf Azure AD, um alles zu regeln. Das gibt mir die Freiheit, mich auf wichtigere Entwicklungsaufgaben zu konzentrieren.
Lass uns mit den Voraussetzungen anfangen. Bevor du überhaupt beginnst, stelle sicher, dass du ein Azure-Abonnement hast. Wenn du keins hast, lege eines an. Es ist ziemlich unkompliziert, und du benötigst nur eine E-Mail-Adresse. Als Nächstes solltest du sicherstellen, dass dein IIS-Server läuft. Ideal ist es, wenn du IIS auf einer Windows Server-Maschine verwendest, aber es ist erwähnenswert, dass du dies auch auf einem Arbeitsplatzrechner ausführen kannst. Stelle nur sicher, dass du über administrative Zugriffsrechte verfügst, denn die wirst du benötigen, um die erforderlichen Komponenten zu installieren.
Jetzt, da du das geklärt hast, musst du deine Anwendung in Azure AD registrieren. Dies ist entscheidend, da Azure so weiß, dass es mit deiner IIS-Anwendung kommunizieren soll. Gehe zum Azure-Portal und suche im Abschnitt Azure Active Directory nach App-Registrierungen. Klicke darauf, und du wirst einen Button sehen, um eine neue Anwendung zu registrieren.
Bei der Registrierung musst du einen Namen für deine Anwendung angeben. Wähle einen Namen, der Sinn macht, damit du ihn später leicht identifizieren kannst. Ich verwende in der Regel denselben Namen wie die Anwendung, an der ich arbeite. Unter "Redirect URI" wählst du Web aus und gibst die URL ein, unter der deine IIS-App läuft, wie zum Beispiel http://localhost/deine-app. Mach dir vorerst nicht zu viele Gedanken über die anderen Einstellungen; wir werden das so vereinfachen, dass du schnell starten kannst.
Sobald du deine App registriert hast, solltest du die Client-ID und die Verzeichnis-ID notieren. Diese sind im Wesentlichen Identifizierer für deine Anwendung und das Verzeichnis, und du benötigst sie später für die Konfiguration. Bleib organisiert und halte sie an einem sicheren Ort fest, bevor du mit den nächsten Schritten fortfährst.
Als Nächstes kommt das Einrichten der Berechtigungen. Auf der Seite der App-Registrierung siehst du einen Abschnitt für API-Berechtigungen. Hier solltest du auf "Berechtigung hinzufügen" klicken und dann Microsoft Graph auswählen. Für die Authentifizierung benötigst du typischerweise die Berechtigung "User.Read". Damit kann deine App grundlegende Benutzerprofilinformationen lesen. In einigen Fällen möchtest du vielleicht tiefer in das Benutzer-Management einsteigen, aber klein anzufangen ist oft der beste Ansatz.
Jetzt kommst du den spannenden Teilen näher! Um deine App für die Authentifizierung einzurichten, musst du ein Client-Geheimnis erstellen. Das fungiert wie ein Passwort für deine Anwendung. Klicke auf "Zertifikate & Geheimnisse" und dann auf "Neues Client-Geheimnis". Füge eine Beschreibung hinzu und wähle einen Zeitraum für die Ablauffrist. Es ist in der Regel in Ordnung, die längste Lebensdauer für Entwicklungszwecke auszuwählen, aber achte darauf, strenge Richtlinien in der Produktion anzuwenden.
Mit deinem Client-Geheimnis in der Hand ist es Zeit, zu deinem IIS-Server zurückzukehren. Du musst das .NET Core Hosting Bundle installieren, falls du das noch nicht getan hast. Das ist wichtig, da es deinem IIS-Server ermöglicht, Apps auszuführen, die in .NET Core entwickelt wurden. Du findest dies auf der .NET-Website, und die Installation ist ziemlich schnell. Stelle nach der Installation sicher, dass du den IIS-Server neu startest, damit die Änderungen wirksam werden.
Jetzt lass uns in deine IIS-Anwendung eintauchen. Konfiguriere deine App so, dass sie Microsofts OWIN-Middleware für eine einfache Authentifizierung verwendet. Du musst die erforderlichen NuGet-Pakete hinzufügen. Öffne einfach dein Projekt in Visual Studio und greife auf den NuGet-Paket-Manager zu. Suche nach Paketen wie 'Microsoft.Owin.Security.OpenIdConnect' und 'Microsoft.Owin.Security.Cookies'. Installiere diese, da sie dir helfen werden, den Authentifizierungsfluss zu verwalten und Benutzersitzungen zu speichern.
Sobald du die Pakete hinzugefügt hast, ist es Zeit, deine Datei Startup.cs zu aktualisieren. Hier richtest du die OWIN-Middleware ein. Stelle sicher, dass du OpenID Connect konfigurierst, indem du etwas wie das Folgende in deine Methode Configuration hinzufügst. Vergiss nicht, Platzhalter durch deine tatsächlichen Details aus Azure zu ersetzen:
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = CookieAuthenticationDefaults.AuthenticationType,
});
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
{
ClientId = "deine-client-id",
ClientSecret = "dein-client-geheimnis",
Authority = "https://login.microsoftonline.com/dein-mandanten-id/v2.0",
RedirectUri = "http://localhost/deine-app/signin-oidc",
ResponseType = "code id_token",
Scope = "openid profile",
Notifications = new OpenIdConnectAuthenticationNotifications
{
AuthenticationFailed = context =>
{
context.HandleResponse();
context.Response.Redirect("/Home/Error?message=" + context.Exception.Message);
return Task.FromResult(0);
}
}
});
Du musst sicherstellen, dass die Redirect-URI mit dem übereinstimmt, was du in Azure registriert hast. Es ist einfach, diese kleinen Details zu übersehen, aber sie sind entscheidend, damit der gesamte Fluss funktioniert.
Nachdem du dies eingerichtet hast, solltest du auch einen Controller und eine Ansicht erstellen, um Weiterleitungen zu handhaben und Benutzerinformationen anzuzeigen. Vielleicht startest du mit einem einfachen Controller, der eine URL für die Startseite behandelt, wo Benutzer ihren Namen oder ihre E-Mail sehen können, sobald sie authentifiziert sind.
Wahrscheinlich musst du auch deine Controlleraktionen schützen. Verwende das [Authorize]-Attribut in deinen Controllern oder spezifischen Aktionen, um sicherzustellen, dass nur authentifizierte Benutzer darauf zugreifen können. Das hilft, ein gewisses Maß an Sicherheit durchzusetzen und ermöglicht es dir, die Benutzer direkt nach einer erfolgreichen Authentifizierung willkommen zu heißen.
Beim Entwickeln möchtest du definitiv dein Setup testen. Öffne deinen Browser und navigiere zur URL deiner App. Du solltest zur Anmeldeseite von Microsoft weitergeleitet werden, wenn du versuchst, auf eine geschützte Ressource zuzugreifen. Wenn alles korrekt funktioniert, wirst du nach dem Einloggen zurück zu deiner App geleitet, wo du nun auf den authentifizierten Inhalt zugreifen kannst.
Manchmal wirst du auf ein paar Hindernisse stoßen. Ich hatte Momente, in denen ich dachte, ich hätte alles richtig gemacht, nur damit nichts funktionierte. Wenn du diese gefürchtete Meldung "401 Unauthorized" siehst, bedeutet das oft, dass ein Problem mit den Berechtigungen oder den Berechtigungen besteht, die du während der Registrierung festgelegt hast. Es ist eine gute Idee, diese Einstellungen im Azure-Portal zu überprüfen und sicherzustellen, dass alles korrekt ist.
Führe ein Protokoll über Fehler und Ausnahmen während deiner Entwicklung. Dies kann dir später Stunden von Kopfschmerzen ersparen. Wenn du Fehlerbehebung benötigst, zögere nicht, Haltepunkte in Visual Studio zu verwenden, während du durch deine Authentifizierungslogik gehst. Es zu sehen, kann oft Einblicke bieten, die einfache Protokolle nicht bereitstellen können.
Wenn du dies in der Produktion bereitstellst, denke daran, alle Entwicklungsartefakte zu bereinigen. Du möchtest die App-Berechtigungen wahrscheinlich auch noch einmal überprüfen. In einer Produktionsumgebung möchtest du wahrscheinlich restriktivere Berechtigungen verwenden, insbesondere wenn du mit sensiblen Benutzerdaten arbeitest.
Halte auch die Sicherheit jederzeit im Hinterkopf. Dinge wie das Validieren der Token, die du von Azure erhältst, können wichtig sein, um die Integrität der Benutzersitzungen sicherzustellen. Authentifizierung ist eine Sache, aber ein sicheres Umfeld aufrechtzuerhalten, ist ebenso entscheidend.
Bald wirst du feststellen, dass die Integration von IIS mit Azure AD für die Authentifizierung nicht nur die Sicherheit verbessert, sondern auch das Benutzermanagement vereinfacht. Du kannst ganz einfach neue Benutzer anlegen und kontrollieren, wer Zugriff auf was hat, wodurch du betriebliche Abläufe erheblich optimieren kannst.
Zusammenfassend lässt sich sagen, dass diese Reise zur Integration von IIS mit Azure AD anfangs zwar einschüchternd erscheinen mag, sie aber letztendlich lohnend ist. Mit Übung und der richtigen Denkweise wirst du bald das Gefühl haben, dies für deine Projekte selbstbewusst einzurichten. Und wer weiß? Vielleicht wirst du sogar diese Einblicke mit anderen Freunden teilen, die gerade erst anfangen.
Ich hoffe, du fandest meinen Beitrag nützlich. Übrigens, hast du eine gute Backup-Lösung für Windows Server? In diesem Beitrag erkläre ich, wie man Windows Server richtig sichert.
Zuerst möchte ich dir sagen, warum ich diese Integration besonders nützlich finde. Die Verwendung von Azure Active Directory bedeutet, dass ich Benutzeridentitäten ganz einfach verwalten und ein nahtloses Authentifizierungserlebnis für die Benutzer schaffen kann. Anstatt mich mit komplexen Konfigurationen herumzuschlagen oder zu versuchen, die Benutzerkonten in verschiedenen Systemen im Blick zu behalten, verlasse ich mich auf Azure AD, um alles zu regeln. Das gibt mir die Freiheit, mich auf wichtigere Entwicklungsaufgaben zu konzentrieren.
Lass uns mit den Voraussetzungen anfangen. Bevor du überhaupt beginnst, stelle sicher, dass du ein Azure-Abonnement hast. Wenn du keins hast, lege eines an. Es ist ziemlich unkompliziert, und du benötigst nur eine E-Mail-Adresse. Als Nächstes solltest du sicherstellen, dass dein IIS-Server läuft. Ideal ist es, wenn du IIS auf einer Windows Server-Maschine verwendest, aber es ist erwähnenswert, dass du dies auch auf einem Arbeitsplatzrechner ausführen kannst. Stelle nur sicher, dass du über administrative Zugriffsrechte verfügst, denn die wirst du benötigen, um die erforderlichen Komponenten zu installieren.
Jetzt, da du das geklärt hast, musst du deine Anwendung in Azure AD registrieren. Dies ist entscheidend, da Azure so weiß, dass es mit deiner IIS-Anwendung kommunizieren soll. Gehe zum Azure-Portal und suche im Abschnitt Azure Active Directory nach App-Registrierungen. Klicke darauf, und du wirst einen Button sehen, um eine neue Anwendung zu registrieren.
Bei der Registrierung musst du einen Namen für deine Anwendung angeben. Wähle einen Namen, der Sinn macht, damit du ihn später leicht identifizieren kannst. Ich verwende in der Regel denselben Namen wie die Anwendung, an der ich arbeite. Unter "Redirect URI" wählst du Web aus und gibst die URL ein, unter der deine IIS-App läuft, wie zum Beispiel http://localhost/deine-app. Mach dir vorerst nicht zu viele Gedanken über die anderen Einstellungen; wir werden das so vereinfachen, dass du schnell starten kannst.
Sobald du deine App registriert hast, solltest du die Client-ID und die Verzeichnis-ID notieren. Diese sind im Wesentlichen Identifizierer für deine Anwendung und das Verzeichnis, und du benötigst sie später für die Konfiguration. Bleib organisiert und halte sie an einem sicheren Ort fest, bevor du mit den nächsten Schritten fortfährst.
Als Nächstes kommt das Einrichten der Berechtigungen. Auf der Seite der App-Registrierung siehst du einen Abschnitt für API-Berechtigungen. Hier solltest du auf "Berechtigung hinzufügen" klicken und dann Microsoft Graph auswählen. Für die Authentifizierung benötigst du typischerweise die Berechtigung "User.Read". Damit kann deine App grundlegende Benutzerprofilinformationen lesen. In einigen Fällen möchtest du vielleicht tiefer in das Benutzer-Management einsteigen, aber klein anzufangen ist oft der beste Ansatz.
Jetzt kommst du den spannenden Teilen näher! Um deine App für die Authentifizierung einzurichten, musst du ein Client-Geheimnis erstellen. Das fungiert wie ein Passwort für deine Anwendung. Klicke auf "Zertifikate & Geheimnisse" und dann auf "Neues Client-Geheimnis". Füge eine Beschreibung hinzu und wähle einen Zeitraum für die Ablauffrist. Es ist in der Regel in Ordnung, die längste Lebensdauer für Entwicklungszwecke auszuwählen, aber achte darauf, strenge Richtlinien in der Produktion anzuwenden.
Mit deinem Client-Geheimnis in der Hand ist es Zeit, zu deinem IIS-Server zurückzukehren. Du musst das .NET Core Hosting Bundle installieren, falls du das noch nicht getan hast. Das ist wichtig, da es deinem IIS-Server ermöglicht, Apps auszuführen, die in .NET Core entwickelt wurden. Du findest dies auf der .NET-Website, und die Installation ist ziemlich schnell. Stelle nach der Installation sicher, dass du den IIS-Server neu startest, damit die Änderungen wirksam werden.
Jetzt lass uns in deine IIS-Anwendung eintauchen. Konfiguriere deine App so, dass sie Microsofts OWIN-Middleware für eine einfache Authentifizierung verwendet. Du musst die erforderlichen NuGet-Pakete hinzufügen. Öffne einfach dein Projekt in Visual Studio und greife auf den NuGet-Paket-Manager zu. Suche nach Paketen wie 'Microsoft.Owin.Security.OpenIdConnect' und 'Microsoft.Owin.Security.Cookies'. Installiere diese, da sie dir helfen werden, den Authentifizierungsfluss zu verwalten und Benutzersitzungen zu speichern.
Sobald du die Pakete hinzugefügt hast, ist es Zeit, deine Datei Startup.cs zu aktualisieren. Hier richtest du die OWIN-Middleware ein. Stelle sicher, dass du OpenID Connect konfigurierst, indem du etwas wie das Folgende in deine Methode Configuration hinzufügst. Vergiss nicht, Platzhalter durch deine tatsächlichen Details aus Azure zu ersetzen:
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = CookieAuthenticationDefaults.AuthenticationType,
});
app.UseOpenIdConnectAuthentication(new OpenIdConnectAuthenticationOptions
{
ClientId = "deine-client-id",
ClientSecret = "dein-client-geheimnis",
Authority = "https://login.microsoftonline.com/dein-mandanten-id/v2.0",
RedirectUri = "http://localhost/deine-app/signin-oidc",
ResponseType = "code id_token",
Scope = "openid profile",
Notifications = new OpenIdConnectAuthenticationNotifications
{
AuthenticationFailed = context =>
{
context.HandleResponse();
context.Response.Redirect("/Home/Error?message=" + context.Exception.Message);
return Task.FromResult(0);
}
}
});
Du musst sicherstellen, dass die Redirect-URI mit dem übereinstimmt, was du in Azure registriert hast. Es ist einfach, diese kleinen Details zu übersehen, aber sie sind entscheidend, damit der gesamte Fluss funktioniert.
Nachdem du dies eingerichtet hast, solltest du auch einen Controller und eine Ansicht erstellen, um Weiterleitungen zu handhaben und Benutzerinformationen anzuzeigen. Vielleicht startest du mit einem einfachen Controller, der eine URL für die Startseite behandelt, wo Benutzer ihren Namen oder ihre E-Mail sehen können, sobald sie authentifiziert sind.
Wahrscheinlich musst du auch deine Controlleraktionen schützen. Verwende das [Authorize]-Attribut in deinen Controllern oder spezifischen Aktionen, um sicherzustellen, dass nur authentifizierte Benutzer darauf zugreifen können. Das hilft, ein gewisses Maß an Sicherheit durchzusetzen und ermöglicht es dir, die Benutzer direkt nach einer erfolgreichen Authentifizierung willkommen zu heißen.
Beim Entwickeln möchtest du definitiv dein Setup testen. Öffne deinen Browser und navigiere zur URL deiner App. Du solltest zur Anmeldeseite von Microsoft weitergeleitet werden, wenn du versuchst, auf eine geschützte Ressource zuzugreifen. Wenn alles korrekt funktioniert, wirst du nach dem Einloggen zurück zu deiner App geleitet, wo du nun auf den authentifizierten Inhalt zugreifen kannst.
Manchmal wirst du auf ein paar Hindernisse stoßen. Ich hatte Momente, in denen ich dachte, ich hätte alles richtig gemacht, nur damit nichts funktionierte. Wenn du diese gefürchtete Meldung "401 Unauthorized" siehst, bedeutet das oft, dass ein Problem mit den Berechtigungen oder den Berechtigungen besteht, die du während der Registrierung festgelegt hast. Es ist eine gute Idee, diese Einstellungen im Azure-Portal zu überprüfen und sicherzustellen, dass alles korrekt ist.
Führe ein Protokoll über Fehler und Ausnahmen während deiner Entwicklung. Dies kann dir später Stunden von Kopfschmerzen ersparen. Wenn du Fehlerbehebung benötigst, zögere nicht, Haltepunkte in Visual Studio zu verwenden, während du durch deine Authentifizierungslogik gehst. Es zu sehen, kann oft Einblicke bieten, die einfache Protokolle nicht bereitstellen können.
Wenn du dies in der Produktion bereitstellst, denke daran, alle Entwicklungsartefakte zu bereinigen. Du möchtest die App-Berechtigungen wahrscheinlich auch noch einmal überprüfen. In einer Produktionsumgebung möchtest du wahrscheinlich restriktivere Berechtigungen verwenden, insbesondere wenn du mit sensiblen Benutzerdaten arbeitest.
Halte auch die Sicherheit jederzeit im Hinterkopf. Dinge wie das Validieren der Token, die du von Azure erhältst, können wichtig sein, um die Integrität der Benutzersitzungen sicherzustellen. Authentifizierung ist eine Sache, aber ein sicheres Umfeld aufrechtzuerhalten, ist ebenso entscheidend.
Bald wirst du feststellen, dass die Integration von IIS mit Azure AD für die Authentifizierung nicht nur die Sicherheit verbessert, sondern auch das Benutzermanagement vereinfacht. Du kannst ganz einfach neue Benutzer anlegen und kontrollieren, wer Zugriff auf was hat, wodurch du betriebliche Abläufe erheblich optimieren kannst.
Zusammenfassend lässt sich sagen, dass diese Reise zur Integration von IIS mit Azure AD anfangs zwar einschüchternd erscheinen mag, sie aber letztendlich lohnend ist. Mit Übung und der richtigen Denkweise wirst du bald das Gefühl haben, dies für deine Projekte selbstbewusst einzurichten. Und wer weiß? Vielleicht wirst du sogar diese Einblicke mit anderen Freunden teilen, die gerade erst anfangen.
Ich hoffe, du fandest meinen Beitrag nützlich. Übrigens, hast du eine gute Backup-Lösung für Windows Server? In diesem Beitrag erkläre ich, wie man Windows Server richtig sichert.