使用服务账号进行身份验证

前提条件

本页面假定您已经完成以下操作:

配置身份验证

要使用服务账号进行身份验证,请执行以下操作:

  1. 将 App Engine Endpoints API 导入您的 API 类中:

    import endpoints
    
  2. 将服务账号的 issuer 对象添加到 API 修饰器。 例如:

    @endpoints.api(
        name='echo',
        version='v1',
        issuers={'serviceAccount': endpoints.Issuer(
            'YOUR_SERVICE_ACCOUNT_EMAIL',
            'https://www.googleapis.com/robot/v1/metadata/x509/YOUR_SERVICE_ACCOUNT_EMAIL')},
        audiences={'serviceAccount': ['YOUR_AUDIENCE']})
    
    • echo 替换为您的 API 名称。
    • v1 替换为您的 API 版本。
    • YOUR_SERVICE_ACCOUNT_EMAIL 替换为您的服务账号电子邮件地址。
    • YOUR_AUDIENCE 替换为调用服务发送的 aud 字段中的值。
  3. 在需要检查身份验证是否正确的每种 API 方法中,检查是否存在有效的 User,如果不存在,则引发错误 401,具体如以下方法定义示例中所示:

    user = endpoints.get_current_user()
    # If there's no user defined, the request was unauthenticated, so we
    # raise 401 Unauthorized.
    
  4. 部署 API。每当添加新客户端时,您都需要重新部署 API。