Logo GH

אימות ואישור

לולאת AuthN/AuthZ אמינה היא נקודת אמת אחת לגבי מי אתה (אימות) ומה מותר לך לעשות (אישור). בפלטפורמה עם הרבה מותגים, אזורים, אינטגרציות ודרישות רגולטוריות גבוהות, קונטור זה צריך להיות מודולרי, נצפה ונוהל על ידי פוליטיקאים, ולא ”פיזור של if-s על ידי שירותים”.

1) מונחים ותפקידים בסיסיים

זיהוי (ID): זיהוי (משתמש, שירות, ספק).
אימות (AuthN): הוכחה לזהות (סיסמה, MFA, תעודה).
אישור (AuthZ) - פוליסי ומבוסס הקשר יכול/לא יכול להחליט.
PDP/PEP: Policy Decision Point/Policy Appication Point.
IDP: ספק זהות (OIDC).
נושא/משאב/פעולה/הקשר: מי/מה/מה עושה/באילו תנאים.

2) ארכיטקטורת לולאה כללית


[ IdP (OIDC) ]
│ OIDC/OAuth 2. 1 (PKCE, JAR/JARM)

[ Token Service / JWKS / KMS ]
│klyuchi (rotate)
│ JWT/Access/Refresh, mTLS

[API Gateway (PEP)] Solution/Policy ──kesh
│ authN/CSRF/CORS/rate-limit

[ Microservices (PEP)]──PDP (OPA/cedar) ──Policy Store (GitOps)
│audit/metriki

[ Data/Providers ]── service-to-service (mTLS+JWT/Spiffe)

עקרונות: ריכוז דור האסימונים והמדיניות, יישום מקומי; ”זכויות מינימליות” ומשלחות מפורשות.

3) אימות משתמש (OIDC/OAuth 2. 1)

תבניות:
  • קוד הרשאה + PKCE (תמיד עבור SPA/Mobile).
  • SSO: תמיכה חיצונית של IDP (SAML/OIDC) עבור b2b/operators.
  • MFA: TOTP/WebAuthone/SMS; SMS - נסיגה).
  • עבור פעולות רגישות (משיכת כספים, שינוי פרטים) נדרש MFA/pe-Auth.
שיטות בטיחות:
  • רענן סיבוב טוקן + רישום RT עם חיטוי שימוש חוזר.
  • Nonce/State + PKCE, COURS/CSRF קפדני לזרמי דפדפן.
  • אסימוני גישה קצרי ימים (5-15 דקות) + רענון שקט/RT.
  • קשירת התקן (DPoP/mtls-bound tokens) לפעולות קריטיות.
דוגמה של JWT (משתמש):
json
{
"iss": "https://auth. example. com",
"sub": "user_9f12",
"aud": ["wallet","catalog"],
"exp": 1730385600,
"iat": 1730384700,
"tenant": "brand_eu",
"region": "EE",
"amr": ["pwd, ""webauthn"] ,//authentication methods
"scp": ["wallet:read","bets:place","kyc:status. read"],
"sid": "sess_a1b2c3",      // session id
"acr": "urn: mfa: strong "//warranty level
}

4) אימות שירות-שירות (MTLS, SPIFFE, JWT)

MTLS בין שירותים + SPIFE/SPIRE עבור מזהים עומס עבודה יציב.
שירות JWT עם זמן קצר (5 דקות), חתום על ידי HSM/KMS; ביקורת של הוצאה.
קהל: JWT מתאים רק לשירות/תחום מסוים.
אזורי אמון: שירותים מאזור אחר/דייר - PKIs נפרדים ומדיניות.

5) מודלי הרשאה: RBAC, ABAC, ReBAC

RBAC (תפקידים = הרשאות): פשוט ושקוף (מתאים ללוחות קבלה, אופרטורים).

ABAC (נושא/משאב/תכונות הקשר): ואזור =... kyc_tier≥2." ‏

RBAC (מערכות יחסים): שימושי לאחזקות מורכבות (”למי יש מותג/תיקייה/קמפיין”).

המלצה: היברידי - קשר RBAC + בסיסי עם ABAC + point ReBAC.

6) מדיניות ואכיפה (PDP/PEP)

PEP על השער ובשירותים: משיג את ההקשר (JWT, כרטיסים, IP/ASN, זמן, אזור, שכבת KYC), יוצר בקשה ל-PDP.

