Hosted sign-in page configuration interfaces

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

  interface 
  
 UiConfig 
  
 { 
  
 // 
  
 The 
  
 API 
  
 key 
  
 for 
  
 the 
  
 current 
  
 Identity 
  
 Platform 
  
 project. 
  
 apiKeyValue 
 : 
  
 { 
  
 // 
  
 Provisioned 
  
 by 
  
 Identity 
  
 Platform 
 . 
  
 authDomain 
 ?: 
  
 string 
 ; 
  
 // 
  
 The 
  
 display 
  
 mode 
  
 for 
  
 tenant 
  
 selection 
  
 flow. 
  
 This 
  
 could 
  
 be 
  
 'optionFirst' 
  
 // 
  
 or 
  
 'identifierFirst'. 
  
 The 
  
 default 
  
 is 
  
 'optionFirst'. 
  
 displayMode 
 : 
  
 string 
 ; 
  
 // 
  
 The 
  
 tenant 
  
 selection 
  
 screen 
  
 title. 
  
 By 
  
 default, 
  
 this 
  
 is 
  
 the 
  
 project 
  
 ID. 
  
 selectTenantUiTitle?: 
  
 string 
 ; 
  
 // 
  
 The 
  
 tenant 
  
 selection 
  
 screen 
  
 logo 
  
 in 
  
 the 
  
 form 
  
 of 
  
 an 
  
 HTTPS 
  
 URL. 
  
 By 
  
 default, 
  
 // 
  
 no 
  
 logo 
  
 is 
  
 provided. 
  
 selectTenantUiLogo?: 
  
 string 
 ; 
  
 // 
  
 The 
  
 CSS 
  
 stylesheet 
  
 used 
  
 to 
  
 override 
  
 the 
  
 default 
  
 CSS 
  
 styles 
  
 in 
  
 the 
  
 form 
  
 of 
  
 // 
  
 an 
  
 HTTPS 
  
 URL. 
  
 The 
  
 hosted 
  
 UI 
  
 uses 
  
 a 
  
 superset 
  
 of 
  
 the 
  
 FirebaseUI-web 
  
 CSS 
  
 // 
  
 styles. 
  
 By 
  
 default, 
  
 no 
  
 custom 
  
 stylesheet 
  
 is 
  
 provided. 
  
 styleUrl?: 
  
 string 
 ; 
  
 // 
  
 The 
  
 tenants 
  
 configurations. 
  
 tenants 
 : 
  
 { 
  
 // 
  
 Each 
  
 tenant 
  
 configuration 
  
 is 
  
 keyed 
  
 by 
  
 the 
  
 tenant 
  
 identifier 
 . 
  
 tenantIdValue 
 : 
  
 ExtendedTenantUiConfig 
 ; 
  
 } 
 ; 
  
 // 
  
 The 
  
 application 
  
 terms 
  
 of 
  
 service 
  
 URL 
  
 in 
  
 the 
  
 form 
  
 of 
  
 an 
  
 HTTPS 
  
 URL 
 . 
  
 // 
  
 By 
  
 default 
 , 
  
 this 
  
 is 
  
 empty 
 . 
  
 tosUrl 
 ?: 
  
 string 
 , 
  
 // 
  
 The 
  
 application 
  
 privacy 
  
 policy 
  
 URL 
  
 in 
  
 the 
  
 form 
  
 of 
  
 an 
  
 HTTPS 
  
 URL 
 . 
  
 // 
  
 By 
  
 default 
 , 
  
 this 
  
 is 
  
 empty 
 . 
  
 privacyPolicyUrl 
 ?: 
  
 string 
 , 
  
 } 
 ; 
 } 
 

ExtendedTenantUiConfig

 interface  
ExtendedTenantUiConfig  
{  
//  
The  
optional  
tenant  
full  
label.  
This  
is  
used  
for  
the  
"Sign  
in  
with  
tenant"  
//  
button  
label.  
//  
When  
not  
provided,  
"Sign  
in  
to  
 ${ 
 displayName 
 } 
"  
is  
used  
as  
the  
full  
label.  
fullLabel?:  
string;  
//  
The  
tenant  
display  
name.  
This  
is  
used  
for  
the  
"Sign  
in  
with  
tenant"  
label.  
//  
For  
tenants,  
the  
default  
is  
the  
tenant  
display  
name.  
For  
projects-level  
//  
identity  
providers,  
the  
default  
is  
the  
project  
ID.  
displayName:  
string;  
//  
The  
tenant  
icon  
URL  
in  
the  
form  
of  
an  
HTTPS  
URL.  
This  
is  
used  
for  
the  
//  
"Sign  
in  
with  
tenant"  
button  
icon  
URL.  
The  
default  
is  
a  
placeholder  
icon.  
iconUrl:  
string;  
//  
The  
tenant  
logo  
URL  
in  
the  
form  
of  
an  
HTTPS  
URL.  
This  
is  
displayed  
after  
//  
the  
user  
selects  
the  
tenant  
and  
is  
presented  
with  
the  
identity  
providers  
//  
associated  
with  
the  
tenant.  
By  
default,  
no  
logo  
URL  
is  
provided.  
logoUrl?:  
string;  
//  
The  
tenant  
button  
color.  
This  
is  
used  
for  
the  
"sign  
in  
with  
tenant"  
button.  
//  
A  
default  
color  
is  
used  
for  
all  
tenants.  
buttonColor:  
string;  
//  
The  
sign-in  
options  
associated  
with  
the  
tenant.  
This  
is  
auto-populated  
//  
using  
the  
enabled  
providers  
for  
the  
current  
tenant.  
signInOptions:  
(SignInOption  
|  
string)[];  
//  
The  
terms  
of  
service  
URL  
associated  
with  
the  
current  
tenant  
in  
the  
form  
//  
of  
an  
HTTPS  
URL.  
Empty  
by  
default.  
tosUrl?:  
string;  
//  
The  
privacy  
policy  
URL  
associated  
with  
the  
current  
tenant  
in  
the  
form  
of  
//  
an  
HTTPS  
URL.  
Empty  
by  
default.  
privacyPolicyUrl?:  
string;  
//  
For  
single  
providers  
with  
signInFlow  
set  
to  
'redirect',  
setting  
this  
to  
//  
'true'  
will  
result  
with  
a  
redirect  
to  
the  
provider  
without  
user  
//  
interaction.  
Set  
to  
true  
by  
default.  
immediateFederatedRedirect?:  
boolean;  
//  
Whether  
to  
use  
popup  
or  
redirect  
flows  
for  
federated  
providers.  
//  
Redirect  
flows  
are  
used  
by  
default.  
signInFlow?:  
'redirect'  
|  
'popup';  
//  
Sets  
the  
adminRestrictedOperation  
configuration  
for  
providers  
including  
//  
federated,  
email/password,  
email  
link  
and  
phone  
number.  
adminRestrictedOperation?:  
{  
//  
Specifies  
whether  
to  
provide  
additional  
instructions  
to  
the  
end  
user  
when  
//  
a  
user  
tries  
to  
create  
a  
new  
user  
account  
and  
the  
authorization  
server  
//  
blocks  
the  
operation.  
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;  
}
} 

SignInOption

  interface 
  
 SignInOption 
  
 { 
  
 // 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 
 ; 
  
 } 
 } 
 
Create a Mobile Website
View Site in Mobile | Classic
Share by: