Freigeben über


Vertrauliche Azure-Ledger-Authentifizierung mit Microsoft Entra-ID

Die empfohlene Methode für den Zugriff auf Azure Confidential Ledger besteht in der Authentifizierung bei Microsoft Entra ID. Dadurch wird sichergestellt, dass Azure Confidential Ledger niemals die Verzeichnisanmeldeinformationen des Prinzipals erhält.

Dazu führt der Client einen zweistufigen Prozess aus:

  1. Im ersten Schritt:
    1. Kommuniziert mit dem Microsoft Entra-Dienst.
    2. Authentifiziert sich beim Microsoft Entra-Dienst.
    3. Fordert der Client ein Zugriffstoken an, das speziell für Azure Confidential Ledger ausgestellt wurde.
  2. Im zweiten Schritt stellt der Client Anforderungen an Azure Confidential Ledger aus, wodurch das Zugriffstoken bereitgestellt wird, das im ersten Schritt als Identitätsnachweis für Azure Confidential Ledger erworben wurde.

Azure Confidential Ledger führt dann die Anforderung im Namen des Sicherheitsprinzipals aus, für den Microsoft Entra ID das Zugriffstoken ausgestellt hat. Alle Autorisierungsprüfungen werden mithilfe dieser Identität ausgeführt.

In den meisten Fällen empfiehlt es sich, eines der Azure Confidential Ledger-SDKs für den programmgesteuerten Zugriff auf den Dienst zu verwenden, da hierdurch ein Großteil des Aufwands vermeiden, unter anderem z. B. das Implementieren des oben genannten Flows. Weitere Informationen finden Sie z. B. in der Python-Clientbibliothek und der .NET-Clientbibliothek.

Die wichtigsten Authentifizierungsszenarien sind:

  • Eine Clientanwendung, die einen angemeldeten Benutzer authentifiziert: In diesem Szenario löst eine interaktive (Client)-Anwendung eine Microsoft Entra-Eingabeaufforderung zur Eingabe von Anmeldeinformationen (z. B. Benutzername und Kennwort) aus. Siehe Benutzerauthentifizierung.

  • Eine „Headless“-Anwendung: In diesem Szenario wird eine Anwendung ohne Zutun eines Benutzers ausgeführt, um Anmeldeinformationen bereitzustellen. Stattdessen authentifiziert sich die Anwendung bei Microsoft Entra ID mit bestimmten Anmeldeinformationen, mit denen sie konfiguriert wurde, als „sie selbst“. Siehe Anwendungsauthentifizierung.

  • On-Behalf-Of-Authentifizierung. In diesem Szenario, das manchmal auch als „Webdienst“- oder „Web App“-Szenario bezeichnet wird, erhält die Anwendung ein Microsoft Entra-Zugriffstoken von einer anderen Anwendung und konvertiert dieses dann in ein anderes Microsoft Entra-Zugriffstoken, das mit Azure Confidential Ledger verwendet werden kann. Mit anderen Worten, die Anwendung fungiert als Mediator zwischen dem Benutzer oder der Anwendung, der bzw. die die Anmeldeinformationen bereitgestellt hat, und Azure Confidential Ledger. Siehe On-Behalf-Of-Authentifizierung.

Microsoft Entra-Parameter

Microsoft Entra-Ressource für Azure Confidential Ledger

Beim Abrufen eines Zugriffstokens aus Microsoft Entra ID muss der Client angeben, für welche Microsoft Entra-Ressource das Token ausgestellt werden soll. Die Microsoft Entra-Ressource eines Azure Confidential Ledger-Endpunkts ist der URI des Endpunkts, wobei die Portinformationen und der Pfad nicht angezeigt werden.

Wenn Sie beispielsweise über einen Azure Confidential Ledger namens „myACL“ verfügen, wäre der URI:

https://myACL.confidential-ledger.azure.com

Microsoft Entra-Mandanten-ID

Microsoft Entra ID ist ein mehrinstanzenfähiger Dienst, und jede Organisation kann ein Objekt namens Verzeichnis in Microsoft Entra ID erstellen. Das Verzeichnisobjekt enthält sicherheitsbezogene Objekte wie Benutzerkonten, Anwendungen und Gruppen. Microsoft Entra ID nennt dieses Verzeichnis häufig Mandant. Microsoft Entra-Mandanten werden durch eine GUID (Mandanten-ID) identifiziert. In vielen Fällen können Microsoft Entra-Mandanten auch durch den Domänennamen der Organisation identifiziert werden.

Beispielsweise kann eine Organisation namens „Contoso“ die Mandanten-ID aaaabbbb-0000-cccc-1111-dddd2222eeee und den Domänennamen contoso.com aufweisen.

Microsoft Entra Authority-Endpunkt

