Bildirim

Duet AI'ın adı Google Workspace için Gemini olarak değişti. Daha fazla bilgi

Kullanıcı ve cihaz bağlamına göre uygulamalara erişimi kontrol etme

Gelişmiş mod için bağlama duyarlı erişim örnekleri

Bu makalede, bağlama duyarlı erişimin kullanım alanlarıyla ilişkili olarak özel erişim düzeylerinden yararlanan politikalar açıklanmaktadır. Aşağıdaki örneklerle, gelişmiş modda Common Expressions Language (CEL) kullanarak özel erişim düzeyleri oluşturmayı öğreneceksiniz.

Dilerseniz CEL ifadelerini kullanarak özel erişim düzeyleri oluştururken işlevler ve makrolardan da yararlanabilirsiniz.

Bağlama duyarlı erişim arayüzü kullanılarak temel modda geliştirilen erişim düzeyi örneklerini Temel mod için bağlama duyarlı erişim örnekleri sayfasından inceleyebilirsiniz.

Kimlik doğrulama örnekleri

Bölümü aç  |  Tümünü daralt

Kullanıcıların giriş kimlik bilgilerinin gücüne göre erişim izni verme

Hassas veri içeren uygulamalara erişim sürecinin güvenliğini artırmak amacıyla, kullanıcının uygulamaya erişip erişemeyeceğine karar verirken, sistemde kimlik doğrulaması yapmak için kullanılan yöntemden yararlanabilirsiniz.

Örneğin, yalnızca şifreyle giriş yapan kullanıcıların hassas bilgi içermeyen uygulamalara erişmesine izin verirken, ikinci faktör olarak donanım güvenlik anahtarıyla giriş yapmış kullanıcıların en hassas kurumsal uygulamalara erişmesine izin verebilirsiniz.

Bu erişim düzeyinde, kullanıcıların 2 Adımlı Doğrulama için hem şifre hem donanım anahtarı kullanarak giriş yaptığını ve hassas uygulamalara erişebildiğini doğrulamak için request.auth özellikleri kullanılır.

request.auth.claims.crd_str.pwd == true && request.auth.claims.crd_str.hwk == true
Kimlik doğrulama bilgileri güçlü olan kullanıcılara erişim izni verme

Yöneticiler genellikle, kurumsal kaynaklara erişim izni vermeden önce kullanıcının güçlü kimlik bilgileriyle kimlik doğrulaması yapmasını ister. Aşağıdaki örnekte levels ve request.auth özellikleri şu şekilde kullanılmıştır:

  • Kullanıcı, şirkete ait bir cihazla oturum açıyorsa SMS dışında herhangi bir MFA yöntemi yeterli olur. (Bu yöntemler arasında push bildirimi, donanım/yazılım güvenlik anahtarı ve tek kullanımlık şifre yer alır.)
  • Kullanıcı, şirkete ait olmayan bir cihazla oturum açıyorsa donanım/yazılım güvenlik anahtarı kullanılmalıdır.

// Şirkete ait cihazlarda temel MFA'yı (SMS dışında), şirkete ait olmayan cihazlarda güvenlik anahtarını (donanım veya yazılım) zorunlu kıl
levels.Require_Secure_Device &&
(
  (
     levels.Require_Corporate_Device &&
     request.auth.claims.crd_str.mfa &&
     !request.auth.claims.crd_str.sms
  ) ||
  (
     !levels.Require_Corporate_Device &&
     (
        request.auth.claims.crd_str.hwk || request.auth.claims.crd_str.swk
     )
  )
)

Cihaz örnekleri

Bölümü aç  |  Tümünü daralt ve başa dön

BeyondCorp Alliance iş ortağının bildirdiği sinyallere göre cihazdan erişime izin verme

Bir BeyondCorp Alliance iş ortağı tarafından bildirilen cihaz sinyallerini kullanabilirsiniz. Bu örnekte, uygulama olarak Lookout Software kullanılmıştır.

