public sealed class AuthProvider : Protobuf.IMessage<AuthProvider>, Protobuf.IBufferMessage
Configuration for an authentication provider, including support for JSON Web Token (JWT) .
Implements
Protobuf.IBufferMessageNamespace
Google.ApiAssembly
Google.Api.CommonProtos.dll
Constructors
AuthProvider()
public AuthProvider()
AuthProvider(AuthProvider)
public AuthProvider(AuthProvider other)
Fields
AudiencesFieldNumber
public
const
int
AudiencesFieldNumber
=
4
Field number for the "audiences" field.
AuthorizationUrlFieldNumber
public
const
int
AuthorizationUrlFieldNumber
=
5
Field number for the "authorization_url" field.
IdFieldNumber
public
const
int
IdFieldNumber
=
1
Field number for the "id" field.
IssuerFieldNumber
public
const
int
IssuerFieldNumber
=
2
Field number for the "issuer" field.
JwksUriFieldNumber
public
const
int
JwksUriFieldNumber
=
3
Field number for the "jwks_uri" field.
JwtLocationsFieldNumber
public
const
int
JwtLocationsFieldNumber
=
6
Field number for the "jwt_locations" field.
Properties
Audiences
public string Audiences { get; set; }
The list of JWT audiences . that are allowed to access. A JWT containing any of these audiences will be accepted. When this setting is absent, JWTs with audiences:
- "https://[service.name]/[google.protobuf.Api.name]"
- "https://[service.name]/" will be accepted. For example, if no audiences are in the setting, LibraryService API will accept JWTs with the following audiences: - https://library-example.googleapis.com/google.example.library.v1.LibraryService
- https://library-example.googleapis.com/
Example:
audiences: bookstore_android.apps.googleusercontent.com, bookstore_web.apps.googleusercontent.com
AuthorizationUrl
public string AuthorizationUrl { get; set; }
Redirect URL if JWT token is required but not present or is expired. Implement authorizationUrl of securityDefinitions in OpenAPI spec.
Descriptor
public static Protobuf.Reflection.MessageDescriptor Descriptor { get; }
Id
public string Id { get; set; }
The unique identifier of the auth provider. It will be referred to by AuthRequirement.provider_id
.
Example: "bookstore_auth".
Issuer
public string Issuer { get; set; }
Identifies the principal that issued the JWT. See https://tools.ietf.org/html/draft-ietf-oauth-json-web-token-32#section-4.1.1 Usually a URL or an email address.
Example: https://securetoken.google.com Example: 1234567-compute@developer.gserviceaccount.com
JwksUri
public string JwksUri { get; set; }
URL of the provider's public key set to validate signature of the JWT. See OpenID Discovery . Optional if the key set document:
- can be retrieved from [OpenID Discovery]( https://openid.net/specs/openid-connect-discovery-1_0.html of the issuer.
- can be inferred from the email domain of the issuer (e.g. a Google service account).
JwtLocations
public Protobuf.Collections.RepeatedField<JwtLocation> JwtLocations { get; }
Defines the locations to extract the JWT.
JWT locations can be either from HTTP headers or URL query parameters. The rule is that the first match wins. The checking order is: checking all headers first, then URL query parameters.
If not specified, default to use following 3 locations: 1) Authorization: Bearer 2) x-goog-iap-jwt-assertion 3) access_token query parameter
Default locations can be specified as followings: jwt_locations:
- header: Authorization value_prefix: "Bearer "
- header: x-goog-iap-jwt-assertion
- query: access_token
Parser
public static Protobuf.MessageParser<AuthProvider> Parser { get; }
Methods
CalculateSize()
public int CalculateSize()
Clone()
public AuthProvider Clone()
Equals(AuthProvider)
public bool Equals(AuthProvider other)
Equals(Object)
public override bool Equals(object other)
GetHashCode()
public override int GetHashCode()
MergeFrom(AuthProvider)
public void MergeFrom(AuthProvider other)
MergeFrom(Protobuf.CodedInputStream)
public void MergeFrom(Protobuf.CodedInputStream input)
ToString()
public override string ToString()
WriteTo(Protobuf.CodedOutputStream)
public void WriteTo(Protobuf.CodedOutputStream output)