Konsep Policy API
Dokumentasi ini menjelaskan konsep dan strategi Cloud Identity Policy API.
Pengurangan
Untuk mencantumkan dan mendapatkan kebijakan, lihat Menyiapkan Policy API serta Mencantumkan dan mendapatkan kebijakan.
Terminologi
Nilai setelan: nilai setelan yang diberikan dalam kebijakan
Nilai Setelan yang Dikurangi: nilai setelan akhir yang diterapkan ke target, seperti pengguna, unit organisasi, atau grup
Pengurangan: proses pengurangan nilai setelan pada kebijakan menjadi satu nilai setelan untuk target, seperti pengguna, unit organisasi, atau grup
Reducer: jenis aturan yang menentukan cara nilai setelan pada kebijakan disederhanakan menjadi satu setelan untuk pengguna
Kebijakan admin: kebijakan yang dibuat oleh administrator di konsol Admin
Kebijakan sistem: kebijakan yang disediakan oleh Google Workspace
Proses Pengurangan
Untuk mengurangi setelan tertentu bagi pengguna tertentu:
Memfilter semua kebijakan yang tidak berlaku untuk pengguna.
Memfilter kebijakan yang tidak berisi setelan tersebut.
Memfilter kebijakan yang berlaku untuk OU yang tidak berisi pengguna target.
Memfilter kebijakan yang berlaku untuk Grup yang tidak diikuti oleh pengguna target.
Memfilter kebijakan yang berlaku untuk Lisensi yang tidak dimiliki pengguna target. Untuk mempelajari informasi selengkapnya tentang lisensi, lihat bagian Lisensi.
Terapkan Reducer dari Setelan yang diberikan.
Max: Untuk setiap kolom pada setelan yang dikurangi, pereduksi Max memilih nilai dari kebijakan dengan sortOrder terbesar.
Merge: Untuk setiap kolom pada setelan yang dikurangi, pereduksi Merge memilih nilai dari kebijakan dengan sortOrder terbesar yang memiliki nilai untuk kolom tersebut. Jika kolom berupa array, Merge reducer akan menggabungkan nilai dari semua kebijakan.
MaxMap: Reducer MaxMap digunakan untuk setelan yang entri array-nya memiliki kolom yang berfungsi sebagai kunci utama. Reducer MaxMap tidak menggabungkan entri array dengan kunci utama yang sama. Namun, fungsi ini akan memperbarui entri menggunakan pengurang Max pada kolom lain dalam entri array yang memiliki kunci utama yang sama.
MergeMap: Reducer MergeMap digunakan untuk setelan yang entri array-nya memiliki kolom yang berfungsi sebagai kunci utama. Reducer MergeMap tidak menggabungkan entri array dengan kunci utama yang sama. Namun, metode ini memperbarui entri menggunakan pengurang Merge pada kolom lain dalam entri array yang memiliki kunci utama yang sama.
Daftar: Setelan ini tidak dikurangi menjadi satu setelan. Sebagai gantinya, seluruh urutan setelan dipertahankan dan diterapkan sebagai daftar.
Reducer untuk setelan
| Nama Setelan | Reducer |
api_controls.custom_user_message
|
Maks |
api_controls.google_services
|
MaxMap |
api_controls.internal_apps
|
Maks |
api_controls.unconfigured_third_party_apps
|
Gabungkan |
calendar.appointment_schedules
|
Maks |
calendar.external_invitations
|
Maks |
calendar.interoperability
|
Gabungkan |
calendar.primary_calendar_max_allowed_external_sharing
|
Gabungkan |
calendar.secondary_calendar_max_allowed_external_sharing
|
Gabungkan |
chat.chat_apps_access
|
Maks |
chat.chat_file_sharing
|
Maks |
chat.chat_history
|
Gabungkan |
chat.external_chat_restriction
|
Gabungkan |
chat.space_history
|
Maks |
classroom.api_data_access
|
Maks |
classroom.class_membership
|
Maks |
classroom.guardian_access
|
Maks |
classroom.originality_reports
|
Maks |
classroom.roster_import
|
Maks |
classroom.student_unenrollment
|
Maks |
classroom.teacher_permissions
|
Maks |
cloud_sharing_options.cloud_data_sharing
|
Maks |
detector.regular_expression
|
Daftar |
detector.word_list
|
Daftar |
drive_and_docs.drive_for_desktop
|
Maks |
drive_and_docs.drive_sdk
|
Gabungkan |
drive_and_docs.external_sharing
|
Maks |
drive_and_docs.file_security_update
|
Maks |
drive_and_docs.general_access_default
|
Maks |
drive_and_docs.shared_drive_creation
|
Maks |
gmail.attachment_compliance
|
MaxMap |
gmail.auto_forwarding
|
Maks |
gmail.blocked_sender_lists
|
MaxMap |
gmail.comprehensive_mail_storage
|
Maks |
gmail.confidential_mode
|
Maks |
gmail.content_compliance
|
MaxMap |
gmail.email_address_lists
|
MaxMap |
gmail.email_attachment_safety
|
Maks |
gmail.email_image_proxy_bypass
|
Gabungkan |
gmail.email_spam_filter_ip_allowlist
|
Maks |
gmail.enhanced_pre_delivery_message_scanning
|
Maks |
gmail.enhanced_smime_encryption
|
Maks |
gmail.imap_access
|
Gabungkan |
gmail.links_and_external_images
|
Maks |
gmail.mail_delegation
|
Gabungkan |
gmail.name_format
|
Gabungkan |
gmail.objectionable_content
|
MaxMap |
gmail.per_user_outbound_gateway
|
Maks |
gmail.pop_access
|
Maks |
gmail.rule_states
|
MaxMap |
gmail.spam_override_lists
|
MaxMap |
gmail.spoofing_and_authentication
|
Maks |
gmail.user_email_uploads
|
Maks |
gmail.workspace_sync_for_outlook
|
Maks |
groups_for_business.groups_sharing
|
Gabungkan |
meet.safety_access
|
Maks |
meet.safety_domain
|
Maks |
meet.safety_external_participants
|
Maks |
meet.safety_host_management
|
Maks |
meet.video_recording
|
Maks |
rule.dlp
|
Daftar |
rule.system_defined_alerts
|
Daftar |
security.advanced_protection_program
|
Maks |
security.less_secure_apps
|
Gabungkan |
security.login_challenges
|
Maks |
security.password
|
Maks |
security.session_controls
|
Maks |
security.super_admin_account_recovery
|
Gabungkan |
security.two_step_verification_device_trust
|
Maks |
security.two_step_verification_enforcement
|
Maks |
security.two_step_verification_enforcement_factor
|
Maks |
security.two_step_verification_enrollment
|
Maks |
security.two_step_verification_grace_period
|
Maks |
security.two_step_verification_sign_in_code
|
Maks |
security.user_account_recovery
|
Gabungkan |
SERVICE_STATUS_APP_NAME.service_status
|
Maks |
sites.sites_creation_and_modification
|
Maks |
user_takeout
|
Maks |
workspace_marketplace.apps_access_options
|
Gabungkan |
workspace_marketplace.apps_allowlist
|
MergeMap (kunci utamanya adalah: application_id) |
Lisensi
Kebijakan diterapkan kepada pengguna berdasarkan lisensi Workspace mereka. Kondisi lisensi disediakan di PolicyQuery.
Untuk mengetahui daftar lengkap semua ID Produk dan SKU Workspace, lihat ID Produk dan SKU Google.
Contoh berikut menunjukkan cara kebijakan dapat diterapkan ke grup pengguna tertentu berdasarkan lisensi pengguna tersebut.
Contoh 1: Hanya klausul normal
entity.licenses.exists(license, license in ['/product/Google-Apps/sku/1010020027'])
Kebijakan ini berlaku untuk pengguna jika mereka memiliki lisensi untuk setidaknya salah satu SKU dalam daftar.
Contoh 2: Klausa normal dan klausa inversi
entity.licenses.exists(license, license in ['/product/Google-Apps/sku/1010020027']) && !entity.licenses.exists(license, license in ['/product/Google-Apps/sku/1010060005'])
Kebijakan ini berlaku untuk pengguna jika mereka memiliki lisensi untuk setidaknya salah satu SKU dalam klausul pertama. Namun, jika pengguna memiliki lisensi untuk salah satu SKU dalam klausul kedua, kebijakan tersebut tidak berlaku sama sekali untuk pengguna tersebut.
Contoh 3: Hanya klausa terbalik
!entity.licenses.exists(license, license in ['/product/Google-Apps/sku/1010060005'])
Kebijakan ini berlaku untuk pengguna jika mereka tidak memiliki lisensi untuk SKU apa pun dalam daftar.
Nilai Kolom Default
Jika kolom tidak ada di Setelan yang Dikurangi, nilai defaultnya adalah sebagai berikut:
| Nama Setelan | Kolom | Nilai Kolom Default |
api_controls.google_services
|
layanan | [] (daftar kosong)
|
calendar.external_invitations
|
warn_on_invite | true
|
calendar.interoperability
|
enable_interoperability | false
|
calendar.primary_calendar_max_allowed_external_sharing
|
max_allowed_external_sharing | EXTERNAL_FREE_BUSY_ONLY
|
calendar.secondary_calendar_max_allowed_external_sharing
|
max_allowed_external_sharing | EXTERNAL_ALL_INFO_READ_ONLY
|
chat.chat_apps_access
|
enable_apps | true di SKU EDU, false di SKU non-EDU. SKU EDU:
|
| enable_webhooks | true di SKU EDU, false di SKU non-EDU. SKU EDU:
|
|
chat.chat_history
|
enable_chat_history | false
|
| history_on_by_default | false
|
|
| allow_user_modification | true
|
|
chat.external_chat_restriction
|
allow_external_chat | false
|
| external_chat_restriction | NO_RESTRICTION
|
|
chat.chat_and_space_restrictions
|
restriction_level | UNRESTRICTED
|
devices.android_available_apps
|
playstore_installable_apps | ALL
|
devices.android_verify_apps
|
turnoff_google_play_protect_allowed | false
|
devices.android_developer_options
|
allowed | false
|
devices.android_work_data_sync
|
allowed | true
|
devices.android_work_profile_sharing
|
allowed | false
|
devices.ios_apple_watch
|
no_wrist_detection_usage_allowed | true
|
devices.ios_backup_encryption
|
wajib | false
|
devices.ios_data_actions
|
external_data_sharing_allowed | true
|
| work_data_operation_type.non_workspace_apps_copy_paste_allowed | true
|
|
| work_data_operation_type.non_workspace_apps_sharing_allowed | true
|
|
| work_data_operation_type.personal_accounts_sharing_allowed | true
|
|
| work_data_operation_type.airdrop_sharing_allowed | true
|
|
| work_data_operation_type.files_printing_allowed | true
|
|
| work_data_operation_type.files_access_allowed | true
|
|
| work_data_operation_type.images_videos_saving_allowed | true
|
|
| work_data_operation_type.contacts_items_assignment_allowed | true
|
|
devices.ios_handoff
|
allowed | true
|
devices.ios_icloud_backup
|
allowed | true
|
devices.ios_lock_screen_control_center
|
allowed | true
|
devices.ios_lock_screen_notifications_view
|
allowed | true
|
devices.ios_safari_secure_browsing
|
fraudulent_website_warning_enforced | true
|
devices.android_google_play_private_apps
|
access_allowed | false
|
| publish_and_update_allowed | false
|
|
devices.android_screen_capture
|
allowed | true
|
devices.compromised_devices
|
compromised_android_devices_blocked | false
|
| jailbroken_ios_devices_blocked | false
|
|
devices.encryption
|
device_encryption_option | NOT_REQUIRED
|
devices.ios_icloud_storage
|
managed_apps_sync_allowed | true
|
devices.ios_screen_capture
|
allowed | true
|
devices.ios_keychain_sync
|
icloud_sync_allowed | true
|
devices.ios_document_sync
|
icloud_data_sync_allowed | true
|
devices.android_location_sharing
|
allowed | true
|
devices.android_apps_settings
|
modification_allowed | true
|
devices.android_trust_agents
|
smart_lock_allowed | true
|
devices.android_lock_screen_notifications
|
allowed | true
|
devices.android_lock_screen_notification_details
|
allowed | true
|
devices.android_unknown_source_apps
|
work_profile_installation_allowed | false
|
| personal_profile_installation_allowed | true
|
|
directory.external_directory_sharing
|
sharing_option | ORGANIZATION_DIRECTORY_DATA
|
drive_and_docs.drive_sdk
|
enable_drive_sdk_api_access | true
|
drive_and_docs.external_sharing
|
external_sharing_mode | ALLOWED
|
| allow_receiving_external_files | true
|
|
| warn_for_sharing_outside_allowlisted_domains | true
|
|
| allow_non_google_invites_in_allowlisted_domains | false
|
|
| allow_receiving_files_outside_allowlisted_domains | true
|
|
| warn_for_external_sharing | true
|
|
| allow_non_google_invites | true
|
|
| allow_publishing_files | true
|
|
| access_checker_suggestions | RECIPIENTS_OR_AUDIENCE_OR_PUBLIC
|
|
| allowed_parties_for_distributing_content | ALL_ELIGIBLE_USERS
|
|
drive_and_docs.general_access_default
|
default_file_access | LINK_SHARING_PRIVATE
|
gmail.auto_forwarding
|
enable_auto_forwarding | true
|
gmail.email_image_proxy_bypass
|
image_proxy_bypass_pattern | [] (daftar kosong)
|
| enable_image_proxy | true
|
|
gmail.email_spam_filter_ip_allowlist
|
allowed_ip_addresses | [] (daftar kosong)
|
gmail.links_and_external_images
|
apply_future_settings_automatically | true
|
| enable_aggressive_warnings_on_untrusted_links | false
|
|
gmail.mail_delegation
|
enable_mail_delegation | false
|
gmail.smime_encryption
|
enable_smime_encryption | STATUS_DISABLED
|
| allow_sha1_globally_in_smime_signature | false
|
|
gmail.spoofing_and_authentication
|
apply_future_settings_automatically | true
|
gmail.user_email_uploads
|
enable_mail_and_contacts_import | false
|
gmail.workspace_sync_for_outlook
|
enable_google_workspace_sync_for_microsoft_outlook | true
|
gmail.external_recipient_warning
|
diaktifkan | true
|
groups_for_business.groups_sharing
|
collaboration_capability | DOMAIN_USERS_ONLY
|
| create_groups_access_level | USERS_IN_DOMAIN
|
|
| view_topics_default_access_level | DOMAIN_USERS
|
|
| owners_can_allow_external_members | false
|
|
| owners_can_allow_incoming_mail_from_public | true
|
|
| owners_can_hide_groups | false
|
|
| new_groups_are_hidden | false
|
|
security.less_secure_apps
|
allow_less_secure_apps | false
|
security.password
|
allowed_strength | STRONG
|
| minimum_length | 8
|
|
| maximum_length | 100
|
|
| enforce_requirements_at_login | false
|
|
| allow_reuse | false
|
|
| expiration_duration | 0
|
|
security.super_admin_account_recovery
|
enable_account_recovery | false
|
security.two_step_verification_device_trust
|
allow_trusting_device | true
|
security.two_step_verification_enforcement
|
enforced_from | Tidak disetel |
security.two_step_verification_enforcement_factor
|
allowed_sign_in_factor_set | ALL
|
security.two_step_verification_enrollment
|
allow_enrollment | true
|
security.two_step_verification_grace_period
|
enrollment_grace_period | 0s
|
security.user_account_recovery
|
enable_account_recovery | false
|
workspace_marketplace.apps_access_options
|
access_level | Untuk pelanggan Sekolah dasar dan menengah: ALLOW_NONE
Jika tidak: ALLOW_ALL
|
| allow_all_internal_apps | false
|
|
workspace_marketplace.apps_allowlist
|
aplikasi | [] (daftar kosong)
|
Grup Sistem
Grup sistem Google adalah grup yang tidak ditampilkan di Groups API dan ditautkan ke kebijakan sistem. ID grupnya tidak diawali dengan groups/, tidak seperti ID grup lainnya. Tabel berikut mencantumkan grup ini dan pengguna yang termasuk di dalamnya.
| GroupId | Pengguna yang merupakan bagian dari grup ini |
WORKSPACE_ALL_ADMIN_GROUP
|
Semua administrator. |
UNCONSENTED_CHILD_GROUP
|
Pengguna EDU yang ditetapkan sebagai berusia di bawah 18 tahun dan tidak memiliki konfirmasi izin orang tua untuk satu atau beberapa layanan tambahan. |
Lisensi SKU yang Tidak Didukung
SKU yang tidak didukung oleh License Manager API tidak ada dalam format standar:
entity.licenses.exists(license, license in ['/product/{productId}/sku/{skuId}'])
Sebagai gantinya, parameter tersebut direpresentasikan dengan placeholder dalam string kueri:
entity.licenses.exists(license, license in ['{placeholder}'])
Contoh:
entity.licenses.exists(license, license in ['CHROMEBOOK-SOFTWARE'])
Tabel berikut mencantumkan SKU ini dan placeholder yang sesuai.
| Nama Produk | ID Produk | ID SKU | Placeholder |
| Software Chromebook | Google-Chrome-Device-Management
|
Google-Chrome-Device-Management-Perpetual
|
CHROMEBOOK-SOFTWARE
|
Google-Chrome-Device-Management
|
|||
Chrome-Active-Directory
|
|||
| Cloud Identity | 101001
|
1010010001
|
GOOGLE-IDENTITY
|