Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makalede, Azure App Service'te yerleşik kimlik doğrulaması ve yetkilendirme için OAuth belirteçlerini yönetme adımları gösterilmektedir.
Uygulama kodundaki belirteçleri al.
Azure App Service, sağlayıcıya özgü belirteçlerinizi istek üst bilgisine ekler, böylece bunlara kolayca erişebilirsiniz. Sağlayıcıya özgü belirteçleri almak için uygulama için belirteç deposu etkinleştirilmelidir.
İstemci kodunuzdan mobil uygulama veya tarayıcı içi JavaScript gibi bir HTTP GET
isteği /.auth/me
gönderin. Döndürülen JSON, sağlayıcıya özgü belirteçlere sahiptir.
Not
Erişim belirteçleri sağlayıcı kaynaklarına erişmeye yöneliktir, bu nedenle yalnızca sağlayıcınızı bir istemci gizli dizisiyle yapılandırdığınızda bulunur.
Aşağıdaki tabloda, birkaç App Service yerleşik sağlayıcısı için OAuth belirteci üst bilgisi adları listeleniyor:
Sağlayıcı | Başlık adları |
---|---|
Microsoft Entra | X-MS-TOKEN-AAD-ID-TOKEN X-MS-TOKEN-AAD-ACCESS-TOKEN X-MS-TOKEN-AAD-EXPIRES-ON X-MS-TOKEN-AAD-REFRESH-TOKEN |
X-MS-TOKEN-FACEBOOK-ACCESS-TOKEN X-MS-TOKEN-FACEBOOK-EXPIRES-ON |
|
X-MS-TOKEN-GOOGLE-ID-TOKEN X-MS-TOKEN-GOOGLE-ACCESS-TOKEN X-MS-TOKEN-GOOGLE-EXPIRES-ON X-MS-TOKEN-GOOGLE-REFRESH-TOKEN |
|
X | X-MS-TOKEN-TWITTER-ACCESS-TOKEN X-MS-TOKEN-TWITTER-ACCESS-TOKEN-SECRET |
Not
Farklı dil çerçeveleri bu üst bilgileri uygulama koduna küçük harf veya başlık büyük/küçük harf gibi farklı biçimlerde sunabilir.
Kimlik doğrulama belirteçlerini yenileme
Aşağıdaki bilgiler sağlayıcı belirteçlerini ifade eder. Oturum belirteçleri için bkz. Oturum belirteci sona erme müsaade süresini uzatma.
Sağlayıcınızın erişim belirtecinin süresi dolarsa, bu belirteci yeniden kullanabilmek için önce kullanıcının kimliğini yeniden doğrulamanız gerekir.
GET
çağrısı yaparak uygulamanızın /.auth/refresh
uç noktasına belirteç süresinin dolmasını önleyebilirsiniz.
Erişim belirtecinizi istediğiniz zaman yenilemek için herhangi bir dilde arama /.auth/refresh
yapın. Aşağıdaki kod parçacığı, bir JavaScript istemcisinden erişim belirteçlerinizi yenilemek için jQuery kullanır.
function refreshTokens() {
let refreshUrl = "/.auth/refresh";
$.ajax(refreshUrl) .done(function() {
console.log("Token refresh completed successfully.");
}) .fail(function() {
console.log("Token refresh failed. See application logs for details.");
});
}
Çağrıldığında App Service, kimliği doğrulanmış kullanıcının belirteç deposundaki erişim belirteçlerini otomatik olarak yeniler. Sonraki token istekleri yenilenmiş tokenleri alır. Uygulama kodunda belirteçleri alma başlığı altında listelenen üst bilgileri kullanarak belirteçlerin yenileme belirteçlerini ve son kullanma süresini görebilirsiniz.
Not
Uygulamanıza verdiği izinleri bir kullanıcı iptal ederse, /.auth/me
çağrınız 403 Forbidden
yanıtıyla başarısız olabilir. Hataları tanılamak için, ayrıntılar için uygulama günlüklerinizi denetleyin.
Sağlayıcıları yenileme belirteçleri sağlayacak şekilde yapılandırma
Belirteç yenilemenin çalışması için belirteç deposunun sağlayıcınızdan yenileme belirteçleri içermesi gerekir. Her sağlayıcı, yenileme belirteçlerini nasıl edineceklerini belgelemektedir. Aşağıdaki tabloda kısa bir özet sunulmaktadır:
Sağlayıcı | Belirteçleri yenileme |
---|---|
Microsoft Bilişim Sistemleri | Yenileme belirteçleri sağlamak için Microsoft Entra sağlayıcısını yapılandırma makalesindeki yordamı izleyin. |
Yenileme belirteçleri sağlamaz. Uzun süreli belirteçler 60 gün sonra sona erer. Daha fazla bilgi için bkz. Long-Lived Access Tokens. | |
API çağrınıza /.auth/login/google bir access_type=offline sorgu dizesi parametresi ekleyin. Daha fazla bilgi için bkz . Google Yenileme Belirteçleri. |
|
X | Erişim belirteçlerinin süresi dolmaz. Daha fazla bilgi için bkz. OAuth SSS. |
Microsoft Entra sağlayıcısını yenileme belirteçleri sağlayacak şekilde yapılandırma
- Azure portalında API Playground (önizleme) bölümüne gidin ve gerekirse Yeni istek'i seçin.
-
BURAYA API sürümü de dahil olmak üzere ARM göreli yolunu girin alanına aşağıdaki dizeyi girin ve yer tutucuları abonelik kimliğiniz, kaynak grubu adınız ve uygulama adınızla değiştirin:
subscriptions/<subscription-id>/resourceGroups/<resource-group>/providers/Microsoft.Web/sites/<app-name>/config/authsettingsV2?api-version=2024-11-01
- Yürüt'ü seçin.
- Sol üst köşedeki
PUT
'yı ve İstek gövdesi sekmesini seçin. -
GET
Yanıt gövdesi alanından yanıt içeriğini kopyalayın ve İstek gövdesi sekmesine yapıştırın. - Kodda
"identityProviders":
>"azureActiveDirectory":
>"login":
bölümünü bulun ve aşağıdaki satırı ekleyin:"loginParameters": ["scope=openid profile email offline_access"]
- Yürüt'ü seçin. Yanıt gövdesi alanında değişiklikleriniz gösterilir.
Offline_access , yenileme belirteçleri sağlayan kapsamdır. App Service varsayılan olarak diğer kapsamları zaten istemektedir. Daha fazla bilgi için bkz. OpenID Connect Kapsamları ve Web Uygulamaları - Güncelleştirme Kimlik Doğrulama Ayarları V2.
Oturum belirteci süre sonu yetkisiz kullanım süresini uzatma
Kimliği doğrulanmış oturumun süresi 8 saat sonra dolar ve 72 saatlik varsayılan yetkisiz kullanım süresi devam eder. Bu yetkisiz kullanım süresi içinde, kullanıcıyı yeniden kimlik doğrulaması yapmadan App Service ile oturum belirtecini yenileyebilirsiniz. Oturum belirteciniz geçersiz hale geldiğinde /.auth/refresh
çağrısını yapabilir ve belirtecin süresinin dolmasını kendiniz takip etmeniz gerekmez.
72 saatlik yetkisiz kullanım süresi aşıldığında, kullanıcının geçerli bir oturum belirteci almak için yeniden oturum açması gerekir. 72 saatten daha uzun bir süre sonu penceresine ihtiyacınız varsa, bunu uzatabilirsiniz, ancak bir kimlik doğrulama belirteci sızdırılırsa veya çalınırsa süre sonunun uzun bir süre uzatılması önemli güvenlik etkilerine neden olabilir. Ayarı varsayılan 72 saatte bırakmak veya uzantı süresini mümkün olan en küçük değere ayarlamak en iyisidir.
Varsayılan süre sonu penceresini genişletmek için Azure Cloud Shell'de aşağıdaki Azure CLI komutunu çalıştırın:
az webapp auth update --resource-group <group_name> --name <app_name> --token-refresh-extension-hours <hours>
Not
Tolerans süresi yalnızca App Service kimlik doğrulanmış oturumu için geçerlidir, kimlik sağlayıcılarının erişim belirteçleri için geçerli değildir. Süresi dolan sağlayıcı belirteçleri için tanınan ek süre yok.