Bu erişim düzeyinde, Google Workspace'e erişmek için kullanılan cihazın politikalara uyduğunu ve Lookout tarafından durum puanının Çok İyi olduğunun bildirildiğini doğrulamak için device özelliği kullanılır.

device.vendors["Lookout"].is_compliant_device == true && device.vendors["Lookout"].device_health_score == DeviceHealthScore.VERY_GOOD
Erişim iznini en son güncellemelerin yüklü olduğu yönetilen Chrome tarayıcıyla sınırlama

Bu erişim düzeyinde, kullanıcıların yönetilen bir Chrome tarayıcının en son sürümünü kullandığını doğrulamak için device özelliği kullanılır ve yalnızca bu tür tarayıcılar üzerinden erişime izin verilir.

device.chrome.management_state == ChromeManagementState.CHROME_MANAGEMENT_STATE_BROWSER_MANAGED && device.chrome.versionAtLeast("94.0.4606.81") 
Kurumsal sertifika kullanarak erişime izin verme

Bir cihazın şirkete ait bir varlık olup olmadığını belirlemek için özel erişim düzeylerindeki cihazlarda kurumsal sertifikalar kullanabilirsiniz. Bu erişim düzeyinde, öğe doğrulaması için device özelliği kullanılır. Daha fazla bilgi ve örnekler için Kurumsal sertifika koşullarını yapılandırma bölümünü okuyun.

Bir cihazın birden fazla sertifikası olabilir. Kurumsal sertifikalar, exists() makrosu kullanılarak özel bir erişim düzeyinde kullanılır. Örneğin:

device.certificates.exists(sertifika, koşul)

Bu örnekte sertifika, cihazın kurumsal sertifikasına bağlamak için koşul değişkeninde kullanılacak basit bir tanımlayıcıdır. exists() makrosu, her öğe için döndürülen koşul sonuçlarını veya (||) operatörüyle birleştirir. En az bir sertifika koşul ifadesini karşılıyorsa makrolar doğru değerini döndürür.

Aşağıdaki tabloda, özel erişim düzeyleriyle kullanmak üzere CEL ifadeleri oluşturmak için yararlanabileceğiniz özellikler listelenmiştir. Dize karşılaştırmalarının büyük/küçük harfe duyarlı olduğuna dikkatinizi çekeriz.

Özellik Açıklama Koşul ifadesi
örneği
(burada sertifika,
makroların bir tanımlayıcısıdır)
is_valid

Sertifika geçerliyse ve süresi dolmamışsa değer "doğru"dur.
(boole)

cert.is_valid
cert_fingerprint Sertifikanın parmak izi
(base64 doldurulmamış SHA256)
cert.cert_fingerprint == origin.
clientCertFingerprint()
root_ca_fingerprint Bu sertifikayı imzalamak için kullanılan kök CA sertifikasının parmak izi
(base64 doldurulmamış SHA256)
cert.root_ca_fingerprint == "the_fingerprint"
issuer

Sertifikayı verenin adı
(tümüyle genişletilmiş adlar)

Sertifikayı verenin adını bulmak için sertifikada aşağıdaki komutu çalıştırın:

$ openssl x509 -in ca_1.crt -noout
-issuer
issuer=
/C=IN/ST=UP/L=NCR/O=BCEDemo/
OU=BCEDemo_1/CN=inter_1/
emailAddress=test_inter1@beyondcorp.in

Erişim düzeyinde kullanılan sertifikayı veren dizesi, çıkışın tersidir ve "/" işareti virgül ile değiştirilir. Örneğin:

EMAILADDRESS=test_inter1@beyondcorp.in, CN=inter_1, OU=BCEDemo_1, O=BCEDemo, L=NCR, ST=UP, C=IN

cert.issuer == "EMAILADDRESS=test_inter1
@beyondcorp.in, CN=inter_1, OU=BCEDemo_1, O=BCEDemo, L=NCR, ST=UP, C=IN"
konu Sertifikanın konu adı
(tümüyle genişletilmiş adlar)
cert.subject == "CA_SUB"
serial_number

