הגדרת User Invitation API
בדף הזה מוסבר איך להגדיר את Cloud Identity User Invitation API.
הפעלת ה-API והגדרת פרטי כניסה
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Roles required to select or create a project
- Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
-
Create a project: To create a project, you need the Project Creator role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
Enable the Cloud Identity API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.-
Create a service account:
-
Ensure that you have the Create Service Accounts IAM role
(
roles/iam.serviceAccountCreator) and the Project IAM Admin role (roles/resourcemanager.projectIamAdmin). Learn how to grant roles. -
In the Google Cloud console, go to the Create service account page.
Go to Create service account - Select your project.
-
In the Service account name field, enter a name. The Google Cloud console fills in the Service account ID field based on this name.
In the Service account description field, enter a description. For example,
Service account for quickstart. - Click Create and continue.
-
Grant the Service Account Token Creator role to the service account.
To grant the role, find the Select a role list, then select Service Account Token Creator.
- Click Continue.
-
Click Done to finish creating the service account.
-
Ensure that you have the Create Service Accounts IAM role
(
התקנה של ספריית הלקוח של Python
כדי להתקין את ספריית הלקוח של Python, מריצים את הפקודה הבאה:
pip install --upgrade google-api-python-client google-auth \
google-auth-oauthlib google-auth-httplib2
מידע נוסף על הגדרת סביבת הפיתוח בשפת Python מופיע במדריך להגדרת סביבת הפיתוח בשפת Python.
אימות ויצירת מופע של לקוח
כדי לשלוח קריאה ל-User Invitation API כחשבון שירות, צריך להשתמש בהענקת גישה ברמת הדומיין (DWD). אתם יכולים לאמת את חשבון השירות באמצעות Application Default Credentials (ADC) או מפתח לחשבון שירות.
כדי לבצע אימות כאדמין בלי DWD, צריך להשתמש בפרטי הכניסה של משתמש הקצה ב-OAuth 2.0 עם היקף ההרשאות https://www.googleapis.com/auth/cloud-identity.userinvitations.
תוכלו להיעזר במאמר שימוש ב-OAuth 2.0 לאפליקציות אינטרנט.
הגדרת הענקת גישה ברמת הדומיין
כדי להשתמש בהענקת גישה ברמת הדומיין, צריך לתת לחשבון השירות הרשאה להתחזות לאדמין. ביומני הביקורת, כל הפעולות של חשבון השירות מוצגות בתור המשתמש שהתחזו אליו.
להוראות, ראו הקצאת הרשאה ברמת הדומיין לחשבון השירות.
כדי לאשר את חשבון השירות, צריך לספק את ההיקף הבא:
https://www.googleapis.com/auth/cloud-identity.userinvitations
יצירת מופע של לקוח
כדי ליצור מופע של לקוח, צריך לבחור שיטת אימות. אם הקוד פועל ב-Google Cloud או משתמש באיחוד שירותי אימות הזהות של עומסי עבודה, מומלץ להשתמש בפרטי כניסה של ברירת מחדל לאפליקציה (ADC).
ADC
from google.auth import iam
from google.auth.transport import requests
import google.auth
from google.oauth2 import service_account
INITIAL_SCOPES = ['https://www.googleapis.com/auth/iam']
CI_SCOPES = ['https://www.googleapis.com/auth/cloud-identity.userinvitations']
TOKEN_URI = "https://accounts.google.com/o/oauth2/token"
def create_delegated_credentials(
user_email: str
) -> google.auth.credentials.Credentials:
"""Creates delegated credentials for the user.
Args:
user_email: The administrator email to call as.
Returns:
The delegated credentials for the user.
"""
# Fetch application default credentials (ADC)
credentials, _ = google.auth.default(scopes=INITIAL_SCOPES)
# Populate account information
request = requests.Request()
credentials.refresh(request)
# Create an IAM signer
signer = iam.Signer(request, credentials,
credentials.service_account_email)
# Create domain-wide delegated (DWD) credentials
delegated_credentials = service_account.Credentials(
signer=signer,
service_account_email=credentials.service_account_email,
token_uri=TOKEN_URI,
scopes=CI_SCOPES,
subject=user_email
)
return delegated_credentials
מפתח לחשבון השירות
from google.oauth2 import service_account
import googleapiclient.discovery
SCOPES = ['https://www.googleapis.com/auth/cloud-identity.userinvitations']
SERVICE_ACCOUNT_FILE = '/path/to/service-account-file.json'
def create_service():
credentials = service_account.Credentials.from_service_account_file(
SERVICE_ACCOUNT_FILE, scopes=SCOPES)
delegated_credentials = credentials.with_subject('user@altostrat.com')
service_name = 'cloudidentity'
api_version = 'v1'
service = googleapiclient.discovery.build(
service_name,
api_version,
credentials=delegated_credentials)
return service
אחרי שתריצו את הקוד הזה, תוכלו להתחיל לבצע קריאות ל-User Invitation API.