Vorgehensweise: Zwischenspeichern des Authentifizierungstokens

In diesem Artikel wird veranschaulicht, wie das Authentifizierungstoken zwischengespeichert wird, um die Leistung Ihrer Anwendung zu verbessern.

Verwenden von ASP.NET

Importieren Sie das NuGet-Paket Microsoft.Identity.Client, das zum Beziehen eines Tokens verwendet wird.

Erstellen Sie eine vertrauliche Clientanwendungseigenschaft.

private IConfidentialClientApplication _confidentialClientApplication;
private IConfidentialClientApplication ConfidentialClientApplication
{
    get {
        if (_confidentialClientApplication == null) {
            _confidentialClientApplication = ConfidentialClientApplicationBuilder.Create(ClientId)
            .WithClientSecret(ClientSecret)
            .WithAuthority($"https://login.windows.net/{TenantId}")
            .Build();
        }

        return _confidentialClientApplication;
    }
}

Verwenden Sie als nächstes den folgenden Code, um mithilfe der Authentifizierungswerte, die Sie beim Erstellen der Plastischer Reader-Ressource erhalten haben, ein AuthenticationResult abzurufen.

Wichtig

Das NuGet-Paket Microsoft.IdentityModel.Clients.ActiveDirectory und die Azure AD-Authentifizierungsbibliothek (Azure AD Authentication Library, ADAL) wurden als veraltet gekennzeichnet. Seit dem 30. Juni 2020 wurden keine neuen Features mehr hinzugefügt. Es wird dringend empfohlen, ein Upgrade durchzuführen. Ausführlichere Informationen finden Sie im Migrationsleitfaden.

public async Task<string> GetTokenAsync()
{
    const string resource = "https://cognitiveservices.azure.com/";

    var authResult = await ConfidentialClientApplication.AcquireTokenForClient(
        new[] { $"{resource}/.default" })
        .ExecuteAsync()
        .ConfigureAwait(false);

    return authResult.AccessToken;
}

Das AuthenticationResult-Objekt verfügt über eine AccessToken-Eigenschaft, bei der es sich um das tatsächliche Token handelt, das Sie beim Starten des plastischen Readers mit dem SDK verwenden. Außerdem verfügt es über eine ExpiresOn-Eigenschaft, die angibt, wann das Token abläuft. Vor dem Starten des plastischen Readers können Sie überprüfen, ob das Token abgelaufen ist, um ein neues Token nur dann abzurufen, wenn es abgelaufen ist.

Verwenden von Node.JS

Fügen Sie Ihrem Projekt das npm-Paket request hinzu. Verwenden Sie den folgenden Code, um mithilfe der Authentifizierungswerte, die Sie beim Erstellen der Plastischer Reader-Ressource erhalten haben, ein Token abzurufen.

router.get('/token', function(req, res) {
    request.post(
        {
            headers: { 'content-type': 'application/x-www-form-urlencoded' },
            url: `https://login.windows.net/${TENANT_ID}/oauth2/token`,
            form: {
                grant_type: 'client_credentials',
                client_id: CLIENT_ID,
                client_secret: CLIENT_SECRET,
                resource: 'https://cognitiveservices.azure.com/'
            }
        },
        function(err, resp, json) {
            const result = JSON.parse(json);
            return res.send({
                access_token: result.access_token,
                expires_on: result.expires_on
            });
        }
    );
});

Die expires_on-Eigenschaft ist der Zeitpunkt in Datum und Uhrzeit, zu dem das Token abläuft, ausgedrückt als die Anzahl der Sekunden, die seit dem 1. Januar 1970 UTC verstrichen sind. Verwenden Sie diesen Wert, um zu bestimmen, ob das Token abgelaufen ist, bevor Sie versuchen, ein neues Token abzurufen.

async function getToken() {
    if (Date.now() / 1000 > CREDENTIALS.expires_on) {
        CREDENTIALS = await refreshCredentials();
    }
    return CREDENTIALS.access_token;
}

Nächste Schritte