Hosted sign-in page configuration interfaces
Stay organized with collections
Save and categorize content based on your preferences.
This article describes the UiConfig, ExtendedTenantUiConfig, and
SignInOption interfaces that are available when creating a sign-in
page for Identity-Aware Proxy using Cloud Run.
UiConfig
interfaceUiConfig{
//TheAPIkeyforthecurrentIdentityPlatformproject.
apiKeyValue:{
//ProvisionedbyIdentityPlatform.
authDomain?:string;
//Thedisplaymodefortenantselectionflow.Thiscouldbe'optionFirst'
//or'identifierFirst'.Thedefaultis'optionFirst'.
displayMode:string;
//Thetenantselectionscreentitle.Bydefault,thisistheprojectID.
selectTenantUiTitle?:string;
//ThetenantselectionscreenlogointheformofanHTTPSURL.Bydefault,
//nologoisprovided.
selectTenantUiLogo?:string;
//TheCSSstylesheetusedtooverridethedefaultCSSstylesintheformof
//anHTTPSURL.ThehostedUIusesasupersetoftheFirebaseUI-webCSS
//styles.Bydefault,nocustomstylesheetisprovided.
styleUrl?:string;
//Thetenantsconfigurations.
tenants:{
//Eachtenantconfigurationiskeyedbythetenantidentifier.
tenantIdValue:ExtendedTenantUiConfig;
};
//TheapplicationtermsofserviceURLintheformofanHTTPSURL.
//Bydefault,thisisempty.
tosUrl?:string,
//TheapplicationprivacypolicyURLintheformofanHTTPSURL.
//Bydefault,thisisempty.
privacyPolicyUrl?:string,
};
}
ExtendedTenantUiConfig
interfaceExtendedTenantUiConfig{
//Theoptionaltenantfulllabel.Thisisusedforthe"Signinwithtenant"
//buttonlabel.
//Whennotprovided,"Signinto${displayName}"isusedasthefulllabel.
fullLabel?:string;
//Thetenantdisplayname.Thisisusedforthe"Signinwithtenant"label.
//Fortenants,thedefaultisthetenantdisplayname.Forprojects-level
//identityproviders,thedefaultistheprojectID.
displayName:string;
//ThetenanticonURLintheformofanHTTPSURL.Thisisusedforthe
//"Signinwithtenant"buttoniconURL.Thedefaultisaplaceholdericon.
iconUrl:string;
//ThetenantlogoURLintheformofanHTTPSURL.Thisisdisplayedafter
//theuserselectsthetenantandispresentedwiththeidentityproviders
//associatedwiththetenant.Bydefault,nologoURLisprovided.
logoUrl?:string;
//Thetenantbuttoncolor.Thisisusedforthe"signinwithtenant"button.
//Adefaultcolorisusedforalltenants.
buttonColor:string;
//Thesign-inoptionsassociatedwiththetenant.Thisisauto-populated
//usingtheenabledprovidersforthecurrenttenant.
signInOptions:(SignInOption|string)[];
//ThetermsofserviceURLassociatedwiththecurrenttenantintheform
//ofanHTTPSURL.Emptybydefault.
tosUrl?:string;
//TheprivacypolicyURLassociatedwiththecurrenttenantintheformof
//anHTTPSURL.Emptybydefault.
privacyPolicyUrl?:string;
//ForsingleproviderswithsignInFlowsetto'redirect',settingthisto
//'true'willresultwitharedirecttotheproviderwithoutuser
//interaction.Settotruebydefault.
immediateFederatedRedirect?:boolean;
//Whethertousepopuporredirectflowsforfederatedproviders.
//Redirectflowsareusedbydefault.
signInFlow?:'redirect'|'popup';
//SetstheadminRestrictedOperationconfigurationforprovidersincluding
//federated,email/password,emaillinkandphonenumber.
adminRestrictedOperation?:{
//Specifieswhethertoprovideadditionalinstructionstotheenduserwhen
//ausertriestocreateanewuseraccountandtheauthorizationserver
//blockstheoperation.
status:boolean;
//Theoptionalsiteadministratoremailtocontactforaccesswhensignup
//isdisabled.Forexample:`admin@example.com`.
adminEmail?:string;
//Theoptionalhelplinktoprovideinformationonhowtogetaccesstothe
//sitewhensignupisdisabled.
//Forexample:`https://www.example.com/trouble_signing_in`.
helpLink?:string;
}
}
SignInOption
interfaceSignInOption{
// The provider identifier, such as facebook.com or saml.my-saml-provider-id.
provider:string;
// The provider label name.
providerName?:string;
// The full label of the button. Instead of "Sign in with $providerName",
// this button label will be used. Default: Sign in with $providerName
fullLabel?:string;
// For identifier first flows, this is the user email domain: tenant1.com
hd?:string;
// The button color, such as "#ff00ff".
buttonColor?:string;
// The button icon URL in the form of an HTTPS URL.
iconUrl?:string;
// Additional OAuth scopes to request for OAuth providers.
scopes?:string[];
// Additional custom OAuth parameters to set on sign-in.
// For example, setting {auth_type: 'reauthenticate'} will
// require password re-entry on Facebook re-authentication.
customParameters?:{[key:string]:any};
// In the "identifierFirst' flow, a login hint key makes it possible
// to pass the email to the provider to sign in with. This is useful when a
// user has multiple accounts. For many providers, this is "login_hint".
loginHintKey?:string;
// Whether to require display name when creating an email and password
// account. True by default.
requireDisplayName?:boolean;
// reCAPTCHA customization for phone providers.
recaptchaParameters?:{
// The type of the reCAPTCHA ("audio" or "image")
type?:string;
// Whether the reCAPTCHA is invisible or not. Valid options are
// "invisible", "normal", and "compact".
size?:string;
// For invisible reCAPTCHAs, this defines how the invisible reCAPTCHA badge
// is displayed (for example, "bottomleft", "bottomright" or "inline").
badge?:string;
};
// The default country for phone providers.
defaultCountry?:string;
// Sets the whitelisted countries for phone providers. Accepts either ISO
// (alpha-2) or E164 formatted country codes. For example: ['US', '+44']
whitelistedCountries?:string[];
// Sets the blacklisted countries for phone providers. Accepts either ISO
// (alpha-2) or E164 formatted country codes. For example: ['US', '+44']
blacklistedCountries?:string[];
// Sets the disableSignUp config for email/password or email link sign in
// method.
disableSignUp?:{
// Whether to disable users from signing up with email providers
// (email/password or email link).
status:boolean;
// The optional site administrator email to contact for access when sign
// up is disabled.
// For example: `admin@example.com`.
adminEmail?:string;
// The optional help link to provide information on how to get access to
// the site when sign up is disabled.
// For example: `https://www.example.com/trouble_signing_in`.
helpLink?:string;
}
}