Autenticação

Authentication define a configuração de autenticação de uma API.

Exemplo de uma API direcionada para uso externo:

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
Representação JSON

{
  "rules": [
    {
      object(AuthenticationRule)
    }
  ],
  "providers": [
    {
      object(AuthProvider)
    }
  ]
}
Campos
rules[]

object(AuthenticationRule)

Uma lista de regras de autenticação aplicáveis aos métodos individuais da API.

OBSERVAÇÃO: todas as regras de configuração do serviço seguem a ordem "vale a última opção".

providers[]

object(AuthProvider)

Define um conjunto de provedores de autenticação que um serviço oferece.

AuthenticationRule

Regras de autenticação para o serviço.

Por padrão, se um método tiver quaisquer requisitos de autenticação, cada solicitação precisa incluir uma credencial válida que corresponda a um dos requisitos. É um erro incluir mais de um tipo de credencial em uma única solicitação.

Se um método não tiver requisitos de autenticação, as credenciais de solicitação serão ignoradas.

Representação JSON

{
  "selector": string,
  "oauth": {
    object(OAuthRequirements)
  },
  "allowWithoutCredential": boolean,
  "requirements": [
    {
      object(AuthRequirement)
    }
  ]
}
Campos
selector

string

Seleciona os métodos aos quais esta regra se aplica.

Consulte selector para ver detalhes da sintaxe.

oauth

object(OAuthRequirements)

Os requisitos para as credenciais do OAuth.

allowWithoutCredential

boolean

Se for "true", o serviço aceita chaves de API sem nenhuma outra credencial.

requirements[]

object(AuthRequirement)

Requisitos para provedores de autenticação adicionais.

OAuthRequirements

Os escopos do OAuth são uma maneira de definir dados e permissões em dados. Por exemplo, há escopos definidos para "Acesso somente leitura ao Google Agenda" e "Acesso ao Cloud Platform". Os usuários podem consentir com um escopo em um aplicativo, oferecendo permissão para acessar esses dados em nome deles.

As especificações do escopo do OAuth precisam ser bem gerais. Um usuário precisará ver e entender a descrição do que seu escopo significa.

Na maioria dos casos: use um ou mais dois escopos do OAuth para toda uma família de produtos. Caso seu produto tenha várias APIs, provavelmente você precisará compartilhar o escopo do OAuth em todas essas APIs.

Quando precisar de telas de consentimento do OAuth mais detalhadas: converse com a equipe de gerenciamento do seu produto sobre como os desenvolvedores as usarão na prática.

Observe que, mesmo que cada um dos escopos canônicos seja suficiente para que uma solicitação seja aceita e transmitida para o back-end, uma solicitação ainda pode falhar porque o back-end exige escopos ou permissões adicionais.

Representação JSON

{
  "canonicalScopes": string
}
Campos
canonicalScopes

string

A lista de escopos do OAuth documentados publicamente que permitem o acesso. Será aceito um token OAuth que contenha qualquer um desses escopos.

Exemplo:


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