Sertifikanın seri numarası
(dize)

cert.serial_number == "123456789"
template_id Sertifika için X.509 uzantısı Sertifika Şablonu'nun şablon kimliği
(dize)
cert.template_id == "1.3.6.1.4.1.311.21.
8.15608621.11768144.
5720724.
16068415.6889630.81.
2472537.7784047"

Yaygın olarak kullanılan politika örnekleri:

Cihazın, şirket kök sertifikası tarafından imzalanmış geçerli bir kurumsal sertifikaya sahip olduğunu doğrulayın.

device.certificates.exists(cert, cert.is_valid && cert.root_ca_fingerprint == "ROOT_CA_FINGERPRINT")

Cihazdaki kurumsal sertifikayı vereni doğrulayın

device.certificates.exists(cert, cert.is_valid && cert.issuer == "EMAILADDRESS=test_inter1@beyondcorp.in, CN=inter_1, OU=BCEDemo_1, O=BCEDemo, L=NCR, ST=UP, C=IN")

Disk şifreleme ve ekran kilidi etkinleştirilmiş cihazlara erişime izin verme

Bu örnekte, hem disk şifrelemenin hem de ekran kilidinin etkinleştirilmesini zorunlu kılmak için device özelliği kullanılır. Ayrıca, cihazın yöneticiler tarafından onaylanması gerekir.

Varsayılan olarak, Endpoint Verification ile oluşturulan tüm cihazlar onaylanır. Bununla birlikte, cihazın kaybolması gibi durumlarda cihazı engellemek isteyebilirsiniz. Bu tür durumlarda ilgili cihazlardan şirket kaynaklarına erişilmesini istemezsiniz.

Bu belgedeki diğer erişim düzeyi örnekleri için, bu erişim düzeyinin adının require_Secure_Device olduğunu varsayacağız.  

// Disk şifrelemeyi ve ekran kilidini etkinleştirmeyi zorunlu kıl 
// Tüm büyük platformlarda uygulanabilir (Windows, Mac, Linux, CrOS, iOS, Android)
// Temel kabul edilir ve diğer tüm erişim düzeyleri bu düzeye bağımlı olmalıdır
device.encryption_status == DeviceEncryptionStatus.ENCRYPTED &&
device.is_secured_with_screenlock &&
device.is_admin_approved_device

Chrome tarayıcıyı temel güvenlik şartlarıyla kullanan cihazlara erişime izin verme

Bu örnekte erişim düzeyinde, Chrome tarayıcıyı temel güvenlik şartlarıyla kullanmayı zorunlu kılmak için device özelliği kullanılır.

// Chrome'un profil veya tarayıcı düzeyinde yönetilmesini, güvenlik işlemi raporlamasının
// etkinleştirilmesini ve 97 veya daha yüksek bir sürümün kullanılmasını zorunlu kıl
levels.Require_Secure_Device &&
(
  device.chrome.management_state == ChromeManagementState.CHROME_MANAGEMENT_STATE_BROWSER_MANAGED ||
  device.chrome.management_state == ChromeManagementState.CHROME_MANAGEMENT_STATE_PROFILE_MANAGED
) &&
device.chrome.is_security_event_analysis_enabled &&
device.chrome.versionAtLeast("97")

Chrome tarayıcıyı güvenlik şartlarıyla kullanan cihazlara erişime izin verme

Bu örnekte, kullanıcının yönetilen bir Chrome tarayıcı veya profil ile oturum açmasını ve Chrome'da tehdit ve veri koruma bağlayıcılarının etkinleştirilmesini zorunlu kılmak için device özelliği kullanılır. Daha önce açıklanan Yönetilen Chrome'u Zorunlu Kıl erişim düzeyi için ise örnekte levels özelliği kullanılır. Aşağıdaki örnekte, bağımlı erişim düzeyinin adının require_Managed_Chrome olduğu varsayılmıştır.

