Freigeben über


ClientAssertionCredential Klasse

  • java.lang.Object
    • com.azure.identity.ClientAssertionCredential

Implementiert

public class ClientAssertionCredential
implements TokenCredential

ClientAssertionCredential ruft ein Token über Clientassertion und Dienstprinzipalauthentifizierung ab. Diese Authentifizierungsmethode bietet eine sichere und skalierbare Möglichkeit für Clientanwendungen, auf Azure-Ressourcen zuzugreifen, ohne dass Benutzer ihre Anmeldeinformationen angeben müssen. Sie wird häufig in Szenarien verwendet, in denen eine Clientanwendung im Auftrag eines Benutzers auf Azure-Ressourcen zugreifen muss, z. B. in einer Anwendungsarchitektur mit mehreren Ebenen. Bei dieser Authentifizierungsmethode erstellt die Clientanwendung ein JSON-Webtoken (JWT), das Informationen zum Dienstprinzipal (z. B. seine Client-ID und Mandanten-ID) enthält und es mit einem geheimen Clientschlüssel signiert. Der Client sendet dieses Token dann als Identitätsnachweis an Azure Active Directory (Azure AD). Azure AD überprüft die Tokensignatur und überprüft, ob der Dienstprinzipal über die erforderlichen Berechtigungen für den Zugriff auf die angeforderte Azure-Ressource verfügt. Wenn das Token gültig und der Dienstprinzipal autorisiert ist, stellt Azure AD ein Zugriffstoken aus, das die Clientanwendung für den Zugriff auf die angeforderte Ressource verwenden kann. ClientAssertionCredential ruft ein Zugriffstoken mit einer Clientclientassertion für eine Dienstprinzipal-/registrierte AAD-Anwendung ab. Die tenantId, clientId und clientAssertion des Dienstprinzipals sind erforderlich, damit diese Anmeldeinformationen ein Zugriffstoken abrufen können. Sie kann sowohl in von Azure gehosteten als auch in lokalen Entwicklungsumgebungen für die Authentifizierung verwendet werden.

Als Voraussetzung ist ein Dienstprinzipal erforderlich, um diesen Authentifizierungsmechanismus zu verwenden. Wenn Sie nicht über einen Dienstprinzipal verfügen, finden Sie weitere Informationen unter Erstellen eines Dienstprinzipals mit der Azure CLI.

Beispiel: Erstellen eines einfachen ClientAssertionCredential

Im folgenden Codebeispiel wird die Erstellung eines ClientAssertionCredentialveranschaulicht, wobei verwendet wird, um sie ClientAssertionCredentialBuilder zu konfigurieren. Die tenantIdParameter und certificateclientId sind erforderlich, um zu erstellenClientAssertionCredential. Nachdem diese Anmeldeinformationen erstellt wurden, werden sie möglicherweise als "credential"-Parameter an den Generator vieler Client-Generatoren des Azure SDK für Java übergeben.

TokenCredential clientAssertionCredential = new ClientAssertionCredentialBuilder()
     .tenantId(tenantId)
     .clientId(clientId)
     .clientAssertion(() -> "<Client-Assertion>")
     .build();

Beispiel: Erstellen eines ClientAssertionCredential hinter einem Proxy

Im folgenden Codebeispiel wird die Erstellung eines ClientAssertionCredentialveranschaulicht, wobei verwendet wird, um sie ClientAssertionCredentialBuilder zu konfigurieren. Die tenantIdParameter und clientAssertionclientId sind erforderlich, um zu erstellenClientAssertionCredential. THe proxyOptions kann optional für einen Proxy konfiguriert werden. Nachdem diese Anmeldeinformationen erstellt wurden, werden sie möglicherweise als "credential"-Parameter an den Generator vieler Client-Generatoren des Azure SDK für Java übergeben.

TokenCredential assertionCredential = new ClientAssertionCredentialBuilder()
     .tenantId(tenantId)
     .clientId(clientId)
     .clientAssertion(() -> "<Client-Assertion>")
     .proxyOptions(new ProxyOptions(Type.HTTP, new InetSocketAddress("10.21.32.43", 5465)))
     .build();

Methodenzusammenfassung

Modifizierer und Typ Methode und Beschreibung
reactor.core.publisher.Mono<AccessToken> getToken(TokenRequestContext request)
AccessToken getTokenSync(TokenRequestContext request)

Geerbte Methoden von java.lang.Object

Details zur Methode

getToken

public Mono getToken(TokenRequestContext request)

Parameters:

request

getTokenSync

public AccessToken getTokenSync(TokenRequestContext request)

Parameters:

request

Gilt für: