Yalıtılmış web uygulamaları (IWA'lar), web platformunun üzerinde yüksek düzeyde güvenilir, güvenli ve sürüme göre ayrılmış bir çalışma zamanı ortamı sunar. Üretim ortamlarında, özellikle de yönetilen kuruluşlarda yöneticilerin ve geliştiricilerin yazılım dağıtımları üzerinde ayrıntılı kontrole ihtiyacı vardır.
Chrome, bu şartları karşılamak için IWA'lar için güncelleme kanalları, sürüm sabitleme ve sürüm düşürme gibi kapsamlı sürüm yönetimi özellikleri sunar. Bu özellikler, dağıtım öngörülebilirliği ve kullanıcı tabanınızda hızlı kurtarma kontrolleri sağlar.
Kullanılabilirlik
Sürüm yönetimi davranışı, IWA'nın bir yönetici tarafından mı yönetildiğine yoksa doğrudan bir kullanıcı tarafından mı yüklendiğine bağlıdır:
- Yönetilen IWA'lar: Yönetim özellikleri (politikaya dayalı sabitleme ve eski sürüme geçme dahil) Chrome 133'ten itibaren kullanılabilir.
- Yönetilmeyen (Kullanıcı Tarafından Yüklenen) IWA'lar: Kullanıcılara yönelik özellikler (ör. manuel kanal seçimi) Chrome 150'den itibaren kullanılabilir.
Oturum türü uyumluluğu
Güncelleme kanalları ve sürüm sabitleme dahil olmak üzere tüm sürüm yönetimi işlevleri, tüm ChromeOS oturum türleriyle tamamen uyumludur. Bunlardan bazıları:
- Kullanıcı oturumları için standart yönetim
- Yönetilen misafir oturumları (MGS)
- Özel kiosk modu ortamları
Kanalları güncelleme
Geliştiriciler, güncelleme kanallarını kullanarak belirli uygulama derlemelerini farklı dağıtım ve test kitleleri için segmentlere ayırabilir. Kanalları yapılandırmak için uygulama güncelleme manifest'indeki her sürüm girişine isteğe bağlı bir kanal dizisi alanı ekleyin. Bu kanal adları, sabit platform anahtar kelimeleriyle (canary veya stable gibi) sınırlı değildir. Bunun yerine, geliştirici tarafından tanımlanan ve küçük harfli ASCII alfanümerik dizeler (tire veya alt çizgi içerebilir ancak boşluk içeremez) olarak biçimlendirilmesi gereken rastgele tanımlayıcılardır.
Bir sürüm girişinde kanallar alanı tamamen atlanırsa Chrome, kullanılabilirliğini dolaylı olarak "varsayılan" kanala ayarlar. Sonuç olarak, yönetim politikasında belirtilen kanal adı, manifest dosyasında tanımlanan dizeyle tam olarak eşleşmelidir. Herhangi bir yazım hatası veya yanlış yapılandırma, uygun bir sürümün tanımlanamamasına neden olur ve bu istemciler için güncellemeler durdurulur.
Manifest yapılandırması
Kanalları yapılandırmak için web uygulaması manifest dosyanızdaki her sürüm girişine isteğe bağlı bir channels dizisi ekleyin.
Göz önünde bulundurmanız gereken bazı noktalar şunlardır:
- Kanal eşleme: Bir sürüm girişi
channelsdizisi tanımlıyorsa bu sürüm yalnızca belirtilen kanallara yüklenebilir. - Varsayılan yedek: Bir sürüm girişinde
channelsalanı tamamen atlanırsa Chrome, sürümün yalnızcadefaultkanalına ait olduğunu varsayar. - Tam eşleme: İstemci taraflı politika yapılandırmalarında belirtilen kanal adları, güncelleme manifest'inde tanımlanan dizelerle tam olarak eşleşmelidir (büyük/küçük harfe duyarlı). Hedeflenen kanal adıyla eşleşen bir sürüm yoksa uygulama, uygun güncellemeleri bulamaz.
Güncelleme manifest'i örneği
Aşağıdaki örnekte, birden fazla sürüm kanalını destekleyen bir güncelleme manifest'i gösterilmektedir:
{
"versions": [
{
"version": "0.1.0",
"src": "https://github.com/chromeos/iwa-sink/releases/download/v0.1.0/iwa-sink.swbn",
"channels": ["delta"]
},
{
"version": "0.2.0",
"src": "https://github.com/chromeos/iwa-sink/releases/download/v0.2.0/iwa-sink.swbn",
"channels": ["delta", "default"]
},
{
"version": "0.3.0",
"src": "https://github.com/chromeos/iwa-sink/releases/download/v0.3.0/iwa-sink.swbn",
"channels": ["beta", "delta"]
},
{
"version": "0.4.0",
"src": "https://github.com/chromeos/iwa-sink/releases/download/v0.4.0/iwa-sink.swbn"
}
]
}
Bu manifest dosyasına göre, hedeflenen kanal başına aşağıdaki sürümler kullanılabilir:
- default:
0.2.0,0.4.0(açık bir kanal içermez ve varsayılan olarak default değerini alır) - delta:
0.1.0,0.2.0,0.3.0 - beta:
0.3.0
IWA güncelleme motoru, uygulamanın güncelleme manifest'inde bir kanallar alanı arayarak belirli sürüm kanallarını hedeflemeyi destekler.
Sürüm sabitleme
Yüksek düzeyde uyumluluk veya kararlılık gerektiren kurumsal ortamlarda yöneticiler, cihazların işletme açısından kritik yazılımların tam sürümlerini çalıştırdığından emin olmalıdır. Sürüm sabitleme, yöneticilerin bir IWA'yı belirli bir sürüme kilitlemesine ve sonraki tüm arka plan güncellemelerini durdurmasına olanak tanır. Bu sayede kuruluşlar, kararlı yapılandırmaları sürdürmek ve katı dahili veya sektör düzenlemelerine uymak için son derece güvenilir bir yönteme sahip olur.
Yalıtılmış web uygulamasını (IWA) belirli bir yayınlanan derlemede dondurmak için kurumsal yöneticiler, IsolatedWebAppInstallForceList politikasındaki pinned_version özelliğini yapılandırabilir. Bu özellik, standart IWA yükleme iş akışını uyguladıktan sonra Google Yönetici Konsolu'ndaki uygulamanın ayrıntılar panelinde bulunan etkileşimli kullanıcı arayüzü kontrolleri aracılığıyla yönetilir. Bununla birlikte, yöneticiler bu politika değerlerini doğrudan ham JSON yapılandırmalarını kullanarak dağıtma esnekliğine de sahiptir. Yönetici geçerli bir sürüm dizesini başarıyla hedefledikten sonra Chrome, bu paketi alır ve sonraki tüm otomatik ileri güncellemeleri engeller.
Özel davranışlar ve kısıtlamalar
- Güncellemeleri devam ettirme (Sabitlemeyi kaldırma): Otomatik güncellemeleri geri yüklemek için
pinned_versionözelliğini kaldırın veya değerini daha yeni bir hedef sürümle değiştirin. - Varsayılan olarak eski sürüme geçirilmez:
pinned_versionpolitikasını, yüklü olan sürümden daha eski bir sürüme ayarlamak,allow_downgradesaçıkça etkinleştirilmediği sürece geri alma işlemini tetiklemez. - Kullanılamayan sabitleme hedefleri: Yapılandırılan
pinned_version, belirlenen güncelleme kanalında yoksa veya yüklü sürümden daha eskiyse (sürüm düşürme devre dışı bırakılmışsa) Chrome, yüklü sürümü korur ve diğer güncellemeleri engeller. - Yeni dağıtımlar: Bir IWA, yönetilen bir cihaza henüz yüklenmemişse ve belirtilen pinned_version alınamıyorsa veya güncelleme manifest'inde yoksa IWA yüklenemez.
Sürüm düşürme
Yeni dağıtılan bir güncelleme kritik bir hataya veya güvenlik açığına neden olursa yöneticilerin cihazları önceki kararlı duruma geri alması gerekebilir. Chrome, önceden yüklenmiş yönetilen IWA'ların daha eski bir sürüme düşürülmesini destekler. Bu özellik, daha önce platformda yalnızca ileriye dönük güncellemelere izin verildiği için kullanılamıyordu.
Sürüm düşürme işlemi yalnızca aşağıdaki politika koşullarının her ikisi de karşılandığında mümkündür:
pinned_versiongeçerli ve daha eski bir sürüme ayarlanmış.allow_downgradesaçıkça "true" (doğru) olarak ayarlanmışsa.
Sürüm düşürmenin işleyiş şekli
- Tetikleme mekanizması: Geri alma işlemleri, normal güncelleme kontrol döngüsü sırasında (4-6 saatte bir çalışır) işlenir.
- Arka planda: Chrome, güncelleme manifest'inde belirtilen eski web paketini (.swbn) kullanarak IWA'yı tamamen yeniden yükler.
Kanal geçiş mantığı
Bir uygulamanın hedeflenen kanalını bir politikayla değiştirirken güncelleme motoru belirli davranışlara uyar:
Senaryo A: Önceki sürümlerin bulunduğu bir kanala geçiş
- Sürüm düşürmeye izin veriliyorsa: pinned_version, hedef kanaldaki eski bir sürümle eşleşiyorsa ve
allow_downgradesdoğruysa geri alma işlemi gerçekleşir (ve yerel kullanıcı verileri silinir). - Sürüm düşürmeye izin verilmiyorsa: Sürüm düşürme işlemi gerçekleşmez. Cihaz, yüklü olan daha yüksek sürümde kalır ve yalnızca yeni seçilen kanalda daha yeni bir sürüm kullanıma sunulduğunda güncellenir.
B Senaryosu: Aynı sürüme sahip bir kanala geçiş yapma
- Değişiklik yok: Yeni seçilen kanal, şu anda yüklü olan sürüm numarasına eşit bir sürüm numarasına işaret ediyorsa Chrome, yüklü pakette herhangi bir değişiklik yapmaz.
- Bayt bazında kimlik ilkesi: Geliştiriciler, farklı kanallardaki aynı sürüm numaralarının bayt bazında eşleşen aynı kod imzalarını içerdiğini garanti etmelidir. Kanallar genelinde aynı sürüm dizesi altında farklı kod tabanları dağıtmak, beklenmedik ve düzensiz uygulama durumlarına neden olabilir.
Yönetim politikası yapılandırması
Kurumsal sürüm denetimleri, IsolatedWebAppInstallForceList politika şeması kullanılarak merkezi Google Yönetici Konsolu platformuyla uygulanır. Bu ayarlar doğrudan Yönetici Konsolu'ndaki kullanıcı arayüzü kontrolleri aracılığıyla yönetilebilir veya ham JSON politika yapılandırmaları kullanılarak dağıtılabilir.
Aşağıdaki yönetim politikası yapılandırması örneğinde güncelleme kanalları, sürüm sabitleme ve sürümleri eski sürüme geçirme gösterilmektedir:
Politika değeri gösterimi
[
{
"update_manifest_url": "https://awesome-kitchen-sink.glitch.me/update.json",
"web_bundle_id": "aiv4bxauvcu3zvbu6r5yynoh4atkzqqaoeof5mwz54b4zfywcrjuoaacai",
"channel": "beta",
"pinned_version": "0.7.0",
"allow_downgrades": true
}
]
Şema parametresi açıklamaları
channel(dize, isteğe bağlı): Chrome'a, güncelleme manifest'inde yalnızca bu kanala atanmış sürümleri değerlendirmesi talimatını verir. Atlanırsa Chrome, "varsayılan" kanalı değerlendirir.pinned_version(dize, isteğe bağlı): Cihazı açıkça belirtilen sürüm dizesine kilitler. Sonraki otomatik arka plan güncellemeleri engellenir.allow_downgrades(boolean, isteğe bağlı): Geri alma özelliğini etkinleştirir. Bu politika doğru değerine ayarlanırsa ve geçerli, daha eski birpinned_versionile eşlenirse Chrome, eski sürüme geçirme amaçlı yeniden yükleme işlemini tetikler. Uyarı: Bu parametrenin "true" (doğru) olarak ayarlanması,pinned_versionalanı atlanmış olsa bile tüm standart ileriye dönük güncellemeleri engeller.
Yönetilmeyen (kullanıcı tarafından yüklenen) IWA'lar (150'den itibaren)
Yönetilmeyen, kullanıcı tarafından yüklenen yalıtılmış web uygulamalarında sürüm oluşturma, manuel kullanıcı etkileşimleriyle çalışır:
Yükleme Paketi ──► Kullanıcı Kanal Seçer ──► Seçilen Kanalda Otomatik Kontroller
Otomatik güncellemeler için manifest ön koşulu
Kullanıcı tarafından yüklenen IWA'ların arka planda otomatik periyodik güncellemeleri kontrol etmesi ve alması için uygulamanın yerel web uygulaması manifesti (/.well-known/manifest.webmanifest adresindeki pakette bulunan meta veriler) geçerli bir update_manifest_url alanı içermelidir.
Bu URL, uygulamanın yerel manifesto dosyasından çıkarılırsa yönetilmeyen güncelleme motoru hiçbir zaman arka plan kontrolleri yapmaz ve uygulama, ilk yükleme sürümünde kalıcı olarak dondurulur.
Manuel kanal seçimi
Yönetilmeyen bir IWA'nın ilk yüklemesi sırasında tarayıcı, güncelleme manifest'ini kontrol eder ve geliştirici birden fazla kanal yapılandırdıysa mevcut kanal seçeneklerini (ör. "Kararlı", "Beta") doğrudan kullanıcıya gösterir.
Anahtar yaşam döngüsü kuralları
- İlk yükleme kaynağı: Kullanıcının yükleme sırasında seçtiği kanaldan bağımsız olarak, ilk yükleme her zaman sağlanan yükleme paketinde bulunan dosyaları dağıtır.
- Sonraki güncellemeler: Yüklendikten sonra, gelecekteki güncellemeler yalnızca seçilen kanaldan sorgulanır. Uygulama yalnızca, yüklü sürümden daha yeni bir sürüm ilgili kanalda yayınlandığında güncellenir.
- Kanal değiştirme: Yükleme işleminden sonra farklı bir güncelleme kanalına geçmek için kullanıcının IWA'yı kaldırıp yeniden yüklemesi ve yükleme akışı sırasında seçilen kanalı belirlemesi gerekir.
Yönetilen dağıtımları test etme
Cihazları Chrome Enterprise Yönetici Konsolu üzerinden yöneten veya politikaları doğrudan yapılandıran yöneticiler için:
- Kuruluş ayarları altındaki Uygulama Ayrıntıları paneline gidin.
- Test sabitleme ve kanal hedeflerine yapılandırma özellikleri uygulama Bu kontroller standart kullanıcı oturumları, yönetilen misafir oturumları ve kiosklarla tam uyumlu olduğundan tüm hedef dağıtım ortamlarındaki davranışları doğrulayabilirsiniz.
- Güncelleme kontrollerini yerel olarak incelemek için bir test istemcisinde
chrome://web-app-internalsadresine giderek güncelleme kontrollerini manuel olarak zorunlu kılın ve gelen manifest paketlerini analiz edin.
Sonuç
Yalıtılmış web uygulamalarının güvenlik mimarisi, uygulama yaşam döngüsü davranışları üzerinde sıkı bir öngörülebilirlik ve kontrol sağlarken geliştiricileri desteklemek için tasarlanmıştır. Chrome'un sürüm yönetimi özelliklerinden yararlanan geliştiriciler ve BT yöneticileri, katı uyumluluk standartlarına ve operasyonel hedeflere uygun, sağlam dağıtım hatları oluşturabilir.
Uygulamanızın güncelleme stratejisini tasarlayıp yönetirken şu temel ilkeleri göz önünde bulundurun:
- Kademeli kanalları kullanın: Güncelleme kanalları (
beta,devveya özel halkalar gibi), telemetri ve geri bildirimleri kademeli olarak toplamanıza olanak tanır. Bu sayede, önemli güncellemeler varsayılan kanalda genel kullanıma sunulmadan önce titiz bir doğrulama sürecinden geçer. - Kararlılık için sabitleme: Son derece yapılandırılmış veya uyumluluk odaklı kurumsal ortamlarda, işlemleri beklenmedik kesintilerden veya iş akışı aksaklıklarından korumak için kritik uç noktaları doğrulanmış, tam bir pinned_version'a kilitleyin.
- Sürüm düşürmeyi acil durumlar için saklayın: Sürüm düşürmenin, daha önce mümkün olmayan güçlü ve düzeltici bir güvenlik önlemi olduğunu unutmayın. Ancak geri alma işlemi, tam bir yeniden yüklemeyi tetiklediğinden ve tüm yerel istemci depolama alanını (IndexedDB, LocalStorage, çerezler) temizlediğinden yalnızca kritik güvenlik düzeltmeleri için kullanılmalıdır. Sıradan yamalar için, ileriye dönük küçük bir güncelleme dağıtmak her zaman ideal stratejidir.
- Politika işaretlerini anlama: Yönetim anahtarlarına dikkat edin.
allow_downgradesetkinleştirildiğinde, etkin bir şekilde tanımlanmış bir sabitleme olmasa bile tüm ileriye dönük güncellemeler durdurulur. - Bayt bazında bütünlük sağlayın: İstemciler kanallar arasında geçiş yaparken düzensiz uygulama durumlarından kaçınmak için farklı kanallarda dağıtılan aynı sürüm numaralarının aynı, bayt eşleşmeli paketlerle eşleştiğinden emin olun.
Bu özellikleri doğrudan güncelleme manifest'inize ve kurumsal politika şemanıza entegre ederek yalıtılmış web uygulaması ekosisteminin yüksek güven garantilerini koruyan güvenilir, denetlenebilir ve güvenli bir güncelleme akışı sağlayabilirsiniz.