// Yönetilen Chrome'u ("Require_Managed_Chrome" erişim düzeyine bağımlı olarak),
// indirmeler için içerik denetimini ve URL kontrolünü etkinleştirmeyi zorunlu kıl
levels.Require_Managed_Chrome &&
device.chrome.is_file_download_analysis_enabled &&
device.chrome.is_realtime_url_check_enabled

Şirkete ait cihazlara erişime izin verme

Erişimi kontrol etmenin bir şartı, yalnızca cihaz şirket tarafından yönetildiğinde veya şirkete ait olduğuna erişime izin vermektir. Bir cihazın şirkete ait olup olmadığını veya yönetilip yönetilmediğini belirlemenin birçok yolu vardır. Bunlardan bazıları:

  • Cihazın şirketin öğe yönetim sistemindekiyle eşleşen bir seri numarası olup olmadığına bakma
  • Cihazın şirket tarafından verilen geçerli bir kurumsal sertifikaya sahip olup olmadığına bakma

Bu iki yaklaşım, cihazın şirkete ait olup olmadığını veya yönetilip yönetilmediğini belirlemek için levels ve device özelliklerini kullanan aşağıdaki özel erişim düzeyinde kontrol edilebilir.

// Aşağıdaki koşullardan biri geçerliyse cihaz şirkete aittir:
// 1. Seri numarası yöneticinin yüklediği numarayla eşleşirse
// 2. Cihazda geçerli bir kurumsal sertifika varsa
levels.Require_Secure_Device &&
(
   device.is_corp_owned_device ||
   device.certificates.exists(cert, cert.is_valid && cert.root_ca_fingerprint == "SOME_ROOT_CA_FINGERPRINT")
)

Parmak izi, DER kodlamalı sertifikanın doldurulmamış base64 kodlamalı sha256 özetidir (ikili biçimde). Dize, openssl ile aşağıdaki prosedür kullanılarak sertifikadan PEM biçiminde oluşturulabilir:

$ openssl x509 -in cert.pem -out cert.der -outform DER
$ openssl dgst -sha256 -binary cert.der >  digest.sha
$ openssl base64 -in digest.sha

Yalnızca CrowdStrike'taki cihaz verileri güncel olduğunda erişime izin verme
Falcon Sıfır Güven Değerlendirmesi (ZTA) puanı kapsamında CrowdStrike'ın yayınladığı iki zaman damgası vardır:
  • Oluşturulma zaman damgası (iat)
  • Bitiş zaman damgası (exp) (mevcut sürümde oluşturulma zaman damgasından 2 hafta sonra olarak gözükür)

Bu erişim düzeyinde, CrowdStrike verilerinin güncel olduğundan emin olmak için device özelliği kullanılır. Falcon ZTA'dan yeni değerlendirmeler alınırken BeyondCorp Enterprise'da 90 dakikalık bir gecikme yaşandığını unutmayın. Bu nedenle, bir saatten kısa sürelerin kullanılması önerilmez.

// Crowdstrike verileri için aşağıdaki koşullardan birinin geçerli olduğundan emin olun:
// Bu koşullardan birini karşılamalıdır
// 1. Cihaz son bir gün içinde değerlendirilmiştir
// 2. Değerlendirmenin süresi sona ermemiştir (son iat'den itibaren 2 hafta)
“CrowdStrike” in device.vendors && (
   request.time - timestamp(device.vendors["CrowdStrike"].data["iat"]) < duration("1d") ||
   timestamp(device.vendors["CrowdStrike"].data["exp"]) - request.time > duration("0m")
)

BeyondCorp Alliance'ın bir cihazı uyumlu olarak kabul ettiği durumlarda erişime izin verme

