attributeMapping property
Maps attributes from the authentication credentials issued by an external
identity provider to Google Cloud attributes, such as subject
and
segment
.
Each key must be a string specifying the Google Cloud IAM attribute to map
to. The following keys are supported: * google.subject
: The principal
IAM is authenticating. You can reference this value in IAM bindings. This
is also the subject that appears in Cloud Logging logs. This is a required
field and the mapped subject cannot exceed 127 bytes. * google.groups
:
Groups the authenticating user belongs to. You can grant groups access to
resources using an IAM principalSet
binding; access applies to all
members of the group. * google.display_name
: The name of the
authenticated user. This is an optional field and the mapped display name
cannot exceed 100 bytes. If not set, google.subject
will be displayed
instead. This attribute cannot be referenced in IAM bindings. *
google.profile_photo
: The URL that specifies the authenticated user's
thumbnail photo. This is an optional field. When set, the image will be
visible as the user's profile picture. If not set, a generic user icon
will be displayed instead. This attribute cannot be referenced in IAM
bindings. * google.posix_username
: The Linux username used by OS Login.
This is an optional field and the mapped POSIX username cannot exceed 32
characters, The key must match the regex "^a-zA-Z0-9.{0,31}$". This
attribute cannot be referenced in IAM bindings. You can also provide
custom attributes by specifying attribute.{custom_attribute}
, where
{custom_attribute} is the name of the custom attribute to be mapped. You
can define a maximum of 50 custom attributes. The maximum length of a
mapped attribute key is 100 characters, and the key may only contain the
characters [a-z0-9]. You can reference these attributes in IAM policies
to define fine-grained access for a workforce pool to Google Cloud
resources. For example: * google.subject
:
principal://iam.googleapis.com/locations/global/workforcePools/{pool}/subject/{value}
google.groups
:principalSet://iam.googleapis.com/locations/global/workforcePools/{pool}/group/{value}
attribute.{custom_attribute}
:principalSet://iam.googleapis.com/locations/global/workforcePools/{pool}/attribute.{custom_attribute}/{value}
Each value must be a Common Expression Language function that maps an identity provider credential to the normalized attribute specified by the corresponding map key. You can use theassertion
keyword in the expression to access a JSON representation of the authentication credential issued by the provider. The maximum length of an attribute mapping expression is 2048 characters. When evaluated, the total size of all mapped attributes must not exceed 4KB. For OIDC providers, you must supply a custom mapping that includes thegoogle.subject
attribute. For example, the following maps thesub
claim of the incoming credential to thesubject
attribute on a Google token:{"google.subject": "assertion.sub"}
Required.
Implementation
core.Map<core.String, core.String>? attributeMapping;