Microsoft Entra ID verfügt über viele Endpunkte für die Authentifizierung:

  • Wenn der Mandant, der den authentifizierten Prinzipal hostet, bekannt ist (d. h. wenn man weiß, in welchem Microsoft Entra-Verzeichnis der Benutzer oder die Anwendung sich befindet), ist https://login.microsoftonline.com/{tenantId} der Microsoft Entra-Endpunkt. Hier ist {tenantId} entweder die Mandanten-ID der Organisation in Microsoft Entra ID oder der Domänenname (z. B. contoso.com).
  • Wenn der Mandant, der den authentifizierten Prinzipal hostet, nicht bekannt ist, kann der „allgemeine“ Endpunkt verwendet werden, indem {tenantId} oben durch den Wert common ersetzt wird.

Der für die Authentifizierung verwendete Microsoft Entra-Dienstendpunkt wird auch Microsoft Entra Authority-URL oder einfach Microsoft Entra Authoritygenannt.

Hinweis

Der Microsoft Entra-Dienstendpunkt ändert sich in nationalen Clouds. Wenn Sie einen Azure Confidential Ledger-Dienst verwenden, der in einer nationalen Cloud bereitgestellt wird, legen Sie den entsprechenden Microsoft Entra-Dienstendpunkt der nationalen Cloud fest. Um den Endpunkt zu ändern, legen Sie eine AadAuthorityUri-Umgebungsvariable auf den erforderlichen URI fest.

Benutzerauthentifizierung

Die einfachste Möglichkeit, auf Azure Confidential Ledger mit der Benutzerauthentifizierung zuzugreifen, besteht darin, das Azure Confidential Ledger-SDK zu verwenden und die Eigenschaft Federated Authentication der Azure Confidential Ledger-Verbindungszeichenfolge auf true festzulegen. Wenn das SDK zum ersten Mal verwendet wird, um eine Anforderung an den Dienst zu senden, wird dem Benutzer ein Anmeldeformular zur Eingabe der Microsoft Entra-Anmeldeinformationen angezeigt. Nach einer erfolgreichen Authentifizierung wird die Anforderung an Azure Confidential Ledger gesendet.

Anwendungen, die das Azure Confidential Ledger-SDK nicht verwenden, können trotzdem die Microsoft-Authentifizierungsbibliothek (MSAL) verwenden, anstatt den Microsoft Entra-Dienstsicherheitsprotokoll-Client zu implementieren. Siehe Ermöglichen Sie Ihren Web-Apps das Anmelden von Benutzern und das Aufrufen von APIs mit der Microsoft Identity-Plattform für Entwickler.

Wenn Ihre Anwendung als Front-End dienen und Benutzer für einen Azure Confidential Ledger-Cluster authentifizieren soll, müssen der Anwendung delegierte Berechtigungen für Azure Confidential Ledger erteilt werden.

Anwendungsauthentifizierung

Anwendungen, die Azure Confidential Ledger verwenden, müssen sich mithilfe eines Microsoft Entra ID-Tokens authentifizieren. Der Besitzer der Anwendung muss diese zuerst in Microsoft Entra ID registrieren. Bei der Registrierung wird auch ein zweites Anwendungsobjekt erstellt, das die App für alle Mandanten identifiziert.

Ausführliche Schritte zum Registrieren einer Azure Confidential Ledger-Anwendung bei Microsoft Entra ID finden Sie in den folgenden Artikeln:

Zum Abschluss der Registrierung erhält der Anwendungsbesitzer die folgenden Werte:

  • Eine Anwendungs-ID (auch bekannt als Microsoft Entra Client ID oder appID)
  • Einen Authentifizierungsschlüssel (auch bezeichnet als gemeinsames Geheimnis)

Die Anwendung muss beide dieser Werte in Microsoft Entra ID vorlegen, um ein Token zu erhalten.

Die Azure Confidential Ledger-SDKs verwenden die Azure Identity-Clientbibliothek, die die nahtlose Authentifizierung bei Azure Confidential Ledger über Umgebungen hinweg mit demselben Code ermöglicht.

.NET Python Java JavaScript
Azure Identity SDK .NET Azure Identity SDK Python Azure Identity SDK Java Azure Identity SDK JavaScript

On-Behalf-Of-Authentifizierung

In diesem Szenario wurde einer Anwendung ein Microsoft Entra-Zugriffstoken für eine beliebige von der Anwendung verwaltete Ressource gesendet. Die Anwendung verwendet dieses Token, um ein neues Microsoft Entra-Zugriffstoken für die Azure Confidential Ledger-Ressource abzurufen und so auf den Confidential Ledger im Namen des vom ursprünglichen Microsoft Entra-Zugriffstoken angegebenen Prinzipals zuzugreifen.

Dieser Flow wird als OAuth2-Tokenaustauschflow bezeichnet. Es erfordert in der Regel mehrere Konfigurationsschritte mit Microsoft Entra ID, und in einigen Fällen (abhängig von der Microsoft Entra-Mandantenkonfiguration) ist möglicherweise eine spezielle Zustimmung vom Administrator des Microsoft Entra-Mandanten erforderlich.

Nächste Schritte