BeyondCorp Enterprise, cihaz sinyallerini ve bağlam temelli erişimi BeyondCorp Enterprise çözümüne entegre etmek için birçok BeyondCorp Alliance ekosistem iş ortağıyla birlikte çalışır. İş ortakları, BeyondCorp ile istedikleri sayıda özellik paylaşabilir. Bunlardan biri, is_compliant_device özelliğidir. Aşağıdaki örnekte, herhangi bir BeyondCorp Alliance iş ortağının BeyondCorp Enterprise ile entegre olup olmadığını ve cihazı uyumlu kabul edip etmeyeceğini nasıl kontrol edebileceğimizi göstermek için device özelliği kullanılmıştır.

exists makrosu, ifadeyi her bir BeyondCorp Alliance iş ortağı için || (veya) operatörüyle genişletir.

// BCA iş ortaklarının cihazı uyumlu kabul edip etmediğini kontrol et
["CrowdStrike", "Tanium", "PANW", "Check Point", "Lookout"].exists(
   v, v in device.vendors && device.vendors[v].is_compliant_device
)

Android doğrulanmış başlatma durumu yeşil olduğunda erişime izin verme

Bu örnekte, cihazların Android'in güvenli bir sürümünü çalıştırdığından emin olmak için device özelliği kullanılır.

