This document shows you how to configure Workforce Identity Federation with the Microsoft Entra ID identity provider (IdP) and manage access to Google Cloud. Federated users can then access Google Cloud services that support Workforce Identity Federation. You can use either the OIDC protocol or SAML 2.0 protocol to federate identities.
Before you begin
- Make sure that you have a Google Cloud organization set up.
-
Install the Google Cloud CLI. After installation, initialize the Google Cloud CLI by running the following command:
gcloud initIf you're using an external identity provider (IdP), you must first sign in to the gcloud CLI with your federated identity.
- In Microsoft Entra ID, make sure that ID tokens are enabled for implicit flow. For more information, see Enable ID token implicit grant.
- For sign-in, your IdP must provide signed authentication information: OIDC IdPs must provide a JWT, and SAML IdP responses must be signed.
- To receive important information about changes to your organization or Google Cloud products, you must provide Essential Contacts. For more information, see the Workforce Identity Federation overview.
Costs
Workforce Identity Federation is available as a no-cost feature. However, Workforce Identity Federation detailed audit logging uses Cloud Logging. To learn about Logging pricing, see Google Cloud Observability pricing.
Required roles
To get the permissions that
you need to configure Workforce Identity Federation,
ask your administrator to grant you the
IAM Workforce Pool Admin (roles/iam.workforcePoolAdmin) IAM role on the organization.
For more information about granting roles, see Manage access to projects, folders, and organizations.
You might also be able to get the required permissions through custom roles or other predefined roles.
If you're configuring permissions in a development or test environment—but not a
production environment—you can grant the IAM Owner
(roles/owner) basic role, which also includes permissions for
Workforce Identity Federation.
Create a Microsoft Entra ID application
This section shows you how to create a Microsoft Entra ID application using the Microsoft Entra admin portal. Alternatively, you can update your existing application. For additional details, see Establish applications in the Microsoft Entra ID ecosystem.Workforce identity pools support federation using both OIDC and SAML protocols.
OIDC
To create a Microsoft Entra ID application registration that uses the OIDC protocol, do the following:
Sign in to the Microsoft Entra administrator center.
Go to the Overview page of your Microsoft Entra ID application registration.
Navigate to Entra ID > App registrations.
To begin configuring the application registration, do the following:
Click New registration.
Enter a name for your application.
In Supported account types, select an option.
In the Redirect URI section, in the Select a platform drop-down list, select Web.
In the text field, enter a redirect URL. Your users are redirected to this URL after they successfully sign in. If you are configuring access to the console (federated), use the following URL format:
https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_IDReplace the following:
WORKFORCE_POOL_ID: a workforce identity pool ID that you will use when creating the workforce identity pool later in this document—for example:entra-id-oidc-poolWORKFORCE_PROVIDER_ID: a workforce identity pool provider ID that you will use when you create the workforce identity pool provider later in this document—for example:entra-id-oidc-pool-providerFor information on formatting the ID, see the Query parameters section in the API documentation.
To create the application registration, click Register.
To use the example attribute mapping that is provided later in this document, you must create a custom
departmentattribute.
Recommended: As a security best practice, we recommend that you configure a group claim by doing the following:
Go to your Microsoft Entra ID application registration.
Click Token configuration.
Click Add groups claim.
Select the group types to return. For more details, refer to Configuring groups optional claims.
SAML
To create a Microsoft Entra ID application registration that uses the SAML protocol, do the following:
Sign in to the Microsoft Entra administrator portal.
In the left-hand navigation menu, go to Entra ID > Enterprise Apps.
To begin configuring the enterprise application, do the following:
Click New application > Create your own application.
In the Create your own application pane that appears, enter a name for your application.
Click Create.
Go to Single sign-on > SAML.
Update the Basic SAML Configuration as follows:
In the Identifier (Entity ID) field, enter the following value:
https://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_IDReplace the following:
WORKFORCE_POOL_ID: a workforce identity pool ID that you will use when creating the workforce identity pool later in this document—for example:entra-id-saml-poolWORKFORCE_PROVIDER_ID: a workforce identity pool provider ID that you will use when you create the workforce identity pool provider later in this document—for example:entra-id-saml-pool-providerFor information on formatting the ID, see the Query parameters section in the API documentation.
In the Reply URL (Assertion Consumer Service URL) field, enter a redirect URL. Your users are redirected to this URL after they successfully sign in. If you are configuring access to the console (federated), use the following URL format:
https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_IDReplace the following:
WORKFORCE_POOL_ID: the workforce identity pool IDWORKFORCE_PROVIDER_ID: the workforce identity provider ID
To enable IdP-initiated sign-on, set the Relay State field to the following value:
https://console.cloud.google/To save the SAML application configuration, click Save.
To use the example attribute mapping that is provided later in this document, you must create a custom
departmentattribute.
Recommended: As a security best practice, we recommend that you configure a group claim by doing the following:
Go to your Microsoft Entra ID application.
Click Single sign-on.
In the Attributes & Claims section, click Edit.
Click Add a group claim.
Select the group type to return. For more details, refer to Add group claims to tokens for SAML applications using SSO configuration.
Create a workforce identity pool
gcloud
To create the workforce identity pool, run the following command:
gcloud iam workforce-pools create WORKFORCE_POOL_ID \
--organization=ORGANIZATION_ID \
--display-name="DISPLAY_NAME" \
--description="DESCRIPTION" \
--session-duration=SESSION_DURATION \
--location=global
Replace the following:
WORKFORCE_POOL_ID: an ID that you choose to represent your Google Cloud workforce pool. The pool ID must be globally unique across all workforce identity pools in Google Cloud. For information on formatting the ID, see the Query parameters section in the API documentation.ORGANIZATION_ID: the numeric organization ID of your Google Cloud organization for the workforce identity pool. Workforce identity pools are available across all projects and folders in the organization.DISPLAY_NAME: Optional. A display name for your workforce identity pool.DESCRIPTION: Optional. A workforce identity pool description.SESSION_DURATION: Optional. The session duration, expressed as a number appended withs—for example,3600s. Session duration determines how long the Google Cloud access tokens, console (federated) sign-in sessions, and gcloud CLI sign-in sessions from this workforce pool are valid. Session duration defaults to one hour (3600s). The session duration value must be between 15 minutes (900s) and 12 hours (43200s).
Console
To create the workforce identity pool, do the following:
In the Google Cloud console, go to the Workforce Identity Pools page:
Select the organization for your workforce identity pool. Workforce identity pools are available across all projects and folders in an organization.
Click Create pool and do the following:
In the Name field, enter the display name of the pool. The pool ID is automatically derived from the name as you type, and it is displayed under the Name field. You can update the pool ID by clicking Edit next to the pool ID.
Optional: In Description, enter a description of the pool.
To create the workforce identity pool, click Next.
The workforce identity pool's session duration defaults to one hour (3600s). The session duration determines how long the Google Cloud access tokens, console (federated), and gcloud CLI sign-in sessions from this workforce pool are valid. After you create the pool, you can update the pool to set a custom session duration. The session duration must be from 15 minutes (900s) to 12 hours (43200s).
Create the Microsoft Entra ID workforce identity pool provider
This section describes how to create a workforce identity pool provider to enable your IdP users to access Google Cloud. You can configure the provider to use either the OIDC or SAML protocol.
Create an OIDC workforce identity pool provider
To create a workforce identity pool provider for your Microsoft Entra ID application integration, using the OIDC protocol, do the following:
To get the issuer URI for your Microsoft Entra ID application, do the following:
- Go to the Overview page of your Microsoft Entra ID application registration.
- Click Endpoints.
- Open the OpenID Connect metadata document in a new tab.
- In the JSON, copy the value of
issuer.
To get the client ID for your Microsoft Entra ID application, do the following:
- Go to the Overview page of your Microsoft Entra ID application registration.
- Click Endpoints.
- In Application (client) ID, copy the value.
To create an OIDC workforce identity pool provider for web-based sign-in, do the following:
gcloud
To create a provider that supports the OIDC protocol, do the following:
Code flow
To create an OIDC provider that uses authorization code flow for web-based sign-in, do the following:
In your Microsoft Entra ID application, to get your client secret, do the following:
Go to your Microsoft Entra ID app registration.
In Certificates & secrets, click the Client secrets tab.
To add a client secret, click + New client secret.
In the Add a client secret dialog, enter information, as needed.
To create the client secret, click Add.
In the Client secrets tab, find your new client secret.
In the Value column for your new client secret, click content_copy Copy.
In the Google Cloud console, to create an OIDC provider that uses code flow, do the following:
gcloud iam workforce-pools providers create-oidc WORKFORCE_PROVIDER_ID \ --workforce-pool=WORKFORCE_POOL_ID \ --display-name="DISPLAY_NAME" \ --description="DESCRIPTION" \ --issuer-uri="ISSUER_URI" \ --client-id="OIDC_CLIENT_ID" \
--client-secret-value="OIDC_CLIENT_SECRET" \ --web-sso-response-type="code" \ --web-sso-assertion-claims-behavior="merge-user-info-over-id-token-claims" \ --web-sso-additional-scopes="WEB_SSO_ADDITIONAL_SCOPES" \ --attribute-mapping="ATTRIBUTE_MAPPING" \ --attribute-condition="ATTRIBUTE_CONDITION" \ --jwk-json-path="JWK_JSON_PATH" \ --detailed-audit-logging \ --location=globalReplace the following:
WORKFORCE_PROVIDER_ID: A unique workforce identity pool provider ID. The prefixgcp-is reserved and can't be used in a workforce identity pool or workforce identity pool provider ID.WORKFORCE_POOL_ID: The workforce identity pool ID to connect your IdP to.DISPLAY_NAME: An optional user-friendly display name for the provider; for example,idp-eu-employees.DESCRIPTION: An optional workforce provider description; for example,IdP for Partner Example Organization employees.ISSUER_URI: The OIDC issuer URI, in a valid URI format, that starts withhttps; for example,https://example.com/oidc. Note: For security reasons,ISSUER_URImust use the HTTPS scheme.OIDC_CLIENT_ID: The OIDC client ID that is registered with your OIDC IdP; the ID must match theaudclaim of the JWT that is issued by your IdP.OIDC_CLIENT_SECRET: The OIDC client secret.WEB_SSO_ADDITIONAL_SCOPES: Optional additional scopes to send to the OIDC IdP for console (federated) or gcloud CLI browser-based sign-in.ATTRIBUTE_MAPPING: An attribute mapping. For Microsoft Entra ID with OIDC authentication, we recommend the following attribute mappings:google.subject=assertion.oid, google.groups=assertion.groups, google.display_name=assertion.preferred_usernameThis example maps the IdP attributes
assertion.oid,assertion.groups, andassertion.preferred_usernameto the Google Cloud attributesgoogle.subject,google.groups, andgoogle.display_name, respectively.ATTRIBUTE_CONDITION: An attribute condition; for example, to limit theipaddrattribute to a certain IP range you can set the conditionassertion.ipaddr.startsWith('98.11.12.').JWK_JSON_PATH: An optional path to a locally uploaded OIDC JWKs. If this parameter isn't supplied, Google Cloud instead uses your IdP's/.well-known/openid-configurationpath to source the JWKs containing the public keys. For more information about locally uploaded OIDC JWKs, see manage OIDC JWKs.-
Workforce Identity Federation detailed audit logging logs information received from your IdP to Logging. Detailed audit logging can help you troubleshoot your workforce identity pool provider configuration. To learn how to troubleshoot attribute mapping errors with detailed audit logging, see General attribute mapping errors. To learn about Logging pricing, see Google Cloud Observability pricing.
To disable detailed audit logging for a workforce identity pool provider, omit the
--detailed-audit-loggingflag when you rungcloud iam workforce-pools providers create. To disable detailed audit logging, you can also update the provider.
locations/global/workforcePools/enterprise-example-organization-employees.
Implicit flow
To create an OIDC provider that uses the implicit flow for web sign-in, do the following:
To enable the ID token in your Microsoft Entra ID application, do the following:
- Go to your Microsoft Entra ID application registration.
- In Authentication, select the ID token checkbox.
- Click Save.
To create the provider, run the following command:
gcloud iam workforce-pools providers create-oidc WORKFORCE_PROVIDER_ID \ --workforce-pool=WORKFORCE_POOL_ID \ --display-name="DISPLAY_NAME" \ --description="DESCRIPTION" \ --issuer-uri="ISSUER_URI" \ --client-id="OIDC_CLIENT_ID" \ --web-sso-response-type="id-token" \ --web-sso-assertion-claims-behavior="only-id-token-claims" \ --web-sso-additional-scopes="WEB_SSO_ADDITIONAL_SCOPES" \ --attribute-mapping="ATTRIBUTE_MAPPING" \ --attribute-condition="ATTRIBUTE_CONDITION" \ --jwk-json-path="JWK_JSON_PATH" \ --detailed-audit-logging \ --location=globalReplace the following:
WORKFORCE_PROVIDER_ID: A unique workforce identity pool provider ID. The prefixgcp-is reserved and can't be used in a workforce identity pool or workforce identity pool provider ID.WORKFORCE_POOL_ID: The workforce identity pool ID to connect your IdP to.DISPLAY_NAME: An optional user-friendly display name for the provider; for example,idp-eu-employees.DESCRIPTION: An optional workforce provider description; for example,IdP for Partner Example Organization employees.ISSUER_URI: The OIDC issuer URI, in a valid URI format, that starts withhttps; for example,https://example.com/oidc. Note: For security reasons,ISSUER_URImust use the HTTPS scheme.OIDC_CLIENT_ID: The OIDC client ID that is registered with your OIDC IdP; the ID must match theaudclaim of the JWT that is issued by your IdP.WEB_SSO_ADDITIONAL_SCOPES: Optional additional scopes to send to the OIDC IdP for console (federated) or gcloud CLI browser-based sign-in.ATTRIBUTE_MAPPING: An attribute mapping. For Microsoft Entra ID with OIDC authentication, we recommend the following attribute mappings:google.subject=assertion.oid, google.groups=assertion.groups, google.display_name=assertion.preferred_usernameThis example maps the IdP attributes
assertion.oid,assertion.groups, andassertion.preferred_usernameto the Google Cloud attributesgoogle.subject,google.groups, andgoogle.display_name, respectively.ATTRIBUTE_CONDITION: An attribute condition; for example, to limit theipaddrattribute to a certain IP range you can set the conditionassertion.ipaddr.startsWith('98.11.12.').JWK_JSON_PATH: An optional path to a locally uploaded OIDC JWKs. If this parameter isn't supplied, Google Cloud instead uses your IdP's/.well-known/openid-configurationpath to source the JWKs containing the public keys. For more information about locally uploaded OIDC JWKs, see manage OIDC JWKs.-
Workforce Identity Federation detailed audit logging logs information received from your IdP to Logging. Detailed audit logging can help you troubleshoot your workforce identity pool provider configuration. To learn how to troubleshoot attribute mapping errors with detailed audit logging, see General attribute mapping errors. To learn about Logging pricing, see Google Cloud Observability pricing.
To disable detailed audit logging for a workforce identity pool provider, omit the
--detailed-audit-loggingflag when you rungcloud iam workforce-pools providers create. To disable detailed audit logging, you can also update the provider.
locations/global/workforcePools/enterprise-example-organization-employees.
Console
Code flow
To create an OIDC provider that uses authorization code flow for web-based sign-in, do the following:
To get the Microsoft Entra ID client secret, do the following:
Go to your Microsoft Entra ID app registration.
In Certificates & secrets, click the Client secrets tab.
To add a client secret, click + New client secret.
In the Add a client secret dialog, enter information, as needed.
To create the client secret, click Add.
In the Client secrets tab, find your new client secret.
In the Value column for your new client secret, click content_copy Copy.
- In the Google Cloud console, go to the Workforce Identity Pools page:
- In the Workforce Identity Pools table, select the pool for which you want to create the provider.
- In the Providers section, click Add Provider.
- In the Select a Provider vendor list, select your IdP.
If your IdP isn't listed, then select Generic Identity Provider.
- In Select an authentication protocol, select OpenID Connect (OIDC).
- In the Create a provider section, do the following:
- In Name, enter the name for the provider.
- In Description, enter the description for the provider.
- In Issuer (URL), enter the issuer URI. The OIDC issuer URI must be in a valid URI format and start with
https; for example,https://example.com/oidc. - In Client ID, enter the OIDC client ID that is registered
with your OIDC IdP; the ID must match the
audclaim of the JWT that is issued by your IdP. - To create a provider that is enabled, make sure Enable provider is on.
- Click Continue.
- In the Share your provider information with IdP section, copy the URL. In your IdP, configure this URL as the redirect URI, which informs your IdP where to send the assertion token after logging in.
- Click Continue.
- In the Configure OIDC Web Sign-in section, do the following:
- In the Flow type list, select Code.
- In the Assertion claims behavior list, select either of the following:
- User info and ID token
- Only ID token
- In the Client secret field, enter the client secret from your IdP.
- Click Continue.
- In the Configure provider section, for
Detailed logging, click the
Enable attribute value audit logging toggle.
Workforce Identity Federation detailed audit logging logs information received from your IdP to Logging. Detailed audit logging can help you troubleshoot your workforce identity pool provider configuration. To learn how to troubleshoot attribute mapping errors with detailed audit logging, see General attribute mapping errors. To learn about Logging pricing, see Google Cloud Observability pricing.
To disable detailed audit logging for a workforce identity pool provider, leave the Enable attribute value audit logging toggle off when you create the provider. To disable detailed audit logging, you can also update the provider.
- To create the provider, click Submit.
After the provider is created, you are redirected to the provider attributes page.
To configure attribute mappings and conditions, do the following:
- When prompted, sign in to your external IdP to validate the default attribute mappings.
- On the provider attributes page, view and edit the attribute
mappings and conditions:
- To add or edit attribute mappings, do the following:
- Click Add mapping to add a new mapping, or edit the existing mappings.
- In the Google n field, where n is a number, select a Google Cloud-supported key.
- In the corresponding OIDC n field, enter the
IdP attribute name or a CEL expression.
For Microsoft Entra ID with OIDC authentication, we recommend the following
attribute mappings:
google.subject=assertion.oid, google.groups=assertion.groups, google.display_name=assertion.preferred_usernameThis example maps the IdP attributes
assertion.oid,assertion.groups, andassertion.preferred_usernameto the Google Cloud attributesgoogle.subject,google.groups, andgoogle.display_name, respectively.
- To increase the number of groups, do the following:
- Click Enable for extra attributes.
- In the subtask that opens, enter the following details:
- In the Extra Attributes Issuer URI field, enter the issuer URL.
- In the Extra Attributes Client ID field, enter the client ID.
- In the Extra Attributes Client Secret field, enter the client secret.
- In the Extra Attributes Type list, select an attribute type for extra attributes.
- In the Extra Attributes Filter field, enter a filter expression to be used when querying the Microsoft Graph API for groups.
- Click Enable.
After you enable extra attributes, you can click Edit to reopen the subtask and edit the details, or click Disable to turn off extra attributes.
- To add an attribute condition, do the following:
- Click Add condition.
- In the Attribute Conditions field, enter a
condition in CEL format; for example,
to limit the
ipaddrattribute to a certain IP range you can set the conditionassertion.ipaddr.startsWith('98.11.12.').
- To add or edit attribute mappings, do the following:
- To validate your mappings, click Save and refetch token.
- To complete the setup, click Save and exit.
Implicit flow
To create an OIDC provider that uses implicit flow for web-based sign-in, do the following:
To enable the ID token in your Microsoft Entra ID application, do the following:
- Go to your Microsoft Entra ID application registration.
- In Authentication, select the ID token checkbox.
- Click Save.
- In the Google Cloud console, go to the Workforce Identity Pools page:
- In the Workforce Identity Pools table, select the pool for which you want to create the provider.
- In the Providers section, click Add Provider.
- In the Select a Provider vendor list, select your IdP.
If your IdP isn't listed, then select Generic Identity Provider.
- In Select an authentication protocol, select OpenID Connect (OIDC).
- In the Create a provider section, do the following:
- In Name, enter the name for the provider.
- In Description, enter the description for the provider.
- In Issuer (URL), enter the issuer URI. The OIDC issuer URI must be in a valid URI format and start with
https; for example,https://example.com/oidc. - In Client ID, enter the OIDC client ID that is registered
with your OIDC IdP; the ID must match the
audclaim of the JWT that is issued by your IdP. - To create a provider that is enabled, make sure Enable provider is on.
- Click Continue.
- In the Share your provider information with IdP section, copy the URL. In your IdP, configure this url as the redirect URI, which informs your IdP where to send the assertion token after logging in.
- Click Continue.
- In the Configure OIDC Web Sign-in section, do the following:
- In the Flow type list, select ID Token.
- In the Assertion claims behavior list, ID token is selected.
- Click Continue.
- In the Configure provider section, in
Detailed logging, click the
Enable attribute value audit logging toggle.
Workforce Identity Federation detailed audit logging logs information received from your IdP to Logging. Detailed audit logging can help you troubleshoot your workforce identity pool provider configuration. To learn how to troubleshoot attribute mapping errors with detailed audit logging, see General attribute mapping errors. To learn about Logging pricing, see Google Cloud Observability pricing.
To disable detailed audit logging for a workforce identity pool provider, leave the Enable attribute value audit logging toggle off when you create the provider. To disable detailed audit logging, you can also update the provider.
- To create the provider, click Submit.
After the provider is created, you are redirected to the provider attributes page.
To configure attribute mappings and conditions, do the following:
- When prompted, sign in to your external IdP to validate the default attribute mappings.
- On the provider attributes page, view and edit the attribute
mappings and conditions:
- To add or edit attribute mappings, do the following:
- Click Add mapping to add a new mapping, or edit the existing mappings.
- In the Google n field, where n is a number, select a Google Cloud-supported key.
- In the corresponding OIDC n field, enter the
IdP attribute name or a CEL expression.
For Microsoft Entra ID with OIDC authentication, we recommend the following
attribute mappings:
google.subject=assertion.oid, google.groups=assertion.groups, google.display_name=assertion.preferred_usernameThis example maps the IdP attributes
assertion.oid,assertion.groups, andassertion.preferred_usernameto the Google Cloud attributesgoogle.subject,google.groups, andgoogle.display_name, respectively.
- To increase the number of groups, do the following:
- Click Enable for extra attributes.
- In the subtask that opens, enter the details:
- In the Extra Attributes Issuer URI field, enter the issuer URL.
- In the Extra Attributes Client ID field, enter the client ID.
- In the Extra Attributes Client Secret field, enter the client secret.
- In the Extra Attributes Type list, select an attribute type for extra attributes.
- In the Extra Attributes Filter field, enter a filter expression to be used when querying the Microsoft Graph API for groups.
- Click Enable.
After you enable extra attributes, you can click Edit to reopen the subtask and edit the details, or click Disable to turn off extra attributes.
- To add an attribute condition, do the following:
- Click Add condition.
- In the Attribute Conditions field, enter a
condition in CEL format; for example,
to limit the
ipaddrattribute to a certain IP range you can set the conditionassertion.ipaddr.startsWith('98.11.12.').
- To add or edit attribute mappings, do the following:
- To validate your mappings, click Save and refetch token.
- To complete the setup, click Save and exit.
Create a SAML 2.0 workforce identity pool provider
In your SAML IdP, register a new application for Google Cloud Workforce Identity Federation.
Set the audience for SAML assertions. It is usually the
SP Entity IDfield in your IdP configuration. You must set it to the following URL:https://iam.googleapis.com/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_IDSet the redirect URL, also known as the Assertion Consumer Service (ACS) URL. To set the redirect URL, locate the redirect URL field in your SAML IdP, and do one of the following:
To set up browser-based sign-in through the Google Cloud console or another browser-based sign-in method, enter following URL:
https://auth.cloud.google/signin-callback/locations/global/workforcePools/WORKFORCE_POOL_ID/providers/WORKFORCE_PROVIDER_IDReplace the following:
WORKFORCE_POOL_ID: the workforce identity pool IDWORKFORCE_PROVIDER_ID: the ID of the workforce identity pool provider that you create later in this document.
To set up programmatic sign-in through your IdP, enter the following URL:
localhost
See Set up user access to the console for more details on configuring console sign-in.
In Google Cloud, create a SAML workforce identity pool provider using your IdP's SAML metadata document. You can download the SAML metadata XML document from your IdP. The document must include at least the following:
- A SAML entity ID for your IdP.
- The single-sign-on URL for your IdP.
- At least one signing public key. See