בדף הזה מוסבר איך להגדיר את האפליקציה, המשחק או ה-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, או לדלג ישירות לקישור פרויקט בענן ל-Google Play, ואז Play Integrity API יופעל בשבילכם.
במסוף Google Cloud, יוצרים פרויקט בענן חדש או בוחרים פרויקט בענן קיים שרוצים להשתמש בו עם Play Integrity API.
- עוברים אל APIs and services (ממשקי API ושירותים).
- לוחצים על 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 ב-Google Play SDK Console ולקשר את פרויקט בענן ל-SDK. הגישה ל-Google Play SDK Console כפופה לקריטריונים לזכאות.
כדי לבקש הגדלה:
- מקשרים את פרויקט הענן ב-Google Cloud ב-Google Play SDK Console.
- ממלאים את טופס התמיכה למפתחים.
בתגובות הפתוחות, צריך לציין את פרטי ה-SDK, לתאר את תרחיש השימוש, את סוג בקשות ה-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 ומסמנים את תיבת הסימון Enabled (מופעל).
מפעילים מחדש את פרויקט המשחק ומפעילים את הבנייה.
פותחים את הקובץ
Build.csשל הפרויקט ומוסיפים את המודולPlayIntegrityאלPublicDependencyModuleNames:using UnrealBuildTool; public class MyGame : ModuleRules { public MyGame(ReadOnlyTargetRules Target) : base(Target) { // ... PublicDependencyModuleNames.Add("PlayIntegrity"); // ... } }
מקורי
פועלים לפי מדריך ההגדרה המקורי. מידע נוסף מופיע במסמכי העזר של ה-API המקורי של Play Integrity.
הגדרת תגובות API (אופציונלי)
תשובת ה-API כוללת קביעות תקינות שמוחזרות כברירת מחדל בכל בקשה. אם קישרתם את פרויקט בענן ב-Play Console או ב-Play SDK Console, אתם יכולים להתאים אישית את תגובת ה-API כך שתכלול מידע נוסף.
קביעות תקינות שמוגדרות כברירת מחדל
קביעות התקינות הבאות מוחזרות בתגובה מ-Play Integrity API כברירת מחדל:
| שדה תשובה | ערך | תיאור |
|---|---|---|
| תקינות המכשיר | MEETS_DEVICE_INTEGRITY |
האפליקציה פועלת במכשיר Android מקורי ומאושר. ב-Android מגרסה 13 ואילך, יש הוכחה שמגובה בחומרה לכך שתוכנת האתחול של המכשיר נעולה ומערכת ההפעלה Android שנטענה היא תמונה מאושרת של יצרן המכשיר. |
| ריק (ערך ריק) | האפליקציה פועלת במכשיר שיש בו סימנים למתקפה (כמו API Hooking) או לפריצה למערכת (כמו רוט), או שהאפליקציה לא פועלת במכשיר פיזי (כמו אמולטור שלא עובר את בדיקות היושרה של 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. |
קביעות תקינות אופציונליות
אם קישרתם את פרויקט בענן ב-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, ..., 37 |
גרסת ה-SDK של מערכת ההפעלה Android שפועלת במכשיר.
המספר שמוחזר ממופה לערך
Build.VERSION_CODES. |
|
| ריק (ערך ריק) | לא מתבצעת הערכה של גרסת ה-SDK כי לא מתקיימת דרישה נדרשת. במקרה כזה, השדה sdkVersion לא מוגדר, ולכן השדה deviceAttributes ריק.
הסיבות לכך יכולות להיות:
|
||
| בקשות לטוקן תקינות של Standard API במכשיר הזה בשעה האחרונה לכל אפליקציה | בקשות לטוקן תקינות של 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 תנהל את הצפנת התשובות שלי (מומלץ).
- לוחצים על שמירת השינויים.