ה ־ PDP (למשל: אופ "א/ארז) מקבל:
json
{
"subject": { "sub":"user_9f12", "roles":["support"], "kyc":2, "tenant":"brand_eu" },
"action": "bets. place",
"resource": { "game_id":"g_42", "provider":"pr_x" },
"context": { "region":"EE", "ip_asn":"AS12345", "time":"2025-10-31T12:34:56Z" }
}

ומחזירה 'LOW/DETRY' + הסבר.

מטמון התמיסה של PEP (TTL 30-120 C) מפחית את האחיזה; נכות על ידי ”שינוי תפקיד/מדיניות” אירועים.

מדיניות לדוגמה (פסאודו-רגו):
rego package bets

default allow = false

allow {
input. action == "bets. place"
input. subject. kyc >= 2 input. subject. tenant == input. context. tenant not blocked_region within_limits
}

blocked_region { input. context. region == "NL" }
within_limits { input. context. bet_amount <= data. limits. max_bet[input. subject. tenant] }

7) סקופים והחלטות

שמות:
  • משאב: פעולה - "ארנק: קרא", "ארנק: העברה", "הימורים: מקום", "קיק: מצב. לקרוא '.
  • להנהלה: "בתחום סטנדרטי.
  • לספק הספקים: דיווח. קרא, מפרנס: אירועים. לדחוף ".

העיקרון של מינימום הרשאות: אנחנו מקצים רק את הסקופים הדרושים; ”הסלמה” (הרחבות זמניות של זכויות) על ידי כרטיס ועם TTL.

8) רב-דיירים ואזורים (תושבות)

אסימונים מכילים ”דייר”, ”אזור”, ”רישיון”; ה ־ PDP בודק את ההתכתבות עם המשאב.
תפקידים/מדיניות - שמות לכל דייר ("תפקיד: brand _ eu/support').
הפרדת מפתחות חתימה ורשימות שלילת מיקום לפי אזור; בקשות חוצות-אזוריות - רק דרך שערים אמינים.

9) הפעלה וניהול התקנים

Server-side session store for web (קשירת התקן/דפדפן, זיהוי סיבוב).
פסק זמן סרק/מוחלט (למשל: 30 min/24 h); פעולות רגישות - מחדש Auth/MFA.
רישום של התקנים פעילים, ”יציאה מכל”.
חריגות: קלט סימולטני מאזורים שונים, טבילות MFA תכופות - אותות סיכון.

10) משלחת והסכמה (הסכמה)

מטעם (OBO): השירות פועל בשם המשתמש (אסימון proxy עם 'sub '/' act' נפרד).
הסכמה: מסך מפורש לגישה לשותף למידע, יומן הסכמה עם החזרה.
גישה זמנית למנדטים: זכויות לשעות וימים פג תוקפו באופן אוטומטי.

11) מפתחות, חתימות וסבב

JWKS עם 'ילד', סיבוב אוטומטי, אחסון מפתחות פרטיים ב-KMS/HSM.
אלגוריתמים: ES256/EdDSA עבור JWT; TLS 1. 2 +/mTLS.
תקופת מפתח כפולה: קבל את שני 'קידס' לפני שדרוג הלקוח הושלם.
RT ו-Token Introspection נזכרים בתקריות קריטיות.

12) אבטחת יישום לקוח

קוד אישור + PKCE, ללא ”מרומז”, COURS/Content-Security-Policy.
מובייל: App Attestation/Device Check, secure RT, Root/Sailbreak protection.
Desktop: דפדפן מערכת להתחברות (ללא תצוגות רשת משובצות), PKCE.

13) חוזי SDK נוחים

הערכת (AuthZ) API:
http
POST /authz/evaluate
Authorization: Bearer <access_jwt>
Body: { "action":"bets. place", "resource":{"game_id":"g_42"}, "context":{"bet_amount":5. 0} }
→ 200 { "decision":"ALLOW", "ttlMs":60000, "explain":"kyc>=2, limit ok" }
החלפת טוקן (OBO):
http
POST /oauth/token grant_type=urn:ietf:params:oauth:grant-type:token-exchange subject_token=<user_jwt>&actor_token=<service_jwt>&audience=wallet

14) יכולת תצפית וביקורת

מדדים:
  • 'authn _ succle _ cate '/' mfa _ challenge _ cate '/' mfa _ fall _ ratefost
  • 'authz _ p95 _ ms',' autz _ נדחה _ rate 'i סיבה'
  • 'invalid _ token _ rate', 'jwks _ skew _ ms',' rt _ reuse _ detected &pos
  • חריגות של כניסות (מכשיר חדש, גיאו-מהירות), סקופים חשודים.
יומנים/ביקורת (ללא שינוי):
  • 'who/what/when/when/why', 'החלטה', 'policy _ version', 'token _ bid',' client _ id'.
  • ייצוא לציות (רגולטור/ספק-ביקורת).

15) היקפי והגנה על לקוח

