Kimlik doğrulama belirtecini önbelleğe alma

Bu makalede, uygulamanızın performansını geliştirmek için kimlik doğrulama belirtecini önbelleğe alma işlemleri gösterilmektedir.

ASP.NET kullanma

Microsoft.Identity.Client Belirteç almak için kullanılan NuGet paketini içeri aktarın. Ayrıntılar için bkz . Kimlik İstemcisi NuGet paketini yükleme.

Gizli bir istemci uygulaması özelliği oluşturun.

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;
    }
}

Ardından, Tam Ekran Okuyucu kaynağını oluştururken elde ettiğiniz kimlik doğrulama değerlerini kullanarak bir AuthenticationResultalmak için aşağıdaki kodu kullanın.

Önemli

Microsoft.IdentityModel.Clients.ActiveDirectory NuGet paketi ve Azure AD Kimlik Doğrulama Kitaplığı (ADAL) kullanım dışı bırakıldı. 30 Haziran 2020'den bu yana yeni özellik eklenmedi. Yükseltmenizi kesinlikle öneririz. Daha fazla bilgi edinmek için geçiş kılavuzuna bakın.

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;
}

AuthenticationResult nesnesi, SDK kullanarak Tam Ekran Okuyucu başlatırken kullandığınız gerçek belirteç olan bir AccessToken özelliğe sahiptir. Ayrıca belirtecin süresi dolduğunda belirten bir ExpiresOn özelliği vardır. Tam Ekran Okuyucu başlatmadan önce belirtecin süresinin dolup dolmadığını denetleyebilirsiniz ve yalnızca süresi dolduysa yeni bir belirteç alabilirsiniz.

Node.JS kullanma

projenize istek npm paketini ekleyin. Tam Ekran Okuyucu kaynağını oluştururken aldığınız kimlik doğrulama değerlerini kullanarak bir belirteç almak için aşağıdaki kodu kullanın.

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
            });
        }
    );
});

expires_on özelliği, belirtecin süresinin dolduğu tarih ve saattir ve 1 Ocak 1970 UTC'den bu yana saniye sayısı olarak ifade edilir. Yeni bir belirteç almaya çalışmadan önce belirtecinizin süresinin dolup dolmadığını belirlemek için bu değeri kullanın.

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

Sonraki adım