בדף הזה מוסבר איך להגדיר את האפליקציה, המשחק או ה-SDK לשימוש ב-Play Integrity API. כדי לשלב את ה-API, צריך פרויקט ב-Google Cloud, שנדרש כדי להתחיל לשלוח בקשות. אחרי זה תוכלו לקשר את הפרויקט שלכם ב-Google Cloud ב-Google Play Console (לאפליקציות) או ב-Google Play SDK Console (לערכות SDK). חובה לקשר את הפרויקט כדי לגשת לאפשרויות הגדרה נוספות, לתכונות בדיקה, לדיווח על API ולבקש הגדלה של מכסת הבקשות היומית.
הפעלת Play Integrity API
לכל אפליקציה או SDK שמפעילים את Play Integrity API צריך להיות פרויקט ב-Google Cloud כדי להשתמש ב-API ולעקוב אחרי השימוש. זהו השלב הראשון שחובה לבצע בכל השילובים. אפשר להפעיל את Play Integrity API במסוף Google Cloud, או לדלג ישירות לקישור פרויקט Cloud ל-Google Play, ואז Play Integrity API יופעל בשבילכם.
במסוף Google Cloud, יוצרים פרויקט חדש ב-Cloud או בוחרים פרויקט קיים ב-Cloud שרוצים להשתמש בו עם Play Integrity API.
- עוברים אל APIs and services.
- לוחצים על Enable APIs and services.
- מחפשים את Play Integrity API.
- לוחצים על הפעלה.
עכשיו אפשר לשלב את Play Integrity API באפליקציה. כדי לגשת לתכונות מתקדמות ולהגדיל את המכסה, צריך להמשיך לשלב הקישור.
קישור ל-Google Play (מומלץ)
כך מקשרים את האפליקציה או ה-SDK ל-Google Play.
לאפליקציות ולמשחקים ב-Google Play
אפליקציות שמופצות ב-Google Play צריכות לקשר את פרויקט Google Cloud שלהן אל Google Play Console כדי להפעיל תכונות נוספות ולבקש הגדלה של מכסת ה-API היומית.
- פותחים את Google Play Console ובוחרים את האפליקציה.
- עוברים אל בדיקה ופרסום > תקינות האפליקציה.
- בקטע Play Integrity API, לוחצים על קישור פרויקט בענן.
- בוחרים את הפרויקט ב-Google Cloud שבו רוצים להשתמש ב-Play Integrity API. אם ה-API הזה עדיין לא מופעל בפרויקט, הוא יופעל אוטומטית אחרי הקישור.
לספקי SDK ב-Play SDK Console
ספקי SDK שמשתמשים ב-Google Play SDK Console יכולים לקשר את פרויקט Google Cloud שלהם כדי לשייך את השימוש ב-API ל-SDK ולא לאפליקציות הספציפיות שמשתמשות בו, להפעיל תכונות נוספות ולבקש הגדלה של מכסת ה-API היומית. חשוב לזכור שהגישה ל-Google Play SDK Console כפופה לקריטריונים.
- פותחים את Google Play SDK Console ובוחרים את ה-SDK.
- עוברים אל תקינות ה-SDK
- בקטע Play Integrity API, לוחצים על קישור פרויקט בענן.
- בוחרים את הפרויקט ב-Google Cloud שבו רוצים להשתמש ב-Play Integrity API. אם ה-API הזה עדיין לא מופעל בפרויקט, הוא יופעל אוטומטית אחרי הקישור.
הסבר על מגבלות השימוש ב-Play Integrity API
לאפליקציה או ל-SDK שלכם מוגדרת מגבלה יומית של 10,000 בקשות בסך הכול, שמשויכת למספר פרויקט Cloud הרלוונטי. אם אתם צופים נפח גדול יותר, אתם יכולים לבקש הגדלה של המכסה.
| פעולה | מכסה יומית | פתקים |
|---|---|---|
| בקשות לטוקנים | 10,000 | משותף בין בקשות קלאסיות לבין הכנות רגילות לטוקנים |
| פענוח טוקנים בשרתים של Google | 10,000 | משותף לבקשות רגילות וקלאסיות |
הגדלת המספר המקסימלי של בקשות ביום
הגדלת המכסה כפופה לקריטריונים לזכאות. הגדלות של מכסת השימוש חלות גם על יצירת טוקנים בצד הלקוח וגם על קריאות לפענוח בצד השרת. הטיפול בבקשות עשוי להימשך עד שבוע. מומלץ לעקוב אחרי השימוש ב-Play Integrity API במסוף Google Cloud ולהגדיר התראות על מכסות כדי למנוע שיבושים בשירות.
גם אם המכסה גדולה יותר, חשוב להמשיך להגביל את הבקשות הקלאסיות לפעולות לא תכופות ובעלות ערך גבוה, כדי לחסוך בסוללה של המשתמשים ולצמצם את השימוש בנתונים.
לאפליקציות ולמשחקים ב-Google Play
כדי לעמוד בדרישות להגדלת המכסה, האפליקציה שלכם צריכה להיות זמינה ב-Google Play בנוסף לערוצי הפצה אחרים. צריך לקשר את הפרויקט ב-Google Cloud לאפליקציה ב-Play Console. בקשות להגדלת מכסה מפרויקטים לא מקושרים יידחו.
כדי לבקש הגדלה:
- מקשרים את הפרויקט הרלוונטי ב-Google Cloud ב-Play Console.
- מוודאים שהטמעתם את הלוגיקה של ה-API בצורה נכונה, כולל אסטרטגיות נכונות לניסיון חוזר.
- שולחים את טופס הבקשה להגדלת מכסה.
לספקי SDK ב-Play SDK Console
כדי לעמוד בדרישות להגדלת המכסה, צריך להצהיר על ה-SDK ב-SDK Console של Google Play ולקשר את פרויקט Cloud ל-SDK. הגישה ל-Google Play SDK Console כפופה לקריטריונים של זכאות.
כדי לבקש הגדלה:
- מקשרים את הפרויקט ב-Google Cloud ב-Google Play SDK Console.
- ממלאים את טופס התמיכה של Google Play SDK Console.
בקטע של ההערות הפתוחות, מתארים את תרחיש השימוש, את סוג בקשות ה-API שאתם שולחים (רגילות, קלאסיות או גם וגם), את התדירות שבה אתם שולחים בקשות ואת המספר המקסימלי של הבקשות ליום שאתם רוצים.
שילוב של Play Integrity API באפליקציה
כדי לשלב את Play Integrity API באפליקציה או ב-SDK, מבצעים אחת מהפעולות הבאות בהתאם לסביבת הפיתוח:
Kotlin או Java
הספרייה העדכנית ביותר של Android ל-Play Integrity API זמינה במאגר Maven של Google. מוסיפים את התלות הבאה לקובץ build.gradle של האפליקציה:
implementation 'com.google.android.play:integrity:1.6.0'
Unity
בקטעים הבאים מוסבר איך לשלב ולהגדיר את Google Play Integrity API בפרויקטים של Unity. הקטעים כוללים מידע על גרסאות Unity נתמכות, שיטות התקנה והגדרת הסביבה.
גרסאות Unity נתמכות
- כל הגרסאות של 2019.x, 2020.x וגרסאות חדשות יותר נתמכות.
- אם אתם משתמשים ב-Unity 2018.x, הגרסאות הנתמכות הן 2018.4 ואילך.
- גרסאות Unity 2017.x ומטה לא נתמכות.
הגדרת סביבת הפיתוח
OpenUPM-CLI
אם OpenUPM CLI מותקן, אפשר להתקין את מאגר OpenUPM באמצעות הפקודה הבאה:
openupm add com.google.play.integrityOpenUPM
פותחים את ההגדרות של מנהל החבילות על ידי בחירה באפשרות בתפריט Unity Edit > Project Settings > Package Manager (עריכה > הגדרות הפרויקט > מנהל החבילות).
מוסיפים את OpenUPM כמאגר חבילות עם היקף מוגדר לחלון Package Manager:
Name: package.openupm.com URL: https://package.openupm.com Scopes: com.google.external-dependency-manager com.google.play.common com.google.play.core com.google.play.integrityפותחים את התפריט של מנהל החבילות על ידי בחירה באפשרות בתפריט Unity Window > Package Manager.
בתפריט הנפתח 'היקף חשבון הניהול' בוחרים באפשרות הרישומים שלי.
בוחרים את חבילת Google Play Integrity plugin for Unity מרשימת החבילות ולוחצים על Install (התקנה).
ייבוא מ-GitHub
מורידים את הגרסה האחרונה של
.unitypackageמ-GitHub.מייבאים את הקובץ
.unitypackageעל ידי בחירה באפשרות בתפריט Unity Assets > Import package > Custom Package (נכסים > ייבוא חבילה > חבילה מותאמת אישית) וייבוא של כל הפריטים.
Unreal Engine
בקטעים הבאים מוסבר איך לשלב ולהגדיר את Google Play Integrity API בפרויקטים של Unreal Engine.
גרסאות נתמכות של Unreal Engine
הפלאגין תומך ב-Unreal Engine 5.0 ובכל הגרסאות הבאות.
הגדרת סביבת הפיתוח
מורידים את הפלאגין Play Unreal Engine ממאגר GitHub.
מעתיקים את התיקייה
GooglePlayבתוך התיקייהPluginsבפרויקט Unreal Engine.פותחים את הפרויקט ב-Unreal Engine ולוחצים על Edit → Plugins (עריכה → תוספים).
מחפשים את Google Play ומסמנים את תיבת הסימון מופעל.
מפעילים מחדש את פרויקט המשחק ומפעילים את תהליך הבנייה.
פותחים את הקובץ
Build.csשל הפרויקט ומוסיפים את המודולPlayIntegrityאלPublicDependencyModuleNames:using UnrealBuildTool; public class MyGame : ModuleRules { public MyGame(ReadOnlyTargetRules Target) : base(Target) { // ... PublicDependencyModuleNames.Add("PlayIntegrity"); // ... } }
מקורי
פועלים לפי מדריך ההגדרה המקורי. מידע נוסף מופיע במאמרי העזרה של Play Integrity API.
הגדרת תגובות API (אופציונלי)
תשובת ה-API כוללת קביעות תקינות שמוחזרות כברירת מחדל בכל בקשה. אם קישרתם את פרויקט Cloud ב-Play Console או ב-Play SDK Console, אתם יכולים להתאים אישית את תגובת ה-API כך שתכלול מידע נוסף.
קביעות תקינות שמוגדרות כברירת מחדל
קביעות התקינות הבאות מוחזרות בתגובה מ-Play Integrity API כברירת מחדל:
| שדה תשובה | ערך | תיאור |
|---|---|---|
| תקינות המכשיר | MEETS_DEVICE_INTEGRITY |
האפליקציה פועלת במכשיר Android מקורי ומאושר. ב-Android מגרסה 13 ואילך, יש הוכחה שמגובה בחומרה לכך שתוכנת האתחול של המכשיר נעולה ומערכת ההפעלה Android שנטענה היא תמונה מאושרת של יצרן המכשיר. |
| ריק (ערך ריק) | האפליקציה פועלת במכשיר שיש בו סימנים למתקפה (למשל, API hooking) או לפריצה למערכת (למשל, rooting), או שהאפליקציה לא פועלת במכשיר פיזי (למשל, אמולטור שלא עובר את בדיקות היושרה של Google Play). | |
| פרטי החשבון ב-Play | LICENSED |
למשתמש יש זכאות לאפליקציה. במילים אחרות, המשתמש התקין או עדכן את האפליקציה שלכם מ-Google Play במכשיר שלו. |
UNLICENSED |
למשתמש אין הרשאה להשתמש באפליקציה. זה קורה למשל כשהמשתמש מתקין את האפליקציה בשיטה חלופית, או לא מתקין אותה דרך Google Play. | |
UNEVALUATED |
פרטי הרישוי לא נבדקו כי לא עמדת בדרישה מסוימת. יכולות להיות לכך כמה סיבות, כולל:
|
|
| מהימנות אפליקציה | PLAY_RECOGNIZED |
האפליקציה והאישור תואמים לגרסאות שמופצות על ידי Google Play. |
UNRECOGNIZED_VERSION |
האישור או שם החבילה לא תואמים לרשומות ב-Google Play. | |
UNEVALUATED |
לא בוצעה הערכה של מהימנות האפליקציה. לא עמדתם בדרישה מסוימת, למשל המכשיר לא נחשב מהימן מספיק. |
Google Play Games במחשב
אם אתם מפיצים את המשחק שלכם ב-Google Play Games למחשב, תצטרפו באופן אוטומטי לקבלת תווית נוספת בתוצאת הבדיקה של תקינות המכשיר:
| שדה תשובה | תווית | תיאור |
|---|---|---|
| תקינות המכשיר | MEETS_VIRTUAL_INTEGRITY |
האפליקציה פועלת באמולטור Android שמבוסס על Google Play Services. האמולטור עובר את בדיקות התקינות של המערכת ועומד בדרישות התאימות הבסיסיות של Android. |
קביעות תקינות אופציונליות
אם קישרתם את פרויקט Cloud ב-Play Console או ב-Play SDK Console, תוכלו להביע הסכמה לקבלת מידע נוסף.
כדי לבצע שינויים, נכנסים ל-Play Console ועוברים אל בדיקה ופרסום > תקינות האפליקציה. לצד Play Integrity API, לוחצים על הגדרות. לוחצים על שינוי התשובות, עורכים ושומרים את השינויים.
פרטי המכשיר
תוויות נוספות של המכשיר בdeviceIntegrity
פסק הדין מספקות מידע נוסף על סביבת המכשיר שבה האפליקציה פועלת.
מכשיר אחד יכול להחזיר כמה תוויות אם הוא עומד בקריטריונים של כל אחת מהן.
אתם יכולים להשתמש בתוויות האלה כדי ליצור אסטרטגיית אכיפה מדורגת. לדוגמה, יכול להיות שתבחרו לתת אמון במכשיר שמחזיר שלוש תוויות (MEETS_STRONG_INTEGRITY, MEETS_DEVICE_INTEGRITY ו-MEETS_BASIC_INTEGRITY) יותר מאשר במכשיר שמחזיר רק תוויות אחת (MEETS_BASIC_INTEGRITY).
מאפייני המכשיר מציגים את גרסת Android SDK של מערכת ההפעלה Android במכשיר. יכול להיות שבעתיד נרחיב את התכונה הזו עם מאפיינים נוספים של מכשירים.
האות פעילות במכשיר מהזמן האחרון מחזיר רמה בטווח שבין LEVEL_1 (מספר נמוך של בקשות) לבין LEVEL_4 (מספר גבוה של בקשות). רמות פעילות גבוהות עשויות להצביע על שימוש במכשיר ליצירת מספר מוגזם של טוקנים לצורך הפצה פוגעת למכשירים לא מהימנים.
התכונה 'אחזור נתונים לפי מכשיר' מאפשרת לכם לאחסן נתונים מותאמים אישית לפי מכשיר במכשירים ספציפיים, ולאחזר אותם באופן מהימן כשהאפליקציה מותקנת מחדש במכשיר הזה בשלב מאוחר יותר.
אחרי שמביעים הסכמה לשיתוף מידע אופציונלי, תגובת ה-API תכלול שדות ותשובות חדשים בפסק הדין:
| שדה תשובה | תווית | תיאור | |
|---|---|---|---|
| תקינות המכשיר | MEETS_BASIC_INTEGRITY |
האפליקציה פועלת במכשיר שעובר את הבדיקות הבסיסיות של תקינות המערכת. תוכנת האתחול של המכשיר יכולה להיות נעולה או לא נעולה, ומצב ההפעלה יכול להיות מאומת או לא מאומת. יכול להיות שהמכשיר לא מאושר,
ובמקרה כזה Google לא יכולה לספק הבטחות לגבי אבטחה, פרטיות או תאימות לאפליקציות. ב-Android מגרסה 13 ואילך, כדי לקבל את התוצאה MEETS_BASIC_INTEGRITY, צריך ש-Google תספק את
בסיס האמון של האישור. |
|
MEETS_STRONG_INTEGRITY |
האפליקציה פועלת במכשיר Android מקורי ומאושר עם עדכון אבטחה מהזמן האחרון.
|
||
| מאפייני המכשיר | sdkVersion: 19, 20, ..., 36 |
גרסת ה-SDK של מערכת ההפעלה Android שפועלת במכשיר.
המספר שמוחזר ממופה ל-
Build.VERSION_CODES. |
|
| ריק (ערך ריק) | לא ניתן להעריך את גרסת ה-SDK כי לא עמדת בדרישה נדרשת. במקרה כזה, השדה sdkVersion לא מוגדר, ולכן השדה deviceAttributes ריק.
הסיבות לכך יכולות להיות:
|
||
| בקשות לטוקן תקינות של Standard API במכשיר הזה בשעה האחרונה לכל אפליקציה | בקשות קלאסיות לטוקן תקינות במכשיר הזה בשעה האחרונה לכל אפליקציה | ||
| פעילות במכשיר מהזמן האחרון | LEVEL_1 (הנמוך ביותר) |
10 או פחות | 5 או פחות |
LEVEL_2 |
בין 11 ל-25 | בין 6 ל-10 | |
LEVEL_3 |
בין 26 ל-50 | בין 11 ל-15 | |
LEVEL_4 (הגבוה ביותר) |
יותר מ-50 | יותר מ-15 | |
UNEVALUATED |
לא בוצעה הערכה של פעילות במכשיר מהזמן האחרון. הסיבות האפשריות לכך:
|
||
| שחזור ערכים לפי מכשיר | values: bitFirst, bitSecond, bitThird |
אלה ערכי הביטים שהגדרתם בעבר עבור המכשיר הספציפי. אתם מחליטים מה המשמעות של כל ביט. שלושת ערכי הביטים הם false כברירת מחדל. | |
writeDates: yyyymmFirst, yyyymmSecond, yyyymmThird |
אלה תאריכי הכתיבה של ערכי הביטים ב-UTC, ברמת דיוק של שנה וחודש. תאריך הכתיבה של ביט ההחזרה מתעדכן בכל פעם שהביט מוגדר כ-True, והוא מוסר כשהביט מוגדר כ-False. | ||
פרטי הסביבה
הסיכון לגישה לאפליקציה מאפשר לכם לדעת אם פועלות אפליקציות אחרות שיכולות לשמש לצילום המסך, להצגת שכבות-על או לשליטה במכשיר. שירותי נגישות מאומתים שמוכרים ל-Google Play מוחרגים אוטומטית מההכרעה הזו.
קביעת התקינות של Play Protect מציינת אם Google Play Protect מופעל במכשיר ואם הוא זיהה תוכנות זדוניות מוכרות.
אחרי שמביעים הסכמה לשיתוף מידע אופציונלי, התגובה של ה-API תכלול שדות ותשובות חדשים בחוות הדעת:
| שדה תשובה | ערך | תיאור |
|---|---|---|
| קביעת סיכון הגישה לאפליקציה | KNOWN_INSTALLED |
אפליקציות מותקנות על ידי Google Play או נטענות מראש במחיצת המערכת על ידי יצרן המכשיר. |
KNOWN_CAPTURING |
אפליקציות שהותקנו על ידי Google Play או שהוטענו מראש במכשיר פועלות ויכולות לשמש לקריאה או ללכידה של קלט ופלט של האפליקציה ששולחת את הבקשה, כמו אפליקציות להקלטת מסך. | |
KNOWN_CONTROLLING |
אפליקציות שהותקנו דרך Google Play או שהוטענו מראש במכשיר פועלות ויכולות לשמש לשליטה במכשיר ובקלט ופלט של האפליקציה ששולחת את הבקשה, כמו אפליקציות לשליטה מרחוק. | |
KNOWN_OVERLAYS |
אפליקציות שהותקנו דרך Google Play או נטענו מראש במכשיר פועלות ויכול להיות שהן מציגות שכבות-על באפליקציה ששולחת את הבקשה. | |
UNKNOWN_INSTALLED |
אפליקציות אחרות מותקנות, שלא הותקנו על ידי Google Play או נטענו מראש במחיצת המערכת על ידי יצרן המכשיר. | |
UNKNOWN_CAPTURING |
אפליקציות אחרות פועלות (לא הותקנו על ידי Play או נטענו מראש במכשיר) ויכולות לשמש לקריאה או ללכידה של קלט ופלט של האפליקציה ששולחת את הבקשה, כמו אפליקציות להקלטת מסך. | |
UNKNOWN_CONTROLLING |
אפליקציות אחרות פועלות (לא הותקנו דרך Play או נטענו מראש במכשיר) ויכולות לשמש לשליטה במכשיר ובקלט ופלט של האפליקציה ששולחת את הבקשה, כמו אפליקציות לשליטה מרחוק. | |
UNKNOWN_OVERLAYS |
אפליקציות אחרות פועלות (לא הותקנו דרך Play או נטענו מראש במכשיר) ויכול להיות שהן מציגות שכבות-על באפליקציה ששולחת את הבקשה. | |
| ריק (ערך ריק) | אם לא עמדתם בדרישה מסוימת, לא נבדוק את הסיכון לגישה לאפליקציה. במקרה הזה, השדה appAccessRiskVerdict ריק. יכולות להיות לכך כמה סיבות, כולל הסיבות הבאות:
|
|
| התוצאה של Play Protect | NO_ISSUES |
שירות Play Protect מופעל ולא נמצאו בעיות באפליקציות במכשיר. |
NO_DATA |
שירותי Play Protect מופעלים, אבל עדיין לא בוצעה סריקה. יכול להיות שהמכשיר או אפליקציית חנות Play אופסו לאחרונה. | |
POSSIBLE_RISK |
שירות Play Protect מושבת. | |
MEDIUM_RISK |
Play Protect מופעל ומצא אפליקציות שעלולות להזיק (PHA) שמותקנות במכשיר. | |
HIGH_RISK |
Play Protect מופעל ומצא אפליקציות מסוכנות שמותקנות במכשיר. | |
UNEVALUATED |
לא בוצעה הערכה של קביעת סטטוס הרישיון ב-Play Protect. לא עמדתם בדרישה מסוימת, למשל המכשיר לא נחשב מהימן מספיק. |
הגדרת הגדרות בקשה קלאסיות (אופציונלי)
אם אתם מתכננים לשלוח רק בקשות Standard API, אתם יכולים לדלג על הקטע הזה.
כברירת מחדל, Google Play מנהל את הצפנת התשובות, כלומר הקצה העורפי שלכם קורא לשרת של Google כדי לפענח את התוצאות. לחלופין, אתם יכולים לנהל את המפתחות בעצמכם כדי לבצע פענוח מקומי בסביבת השרת המאובטחת שלכם.
אני רוצה ש-Google תנהל את הצפנת התשובות שלי (מומלץ)
מומלץ לאפשר ל-Google ליצור ולנהל מפתחות כדי להגן על האבטחה של האפליקציה. הקצה העורפי יפעיל את השרת של Google Play כדי לפענח ולאמת את התשובות.
ניהול מפתחות הצפנה משלכם
כדי לפענח באופן מקומי בסביבת שרת מאובטחת משלכם, אתם יכולים להוריד מפתחות הצפנה מ-Play Console או מ-Play SDK Console. כדי להשתמש בתכונה הזו, האפליקציה צריכה להיות זמינה ב-Google Play.
לפני שמשנים את אסטרטגיית ניהול הצפנת התגובות ב-Play Console, חשוב לוודא שהשרת מוגדר בצורה נכונה לפענוח ולאימות של טוקנים שלמות בשרתים של Google Play, כדי למנוע שיבושים.
מעבר בין מפתחות הצפנה בניהול Google לבין מפתחות הצפנה בניהול עצמי
- פותחים את Play Console ובוחרים את האפליקציה .
- עוברים אל בדיקה ופרסום > תקינות האפליקציה.
- לצד Play Integrity API, לוחצים על הגדרות.
- בקטע בקשות קלאסיות, לצד הצפנת תגובה, לוחצים על עריכה.
כדי לעבור למפתחות בניהול עצמי:
- בוחרים באפשרות ניהול והורדה של המפתחות להצפנת תשובות ומעלים את המפתח הציבורי.
- לוחצים על שמירה כדי להוריד באופן אוטומטי את המפתחות המוצפנים.
- מעדכנים את שרת הקצה העורפי המאובטח כדי לפענח באופן מקומי באמצעות המפתחות האלה.
כדי לעבור למפתחות בניהול Google:
- בוחרים באפשרות אני רוצה ש-Google תנהל את הצפנת התשובות שלי (מומלץ).
- לוחצים על שמירת השינויים.