Yürütülen kodun bir saldırgandan veya yolsuzluktan değil, güvenilir bir kaynaktan (genellikle cihaz OEM'leri) geldiği Doğrulanmış Başlatma kontrolleri. Ayrıntılı bilgi için Doğrulanmış Başlatma başlıklı makaleyi inceleyin.

// Android için doğrulanmış başlatma durumunun yeşil görünmesi gerekir
device.android_device_security.Verified_boot == true

CTS uygunluk kontrollerini geçen cihazlara erişim izin verme

Bu örnekte, cihazların Compatibility Test Suite (CTS) uygunluk kontrollerini geçmesini zorunlu kılmak için device özellikleri kullanılır. Ayrıntılı bilgi için Compatibility Test Suite başlıklı makaleyi inceleyin.

// Cihazların CTS uygunluk kontrollerini geçmesini zorunlu kıl
device.android_device_security.cts_profile_match == true

Google Play Protect'in Uygulama Doğrulama özelliğinin açık olduğu cihazlara erişime izin verme

Bu örnekte, cihazların Google Play Protect Uygulama Doğrulama'yı etkinleştirmesini zorunlu kılmak için device özellikleri kullanılır.

Uygulama Doğrulama, Google Play dışındaki kaynaklardan yüklenen uygulamaları tehditlere karşı tarar. Ayrıca, zararlı olabilecek uygulamalara karşı da cihazları düzenli olarak tarar. Uygulama Doğrulama özelliği varsayılan olarak açıktır. Gelişmiş yönetim kapsamındaki cihazlarda kullanıcıların bu ayarı devre dışı bırakıp bırakamayacağını belirleyebilirsiniz. Daha fazla bilgi için Android mobil cihazlara yönelik ayarları uygulama başlıklı makaleyi inceleyin.

// Cihazlarda Google Play Protect'in uygulamaları doğrulama özelliğini etkinleştirmesini zorunlu kıl
device.android_device_security.verify_apps_enabled == true

Potansiyel zararlı uygulamalara sahip cihazlara erişime izin vermeme

Bu örnekte, zararlı olabilecek uygulamalara sahip cihazlara erişimi reddetmek için device özellikleri kullanılır. Bu uygulamalar genellikle "kötü amaçlı yazılım" olarak adlandırılır. Ayrıntılı bilgi için Potansiyel Zararlı Uygulamalar (PHA'lar) başlıklı makaleyi inceleyin.

// Potansiyel zararlı uygulamalara sahip cihazlara erişimi reddet android_device_security.has_potentially_harmful_apps != true

Zamana dayalı erişim örnekleri

Bölümü aç  |  Tümünü daralt ve başa dön

Vardiyalı çalışanlara yalnızca çalışma saatleri içinde erişim izni verme

İşletmeler, vardiyalı çalışanlarının şirket kaynaklarına yalnızca çalışma saatleri içinde erişebildiğinden emin olmak ister. Aşağıdaki erişim düzeylerinde, pazartesiden cumaya 3 vardiyayı tanımlamak için levels özelliği kullanılmıştır.

// 1. Vardiya - pazartesiden cumaya, 00:00 ile 08:00 arası
levels.Require_Secure_Device &&
request.time.getDayOfWeek("America/Los_Angeles") >= 1 &&
request.time.getDayOfWeek("America/Los_Angeles") <= 5 &&
request.time.timeOfDay("America/Los_Angeles").between('00:00:00', '08:00:00')


// 2. Vardiya - pazartesiden cumaya, 08:00 ile 16:00 arası
level.require_Secure_Device &&
request.time.getDayOfWeek("America/Los_Angeles") >= 1 &&
request.time.getDayOfWeek("America/Los_Angeles") <= 5 &&
request.time.timeOfDay("America/Los_Angeles").16:00:00)


// 3. Vardiya - pazartesiden cumaya, 16:00 ile 00:00 arası
levels.Require_Secure_Device &&
request.time.getDayOfWeek("America/Los_Angeles") >= 1 &&
request.time.getDayOfWeek("America/Los_Angeles") <= 5 &&
request.time.timeOfDay("America/Los_Angeles").between('16:00:00', '00:00:00')


// Vardiyalı çalışanların, 4 Temmuz hariç tutularak pazartesiden cumaya 09:00 ile 17:00 arasında kaynaklara erişmesine izin verir.
levels.Require_Secure_Device &&
request.time.getDayOfWeek("America/Los_Angeles") >= 1 &&
request.time.getDayOfWeek("America/Los_Angeles") <= 5 &&
!(
  request.time.getMonth("America/Los_Angeles") == 6 &&
  request.time.getDayOfMonth("America/Los_Angeles") == 3
) &&
request.time.timeOfDay("America/Los_Angeles").between('09:30:00', '17:00:00')

Geçici erişime izin verme

Kuruluşlar bazen, yöneticinin güvenli bir cihaza erişimi olmadığı fakat kısa süreliğine acil erişime ihtiyaç duyduğu durumlarda acil durum erişimine izin vermek ister.

Bu durumda, levels özelliğini kullanarak zaman ve konum kısıtlamalı bir erişim düzeyi oluşturun ve bunu ilgili yöneticiye atayın. Bu erişim düzeyi atandığında, yalnızca belirtilen süre boyunca geçerli olur. Bu süre sona erdiğinde yönetici erişimi mevcut şartlarla tekrar kontrol edilir.

// 1 Mart 2022 tarihinde, 22:00 ile 00:00 arasında kaynaklara geçici erişim sağlar,
// bu erişim ABD bölgesi sınırları içinde verilmelidir.
levels.Require_Secure_Device &&
request.time.between('2022-03-01T23:00:00+08:00', '2022-03-02T23:59:59+08:00') &&
origin.region_code == “US”
// Bitiş zamanı özel olduğu için yukarıdaki koşulda kullanıcıya 
// son 2 saniye erişim sağlanmayabilir. Diğer bir seçenek ise şu koşulu kullanmaktır: 
// !between(‘00:00:01’,’16:00:00’)
 

İki düzeyden alınan koşulları birleştirme örneği

İki erişim düzeyinin koşullarını birleştirerek yeni bir erişim düzeyi tanımlama

Bu erişim düzeyinde levels özellikleri kullanılır ve kullanıcıların iki erişim düzeyinin koşullarını da karşılaması gerekir. Bu örnekte access_level_name_1 ve access_level_name_2, Dahili Ad'ı ifade eder.

levels.access_level_name_1 && levels.access_level_name_2

 

Bu size yardımcı oldu mu?

Bunu nasıl iyileştirebiliriz?
Arama
Aramayı temizle
Aramayı kapat
Ana menü
17254325648138503466
true
Yardım Merkezinde Arayın
true
true
true
true
true
73010
false
false