SharePoint tempauth URL’leri: Entra ID Token’a Geçiş
SharePoint Online ve OneDrive, URL’nin içine gömülen ön kimlik doğrulama (pre-authenticated) belirteçlerini kaldırıyor. Microsoft Graph dosya API’lerinden dönen ve bugüne kadar Authorization başlığı olmadan çalışan adresler, 1 Nisan 2027’den sonra geçerli bir Microsoft Entra ID erişim belirteciyle çağrılmak zorunda. Dosya indiren, yükleyen, önizleme üreten, biçim dönüştüren veya kopyalama işlemlerini izleyen her uygulamanın bu değişikliğe göre gözden geçirilmesi gerekiyor.
tempauth nedir, neden kaldırılıyor?
SharePoint, istemci ayrı bir kimlik doğrulama turu yapmadan içeriğe ulaşabilsin diye kısa ömürlü ve tek öğeye kapsamlanmış bir belirteci doğrudan URL’nin içine yerleştiriyordu. Bu belirteç çoğunlukla tempauth sorgu parametresi olarak görülüyor:
https://<tenant>.sharepoint.com/sites/samplesite/_layouts/15/download.aspx?UniqueId=<id>&tempauth=v1.ey...
URL’ler günlüklenir, önbelleğe alınır, iletilir ve saklanır; başlıkta taşınan bearer token’lar için aynı risk geçerli değil. Microsoft’un gerekçesi de güvenlik ve öngörülebilirlik bu yüzden. Kimlik doğrulama materyali URL’den tamamen çıkarılıyor, Entra ID tarafından verilen OAuth belirteçleri standart haline geliyor.
Bir API, içine belirteç gömdüğü için kimlik doğrulaması olmadan çalışan bir URL dönduruyorduysa, o URL artık istek anında geçerli bir Microsoft Entra ID erişim belirteci sunularak çağrılmalı. Akılda tutulması gereken ilke bu kadar.
Takvim
- Bugün: Microsoft Graph URL’leri için kiracı (tenant) düzeyinde opt-in ayarı kullanılabiliyor; uygulamanızı yeni davranışa karşı şimdiden doğrulayabilirsiniz.
- 1 Nisan 2027: Davranış değişikliği başlıyor. Etkilenen API’ler ön kimlik doğrulamalı URL’lere 302 yönlendirmesi döndürmeyi bırakıyor, yanıt gövdesinde dönen SharePoint Online URL’leri de artık
tempauthbelirteci taşımıyor.
Hangi API’ler etkileniyor?
Uygulamanız aşağıdaki Microsoft Graph API ailelerinden herhangi birini çağırıyorsa, büyük olasılıkla farkında olmadan ön kimlik doğrulamalı URL kullanıyorsunuz:
- Dosya indirme (Download a file)
driveItem: createUploadSession- Uzun süreli işlemler (kopyalama ve izleme)
driveItem: preview- Dosya veya klasör küçük resimlerini (thumbnail) alma
- Diğer biçimlere dönüştürme (Convert to other formats)
Bu API’ler bugün iki farklı desene göre çalışıyor ve her biri farklı şekilde değişiyor:
| Desen | Bugünkü davranış | Değişen |
|---|---|---|
| Yönlendirme (redirect) | API, Authorization başlığı gerektirmeyen kısa ömürlü bir ön kimlik doğrulamalı URL’ye 302 yönlendirmesi döndürür. |
302 yönlendirmesi döndürülmez. Uygulamanız yönlendirmeyi yakalamaya veya ona bağımlı olmaya devam edemez; içeriği doğrudan alır. |
| Yanıt gövdesindeki URL | API, yanıt gövdesinde kimlik doğrulamasız çağrılabilen kısa ömürlü bir URL döndürür. | Gövdedeki SharePoint URL’si artık ön kimlik doğrulamalı değil. SharePoint için alınmış bir Entra ID erişim belirtecini Authorization başlığında göndermeniz gerekir. |
Kod tabanınızda neyi arayacaksınız?
- Graph yanıtından
tempauth=,access_token=,uploadUrl,getUrl,@microsoft.graph.downloadUrlveya bir monitor URL’si okuyup bunu Authorization başlığı olmadan çağıran kodlar. - Bu çağrıların çevresinde
allowAutoRedirect = falseile yapılandırılmış HTTP istemcileri veyaLocationbaşlığını inceleyen mantık. - Dönen URL’nin kalıcı bir erişim nesnesi gibi saklandığı yerler: kuyruğa alma, veritabanına yazma, e-posta ile gönderme, başka bir servise aktarma veya doğrudan tarayıcıya verme.
İki geçiş yolu
Kaynağa göre şu an desteklenen tek bir hedef var, ikinci seçenek ise yakında geliyor. Uygulamaların çoğu ikisini birlikte kullanacak.
Yol A: SharePoint Online’ı doğrudan Entra ID belirteciyle çağırın
Graph alternatifi bulunmayan senaryolarda dönen adres, içine belirteç gömülmemiş düz bir SharePoint Online URL’si olacak. Bu konak için bir Entra ID erişim belirteci alıp Authorization başlığında sunmanız gerekiyor. Akışların çoğu böylece iki belirteçli hale geliyor; Graph API’yi çağırmak için zaten kullandığınız Graph belirteci duruyor, dönen SharePoint URL’sine erişmek için bir de SharePoint belirteci gerekiyor.
| Çağrılan | Audience |
|---|---|
| Microsoft Graph API’leri | https://graph.microsoft.com |
| SharePoint Online içerik URL’leri | https://{tenant}.sharepoint.com |
Kullanıcı tetiklemeli senaryolarda delegated, arka plan veya servis senaryolarında app-only erişim belirteçleri kullanın. Entra ID’deki uygulama kaydınız Files.Read veya Files.ReadWrite gibi Microsoft Graph izinlerinin yanında aynı işlemler için eşdeğer SharePoint Online izinlerini de taşımalı.
Yol B: Microsoft Graph URL’lerini kullanmaya devam edin
Geçişi kolaylaştırmak için yeni bir kiracı ayarı geliyor; SharePoint yöneticisi belirli uygulamaları, SharePoint Online veya medya servisi URL’leri yerine Microsoft Graph URL’leri alacak şekilde dahil edebiliyor. Bu ayar geçerli olduğunda uygulamanız elindeki Graph erişim belirtecini kullanmaya devam eder, ikinci bir belirteç ve yeni bir audience gerekmez.
Ayar, SharePoint Online Management Shell’deki mevcut pre-auth cmdlet’leri üzerinden -UseGraphUrl* anahtar ailesiyle sunulacak (gelecekteki SharePoint Online PowerShell sürümlerinde):
- Mevcut yapılandırmayı görüntüleyin:
Get-SPOTenantPreAuthSettings -UseGraphUrlSettingsile özelliğin açık olup olmadığını ve hangi uygulama kimliklerinin kapsandığını görün. - Önce hedefli bir uygulama listesiyle etkinleştirin:
Set-SPOTenantPreAuthSettingscmdlet’ini-UseGraphUrlIsEnabledve-UseGraphUrlAppsListile kullanarak belirli uygulama kimliklerini dahil edin. Listeyi boş bırakırsanız ayar tüm üçüncü taraf uygulamalar için geçerli olur; bunu yalnızca kiracınızı değerlendirdikten sonra tercih edin. - Kapatın:
-UseGraphUrlIsEnabled $false.
Test etmeden önce kapsam ve öncelik kurallarını bilmek gerekiyor:
- Ayar yalnızca üçüncü taraf uygulamalar için geçerlidir.
- Graph URL alternatifi olan desteklenen API’lerde yanıt, ön kimlik doğrulamasız bir Microsoft Graph URL’si içerir ve bu adrese Graph erişim belirteciyle erişilir.
- Graph URL alternatifi olmayan API’lerde yanıt, daha geniş kapsamlı kaldırma işlemi belirteci ortadan kaldırana kadar ön kimlik doğrulamalı SharePoint Online URL’si döndürmeye devam eder. Bu API’ler için Yol A’yı planlayın.
- Graph üzerinden geçmeyen istekler etkilenmez. SharePoint (Vroom) API’lerini doğrudan çağırıyorsanız bu kiracı ayarı sizin için bir şey yapmaz; Graph URL’leri yalnızca istek Graph üzerinden geldiğinde döndürülür.
Örnek senaryolar
Upload session
Önceden createUploadSession, tempauth belirteci taşıyan bir uploadUrl dönduruyor, parçalar da kimlik doğrulama başlığı olmadan yükleniyordu:
POST /drives/{drive-id}/items/{parent-id}:/{filename}:/createUploadSession
{ "uploadUrl": "https://...&tempauth=..." }
PUT {uploadUrl}
Artık aynı çağrı düz bir SharePoint Online URL’si dönduruyor. uploadUrl konağı için (örneğin https://{tenant}.sharepoint.com) belirteç alıp her parçada sunmanız gerekiyor:
{ "uploadUrl": "https://{tenant}.sharepoint.com/..." }
PUT {uploadUrl}
Authorization: Bearer {SharePoint Online access token}
Thumbnail
Önceden küçük resim içerik isteği, yönlendirme URL’sinde tempauth=... taşıyan bir HTTP 302 dönduruyor, resim de Authorization başlığı olmadan çekiliyordu. Artık küçük resmi tek istekte, takip edilecek bir yönlendirme olmadan ve aynı Graph belirteciyle alıyorsunuz:
GET /drives/{drive-id}/items/{item-id}/thumbnails/0/{size}/content
Authorization: Bearer {Microsoft Graph access token}
Preview
Önceden preview, ön kimlik doğrulama belirteci taşıyan bir getUrl dönduruyordu ve bu adres başlıksız çağrılabiliyordu:
POST /drives/{driveId}/items/{itemId}/preview
{
"getUrl": "https://www.onedrive.com/embed?foo=bar&bar=baz",
"postParameters": "param1=value¶m2=another%20value",
"postUrl": "https://www.onedrive.com/embed_by_post"
}
Çağrı ve yanıt yapısı değişmedi; ancak getUrl artık Authorization başlığıyla çağrılması gereken düz bir SharePoint URL’si:
GET {getUrl}
Authorization: Bearer {SharePoint Online access token}
driveItem indirme URL’si
Önceden driveItem yanıtı ön kimlik doğrulamalı bir @content.downloadUrl taşıyordu:
{
"@content.downloadUrl": "https://{tenant}.sharepoint.com/...?tempauth=.."
}
Kiracı yöneticisi, SharePoint Online PowerShell’in gelecek sürümünde Microsoft Graph URL’leri yeteneğini etkinleştirirse @content.downloadUrl bir Microsoft Graph contentStream URL’sine dönüşür ve Graph için alınmış Entra ID erişim belirteciyle çağrılır:
GET {@content.downloadUrl}
Authorization: Bearer {Microsoft Graph access token}
Hangi Graph API’sinin Graph URL’si döndüreceği, hangisinin SharePoint URL’sinden tempauth belirtecini kaldıracağı, hangisinin 302 yönlendirmesi üretmeyi bırakacağı API bazında Expected API behavior in Set-SPOTenantPreAuthSettings belgesinde tutulacak.
Geniş kapsamlı ön kimlik doğrulama denetimleri
Graph URL ayarı, yöneticilerin ön kimlik doğrulamayı kiracı genelinde kapatıp ardından uygulama ve özellik bazında istisnalar tanımlamak için kullandığı mevcut cmdlet ailesinin yanında yer alacak. Geliştirici tarafında iki nokta önemli:
- Deny, Allow’u ezer. Bir uygulama hem izin hem de reddetme listesindeyse hiçbir şey alamaz. Öncelik sırası: Deny, sonra Allow, sonra IsDisabled.
- İstisnalar özellik düzeyindedir. Ön kimlik doğrulama
Download,UploadSession,Thumbnailve diğer özellikler için ayrı ayrı izinli veya yasaklı olabilir. Uygulamanız bir kiracıda bozuluyorsa, yöneticiye uygulama kimliğiniz için hangi özelliklerin izinli olduğunu sormak çoğu zaman en hızlı teşhis yoludur.
Geçiş planı
Uygulama veya ISV çözümü geliştiriyorsanız:
- Yukarıdaki altı API ailesine dokunan her çağrı noktasını envantere alın.
- 302 yönlendirmesine dair tüm varsayımları kaldırın: yönlendirmeleri yakalamayı bırakın, HTTP istemcinizin içeriği doğrudan alabildiğinden emin olun.
- Mevcut Graph belirteci alımının yanına SharePoint Online belirteci alımını (
https://{tenant}.sharepoint.comaudience) ekleyin ve uygulama kaydınıza SharePoint Online izinlerini tanımlayın. - Dönen URL’leri kalıcı erişim nesnesi gibi görmeyi bırakın. Saklamayın, iletmeyin, sonradan kullanmak üzere kuyruğa almayın; bunun yerine Entra ID belirteçlerini standart OAuth rehberliğine göre önbelleğe alın.
- Mümkün olan yerde
driveItem/contentStreamtercih edin. Bu uç nokta içeriği zaten doğrudan dönduruyor,tempauthveya yönlendirme içermiyor ve bu değişikliklerden etkilenmiyor. - Ayarın yalnızca kendi uygulama kimliğiniz için etkinleştirildiği bir test kiracısında doğrulama yapın.
- Müşterilerinize güncellenmiş minimum sürüm rehberliğini 1 Nisan 2027’den çok önce duyurun.
SharePoint Online kiracısı yönetiyorsanız:
- Mevcut durumu görmek için
Get-SPOTenantPreAuthSettingsçalıştırın. - Dosya, sürüm, küçük resim, önizleme, upload session veya kopyalama işlemi URL’lerini Microsoft Graph üzerinden alan uygulamaları belirleyin.
- Bu uygulamaların geçici kimlik doğrulama bilgisi içeren URL’leri inceleyip incelemediğini, saklayıp saklamadığını veya bağımsız olarak kullanıp kullanmadığını kontrol edin.
- Ayarı önce sınırlı bir uygulama kimliği kümesi için etkinleştirin.
- Uygulama davranışını ve oturum açma hatalarını izleyin.
- Doğrulama tamamlandıktan sonra yapılandırmayı genişletin.
Bu ayarlar üretim kiracısında işlevsellik devre dışı bırakabilir, o yüzden her değişikliği önce bir test kiracısında değerlendirin. Kuruluşunuz etkilenen API’leri kullanmıyorsa ya da uygulamalarınız standart Entra ID kimlik doğrulamasıyla zaten doğrudan Microsoft Graph içerik uç noktalarına gidiyorsa yapmanız gereken bir şey yok.
Kaynaklar ve İleri Okuma
- Pre-authenticated (tempauth) URLs are retiring: move to Microsoft Entra ID tokens before April 1, 2027 — Microsoft 365 Developer Blog
- Microsoft Graph: Download a file (driveItem get content)
- Microsoft Graph: driveItem createUploadSession
- Microsoft Graph: Uzun süreli işlemlerle çalışma
- Microsoft Graph: driveItem preview
- Microsoft Graph: Dosya veya klasör küçük resimleri
- Microsoft Graph: Diğer biçimlere dönüştürme
- Get-SPOTenantPreAuthSettings
- Set-SPOTenantPreAuthSettings
- Clear-SPOTenantPreAuthSettings
- Microsoft identity platform’da OAuth 2.0 ve OpenID Connect protokolleri
- SharePoint RER emekliye ayrılıyor: 1 Temmuz 2027 son tarih
- EWS bildirimlerinden Microsoft Graph’a geçiş







Yorum gönder