שער PEP: הגבלת קצב, בדיקת בוט/חתימה, הגנת CSRF, CORS קפדנית, HSTS.
תנועה פנימית: mTLS + שירות JWT + רשתות מוגבלות.
HMAC/JWS), חלונות זמן, אנטי-שידור חוזר.

16) שגיאות אופייניות

אסימוני גישה ארוכים פי דליפות.
זרימת OAuth מרומזת בספא.
אין סבב מפתח ותקופת מפתח זוגי.
תפקידי הארדקור במקום מדיניות (אי אפשר לבקר או להסביר החלטות).
ערבוב דיירים/אזורים באחד 'role' או 'key'.
אין שלב למעלה MFA על פעולות רגישות.
מטמון פתרונות AuthZ ללא נכות שינוי תפקיד.

17) ספרי משחק (ספרי הפעלה)

1. פשרת מפתח חתימת JWT

ביטול מיידי 'ילד', פרסום חדש של JWKS, נכות RT/מפגשים כפויה, דו "ח ביקורת.

2. Bulk 'invalid _ oken&fost

בדוק אם השעון לא מתאים לכל החיים, רלוונטיות של JWKS, קריסות מטמון.

3. חריגות קלט

אפשר ניקוד סיכון מוגבר, דורש עליית מדרגה, להודיע למשתמש, להגביל באופן זמני את התשלומים.

4. IDP נכשל

עבור למטמון ההפעלה/התקן התפקידים, הגבל את ההתחברות החדשה, שמור על הפעלות פעילות TTL.

18) רשימת בדיקות לפני המכירה

[ ] OIDC/OAuth 2. 1 עם PKCE, קיצור AT, סיבוב RT, התקן מחייב לפעולות קריטיות.
[ ] MFA (WebAuthn/TOTP) ועליית מדרגה עבור פלט/שינוי פרטים/הסלמת תפקידים.

שירות לשירות: MTLS + SPIFFE, שירות קצר ימים JWTs.
מדיניות [ ] AuthZ (ראשי תיבות של RBAC + ABAC/REBAC; PEP בשער ובשירותים.

[ ] מטמון פתרונות נכות; שביל ביקורת בלתי ניתן לשינוי.
[ ] רב-דיירים/אזורים: מפתח/מדיניות/בידוד רישום, חשבונאות רישוי.
[ ] JWKS/מפתחות ב KMS/HSM, סיבוב דו-מפתח, ניטור 'kid'.
[ ] מסנני CSRF/CORS/HSTS/Rate-Limit/Bot על המתחם.
[ ] ספרי משחקים, ביטול/סיבוב/נעילה להפעיל כפתורים.

סוויטת ניסוי : יחידה (מדיניות), חוזה (SDK/זורם), כאוס (IDP, JWKS), e2e (קפיצת מדרגה, OBO, ביטול).

19) תבניות הגדרות מיני

רישום היקף (YAML):
yaml scopes:
wallet: read: {desc: "Reading balance"}
wallet: transfer: {desc: "Transfer of funds," sensitive: true, step_up: true}
bets: place: {desc: "Bet"}
kyc:status. read: {desc: "KYC status"}
roles:
support:
allow: [wallet:read, kyc:status. read]
finance:
allow: [wallet:read, wallet:transfer]
player:
allow: [bets:place]
מדיניות PDP (מצב אזורי):
yaml deny:
- when: { region: ["NL","BE"] }
actions: ["bets."]

סיכום

לולאת האימות וההרשאה אינה ספרייה, אלא יכולת פלטפורמה: אסימונים קצרי ימים ומפתחות מנוהלים, מדיניות מרכזית ויישומם המקומי, רב-פקטים, בידוד קפדני של דיירים/אזורים, ביקורת חשבונות וטלמטריה. תכנון זה הופך את השינויים לבטוחים, ניתנים להסבר לווסת ושקופים למוצר - והיקפי השוק והפקודה הופכים לפעולה שגרתית, לא להישג.

Contact

צרו קשר

פנו אלינו בכל שאלה או צורך בתמיכה.אנחנו תמיד כאן כדי לעזור.

Telegram
@Gamble_GC
התחלת אינטגרציה

Email הוא חובה. Telegram או WhatsApp — אופציונליים.

השם שלכם לא חובה
Email לא חובה
נושא לא חובה
הודעה לא חובה
Telegram לא חובה
@
אם תציינו Telegram — נענה גם שם, בנוסף ל-Email.
WhatsApp לא חובה
פורמט: קידומת מדינה ומספר (לדוגמה, +972XXXXXXXXX).

בלחיצה על הכפתור אתם מסכימים לעיבוד הנתונים שלכם.