認証

Authentication は API の認証構成を定義します。

外部使用を目的とした API の例:

name: calendar.googleapis.com
authentication:
  providers:
  - id: google_calendar_auth
    jwksUri: https://www.googleapis.com/oauth2/v1/certs
    issuer: https://securetoken.google.com
  rules:
  - selector: "*"
    requirements:
      providerId: google_calendar_auth
JSON 表現

{
  "rules": [
    {
      object(AuthenticationRule)
    }
  ],
  "providers": [
    {
      object(AuthProvider)
    }
  ]
}
フィールド
rules[]

object(AuthenticationRule)

個々の API メソッドに適用される認証ルールのリスト。

注: すべてのサービス設定ルールは「最後の 1 つが最優先」の順序に従います。

providers[]

object(AuthProvider)

サービスがサポートする認証プロバイダのセットを定義します。

AuthenticationRule

サービスの認証ルール。

デフォルトでは、メソッドになんらかの認証要件がある場合、すべてのリクエストにはいずれか 1 つの要件に一致する有効な認証情報が含まれている必要があります。1 つのリクエストに複数の種類の認証情報を含めることは誤りです。

メソッドに認証要件がまったくない場合、リクエストの認証情報は無視されます。

JSON 表現

{
  "selector": string,
  "oauth": {
    object(OAuthRequirements)
  },
  "allowWithoutCredential": boolean,
  "requirements": [
    {
      object(AuthRequirement)
    }
  ]
}
フィールド
selector

string

このルールが適用されるメソッドを選択します。

構文について詳しくは、selector をご覧ください。

oauth

object(OAuthRequirements)

OAuth 認証情報の要件。

allowWithoutCredential

boolean

true の場合、サービスは API キーを受け入れ、その他の認証情報を必要としません。

requirements[]

object(AuthRequirement)

追加の認証プロバイダの要件。

OAuthRequirements

OAuth スコープは、データおよびデータに対する権限を定義するための方法です。たとえば、「Google Calendar への読み取り専用アクセス」と「Cloud Platform へのアクセス」について定義されるスコープがあります。ユーザーはアプリケーションのスコープに同意することで、自分の代わりにデータにアクセスする権限をアプリケーションに付与します。

OAuth スコープの指定は大まかである必要があります。ユーザーがスコープの内容記述を読んで理解する必要があるからです。

ほとんどの場合は、サービスのファミリー全体について 1 つまたは多くても 2 つの OAuth スコープを使用します。サービスに複数の API がある場合は、それらすべての API で OAuth スコープを共有することをおすすめします。

より詳細な OAuth 同意画面が必要な場合は、デベロッパーがそれらを実際にどのように使用するのかについて、サービス管理部門と話し合ってください。

リクエストが受け入れられ、バックエンドに渡されるためには、それぞれの正規スコープでも十分ですが、バックエンドで追加のスコープまたは権限が要求されることが原因でリクエストが失敗する可能性があるので注意してください。

JSON 表現

{
  "canonicalScopes": string
}
フィールド
canonicalScopes

string

アクセスが許可されている、一般公開用にドキュメント化された OAuth スコープのリスト。そのいずれかのスコープを含む OAuth トークンが受け入れられます。

例:


 canonicalScopes: https://www.googleapis.com/auth/calendar,
                   https://www.googleapis.com/auth/calendar.read