Bewährte Methoden für die Sicherheit von Anwendungseigenschaften in Microsoft Entra-ID
Die Sicherheit ist ein wichtiges Konzept bei der Registrierung einer Anwendung in Microsoft Entra ID und ist ein entscheidender Teil der geschäftlichen Verwendung im Unternehmen. Jede Fehlkonfiguration einer Anwendung kann zu Downtime oder Gefährdung führen. Je nach den zu einer Anwendung hinzugefügten Berechtigungen kann es zu organisationsweiten Auswirkungen kommen.
Da sichere Anwendungen für die Organisation unerlässlich sind, können sich alle Downtimes aufgrund von Sicherheitsproblemen auf das Unternehmen oder einen kritischen Dienst auswirken, von dem das Unternehmen abhängt. Es ist also wichtig, Zeit und Ressourcen zuzuordnen, um sicherzustellen, dass Anwendungen immer in einem fehlerfreien und sicheren Zustand bleiben. Führen Sie eine regelmäßige Bewertung der Sicherheit und Integrität von Anwendungen durch, ähnlich wie eine Bewertung des Sicherheitsbedrohungsmodells für Code. Einen umfassenderen Überblick über die Sicherheit für Organisationen finden Sie unter Security Development Lifecycle (SDL).
In diesem Artikel werden bewährte Sicherheitsmethoden für die folgenden Anwendungseigenschaften beschrieben:
- Umleitungs-URI
- Zugriffstoken (die für implizite Flows verwendet werden)
- Zertifikate und Geheimnisse
- Anwendungs-ID-URI
- Anwendungsbesitz
Umleitungs-URI
Die Umleitungs-URIs Ihrer Anwendung müssen immer den aktuellen Stand aufweisen. Unter Authentifizierung für die Anwendung im Azure-Portal muss eine Plattform für die Anwendung ausgewählt werden und dann kann die Eigenschaft Umleitungs-URI definiert werden.
Beachten Sie die folgenden Hinweise für Umleitungs-URIs:
- Erhalten Sie den Besitz aller URIs aufrecht. Ein fehlerhafter Besitz einer der Umleitungs-URIs kann zu einer Kompromittierung der Anwendung führen.
- Stellen Sie sicher, dass alle DNS-Einträge in regelmäßigen Abständen aktualisiert und auf Änderungen überwacht werden.
- Verwenden Sie keine Platzhalter in Antwort-URLs oder unsichere URI-Schemata wie „http“ oder URN.
- Halten Sie die Liste klein. Kürzen Sie alle unnötigen URIs. Wenn möglich, aktualisieren Sie die URLs von HTTP zu HTTPS.
Zugriffstoken (die für implizite Flows verwendet werden)
Szenarios, die einen impliziten Flow erfordern, können jetzt den Auth-Codeflow verwenden, um das Risiko einer Kompromittierung durch den Missbrauch des impliziten Flows zu verringern. Unter Authentifizierung für die Anwendung im Azure-Portal muss eine Plattform für die Anwendung ausgewählt werden und dann kann die Eigenschaft Zugriffstoken (werden für implizite Flows verwendet) festgelegt werden.
Beachten Sie die folgenden Hinweise zum impliziten Flow:
- Feststellen, ob ein impliziter Flow erforderlich ist. Impliziten Flow nicht verwenden, es sei denn, dies ist explizit erforderlich.
- Wenn die Anwendung so konfiguriert wurde, dass sie Zugriffstoken über den impliziten Flow erhält, diese aber nicht aktiv verwendet, deaktivieren Sie die Einstellung, um sie vor Missbrauch zu schützen.
- Verwenden Sie separate Anwendungen für gültige implizite Flowszenarien.
Zertifikate und Geheimnisse
Zertifikate und Geheimnisse, auch Anmeldeinformationen genannt, sind ein wichtiger Bestandteil einer Anwendung, wenn sie als vertraulicher Client verwendet wird. Unter Zertifikate und Geheimnisse für die Anwendung im Azure-Portal können Zertifikate und Geheimnisse hinzugefügt oder entfernt werden.
Beachten Sie die folgenden Hinweise zum Thema „Zertifikate und Geheimnisse“:
- Verwenden Sie, wann immer möglich, Anmeldeinformationen in Form von Zertifikaten und nicht in Form von Kennwörtern, die auch als Geheimnisse bezeichnet werden. Es ist zwar praktisch, Kennwortgeheimnisse als Anmeldeinformationen zu verwenden, aber wenn möglich, sollten Sie x509-Zertifikate als einzigen Anmeldeinformationstyp verwenden, um Token für eine Anwendung abzurufen.
- Konfigurieren Sie Richtlinien für Anwendungsauthentifizierungsmethoden, um die Verwendung von Geheimnissen zu steuern, indem Sie ihre Lebensdauer einschränken oder ihre Verwendung vollständig blockieren.
- Verwenden Sie Key Vault mit verwalteten Identitäten, um Anmeldeinformationen für eine Anwendung zu verwalten.
- Wenn eine Anwendung nur als öffentliche Client-App verwendet wird (die es Benutzern ermöglicht, sich mithilfe eines öffentlichen Endpunkts anzumelden), stellen Sie sicher, dass im Anwendungsobjekt keine Anmeldeinformationen angegeben sind.
- Überprüfen Sie die in Anwendungen verwendeten Anmeldeinformationen auf Aktualität und deren Ablauf. Nicht verwendete Anmeldeinformationen für eine Anwendung können zu Sicherheitsverletzungen führen. Führen Sie regelmäßig einen Rollover der Anmeldeinformationen durch, und geben Sie sie nicht anwendungsübergreifend frei. Verwenden Sie nicht zu viele Anmeldeinformationen in einer Anwendung.
- Überwachen Sie Ihre Produktionspipelines, um zu verhindern, dass Anmeldeinformationen jeglicher Art in Coderepositorys committet werden.
- Credential Scanner ist ein statisches Analysetool, mit dem Sie Anmeldeinformationen (und andere vertrauliche Inhalte) im Quellcode und in der Buildausgabe erkennen können.
Anwendungs-ID-URI
Die Eigenschaft Anwendungs-ID-URI der Anwendung gibt den weltweit eindeutigen URI an, der zur Identifizierung der Web-API verwendet wird. Er ist das Präfix für Bereiche und in Zugriffstokens ist er auch der Wert des Zielgruppenanspruchs und er muss eine überprüfte Domäne verwenden, die im Besitz des Kunden ist. Bei mehrinstanzenfähigen Anwendungen muss der Wert auch global eindeutig sein. Auch als Bezeichner-URI bezeichnet. Unter Eine API verfügbar machen für die Anwendung im Azure-Portal kann die Eigenschaft Anwendungs-ID-URI definiert werden.
Beachten Sie die folgenden Hinweise zur Definition des Anwendungs-ID-URIs:
- Die URI-Schemata „api“ oder „https“ werden empfohlen. Legen Sie die Eigenschaft in den unterstützten Formaten fest, um URI-Konflikte in Ihrer Organisation zu vermeiden. Verwenden Sie keine Platzhalter.
- Verwenden Sie eine überprüfte Domäne in branchenspezifischen Anwendungen.
- Führen Sie ein Inventar der URIs in Ihrer Organisation, um die Sicherheit zu gewährleisten.
- Verwenden Sie den Anwendungs-ID-URI, um die WebApi in der Organisation verfügbar zu machen. Verwenden Sie den Anwendungs-ID-URI nicht, um die Anwendung zu identifizieren, sondern verwenden Sie stattdessen die Eigenschaft „Anwendungs-ID (Client)“.
Für Anwendungs-IDs auf Basis von API- oder HTTP-Schemas werden die folgenden URI-Formate unterstützt. Ersetzen Sie die Platzhalterwerte anhand der Liste, die im Anschluss an die Tabelle aufgeführt ist.
Unterstützte Anwendungs-ID URI-Formate |
URIs für Beispiel-App-IDs |
---|---|
api://<appId> | api://00001111-aaaa-2222-bbbb-3333cccc4444 |
api://<tenantId>/<appId> | api://aaaabbbb-0000-cccc-1111-dddd2222eeee/00001111-aaaa-2222-bbbb-3333cccc4444 |
api://<tenantId>/<string> | api://aaaabbbb-0000-cccc-1111-dddd2222eeee/api |
api://<string>/<appId> | api://productapi/00001111-aaaa-2222-bbbb-3333cccc4444 |
https://<tenantInitialDomain>.onmicrosoft.com/<string> | https://contoso.onmicrosoft.com/productsapi |
https://<verifiedCustomDomain>/<string> | https://contoso.com/productsapi |
https://<string>.<verifiedCustomDomain> | https://product.contoso.com |
https://<string>.<verifiedCustomDomain>/<string> | https://product.contoso.com/productsapi |
- <appId>: Die AppId-Eigenschaft (Anwendungsbezeichner) des Anwendungsobjekts.
- <string>: Der Zeichenfolgenwert für den Host oder das API-Pfadsegment.
- <tenantId>: Eine von Azure generierte GUID, die den Mandanten in Azure repräsentiert.
- <tenantInitialDomain> - <tenantInitialDomain>.onmicrosoft.com, wobei <tenantInitialDomain> der anfängliche Domänenname ist, den der Mandantenersteller bei der Mandantenerstellung angegeben hat.
- <verifiedCustomDomain> – eine überprüfte benutzerdefinierte Domäne, die für Ihren Microsoft Entra-Mandanten konfiguriert ist.
Hinweis
Wenn Sie das api:// Schema verwenden, fügen Sie direkt nach dem "api://" einen Zeichenfolgenwert hinzu. Beispiel: api://<Zeichenfolge>. Dieser Zeichenfolgenwert kann eine GUID oder eine beliebige Zeichenfolge sein. Wenn Sie einen GUID-Wert hinzufügen, muss er entweder mit der App-ID oder der Mandanten-ID übereinstimmen. Der Wert des Anwendungs-ID-URI muss für Ihren Mandanten eindeutig sein. Wenn Sie api://<tenantId> als Anwendungs-ID-URI hinzufügen, kann dieser URI in keiner anderen App verwendet werden. Es wird empfohlen, stattdessen api://<appId> oder das HTTP-Schema zu verwenden.
Wichtig
Der Wert für den Anwendungs-ID-URI darf nicht mit einem Schrägstrich (/) enden.
Konfiguration des App-Besitzes
Besitzer können alle Aspekte einer registrierten Anwendung verwalten. Es ist wichtig, regelmäßig zu überprüfen, wer die Verantwortung für alle Anwendungen in der Organisation trägt. Weitere Informationen finden Sie unter Microsoft Entra-Zugriffsüberprüfungen. Unter Besitzer für die Anwendung im Azure-Portal können die Besitzer der Anwendung verwaltet werden.
Beachten Sie die folgenden Hinweise zur Angabe der Besitzer der Anwendung:
- Für die Anwendung sollte eine minimale Anzahl von Besitzer innerhalb der Organisation festgelegt werden.
- Ein Administrator sollte die Liste der Besitzer alle paar Monate überprüfen, um sicherzustellen, dass die Besitzer immer noch Teil der Organisation sind und immer noch eine Anwendung besitzen sollten.
Integrations-Assistent
Der Integrations-Assistent im Azure-Portal kann verwendet werden, um sicherzustellen, dass eine Anwendung hohen Qualitätsansprüchen genügt und eine sichere Integration ermöglicht. Der Integrations-Assistent hebt bewährte Methoden und Empfehlungen hervor, die dazu beitragen, häufige unabsichtliche Fehler bei der Integration in der Microsoft Identity Platform-Instanz zu vermeiden.
Nächste Schritte
- Weitere Informationen zum Auth-Codeflow finden Sie unter OAuth 2.0-Autorisierungscodeflow.