File
Implements
Index
Properties
|
|
Methods
|
|
Inputs
|
|
Constructor
constructor(tenantService: TenantService)
|
Parameters :
Name |
Type |
Optional |
tenantService |
TenantService
|
No
|
|
Methods
Async
ngOnChanges
|
ngOnChanges()
|
|
shouldShow
|
shouldShow(field: string)
|
Decorators :
@memoize()
|
Parameters :
Name |
Type |
Optional |
field |
string
|
No
|
|
flowControlledByUI
|
Default value : false
|
REDIRECT_TO_THE_USER_INTERFACE_APPLICATION_TOOLTIP
|
Default value : gettext(
"The redirect URL is automatically set to the application used by the user. In case of an error, it will be correctly displayed on the application's page."
)
|
redirectToPlatform
|
Type : string
|
Default value : ''
|
redirectToPlatformWarningParams
|
Type : literal type
|
<fieldset class="p-24">
<div class="row">
<div class="col-xs-12 col-sm-3 col-md-2 m-b-xs-8">
<div
class="h4 text-normal text-right text-left-xs"
translate
>
Basic
</div>
</div>
<div
class="col-xs-12 col-sm-9 col-md-10 col-lg-9"
*ngIf="templateModel"
>
<div class="row">
<div
class="col-sm-6"
*ngIf="shouldShow('keyCloakAddress')"
>
<c8y-form-group>
<label
class="control-label"
for="keyCloakAddress"
translate
>
Keycloak address
</label>
<input
class="form-control"
id="keyCloakAddress"
name="keyCloakAddress"
type="url"
required
[(ngModel)]="templateModel.keyCloakAddress"
[placeholder]="'e.g. {{ example }}' | translate : { example: 'https://example.de' }"
/>
</c8y-form-group>
</div>
<div
class="col-sm-6"
*ngIf="shouldShow('aadAddress')"
>
<c8y-form-group>
<label
class="control-label"
for="aadAddress"
translate
>
Azure AD address
</label>
<input
class="form-control"
id="aadAddress"
name="aadAddress"
type="url"
required
[(ngModel)]="templateModel.aadAddress"
[placeholder]="
'e.g. {{ example }}' | translate : { example: 'https://login.microsoftonline.de' }
"
/>
</c8y-form-group>
</div>
<div
class="col-sm-6"
*ngIf="shouldShow('tenant')"
>
<c8y-form-group>
<label
class="control-label"
for="tenant"
translate
>
Tenant
</label>
<input
class="form-control"
id="tenant"
name="tenant"
required
[(ngModel)]="templateModel.tenant"
[placeholder]="'e.g. {{ example }}' | translate : { example: 'c8y.onmicrosoft.de' }"
/>
</c8y-form-group>
</div>
<div
class="col-sm-6"
*ngIf="shouldShow('applicationId')"
>
<c8y-form-group>
<label
class="control-label"
for="applicationId"
translate
>
Application ID
</label>
<input
class="form-control"
id="applicationId"
name="applicationId"
required
[(ngModel)]="templateModel.applicationId"
/>
</c8y-form-group>
</div>
<div
class="col-sm-6"
*ngIf="shouldShow('realmName')"
>
<c8y-form-group>
<label
class="control-label"
for="realmName"
translate
>
Realm name
</label>
<input
class="form-control"
id="realmName"
name="realmName"
required
[(ngModel)]="templateModel.realmName"
/>
</c8y-form-group>
</div>
</div>
<div class="row" *ngIf="shouldShow('redirectToPlatform')">
<div class="col-sm-6">
<c8y-form-group>
<label
class="control-label"
for="redirectToPlatform"
>
{{ 'Redirect URL' | translate }}
<button
class="btn-help"
[attr.aria-label]="'Help' | translate"
[popover]="helpContent"
placement="bottom"
triggers="focus"
type="button"
[adaptivePosition]="false"
*ngIf="
!flowControlledByUI &&
redirectToPlatformWarningParams &&
templateModel.redirectToPlatform !=
redirectToPlatformWarningParams.defaultRedirectUrl
"
></button>
<ng-template #helpContent>
<span
ngNonBindable
translate
[translateParams]="redirectToPlatformWarningParams"
>
For correct application behavior you can use only "{{ host }}" or "{{
defaultRedirectUrl
}}", the latter one is recommended.
</span>
</ng-template>
</label>
<input
class="form-control"
id="redirectToPlatform"
name="redirectToPlatform"
type="url"
[required]="!flowControlledByUI"
[disabled]="flowControlledByUI"
[(ngModel)]="templateModel.redirectToPlatform"
[placeholder]="
'e.g. {{ example }}'
| translate
: {
example:
redirectToPlatformWarningParams?.defaultRedirectUrl ||
'https://tenant.domain.com'
}
"
/>
</c8y-form-group>
</div>
<div class="col-sm-6">
<div
class="form-group"
>
<label
class="c8y-switch m-t-24"
title="{{ 'Redirect to the user interface application`SSO authentication`' | translate }}"
for="flowControlledByUI"
>
<input
type="checkbox"
name="flowControlledByUI"
id="flowControlledByUI"
[(ngModel)]="flowControlledByUI"
(change)="templateModel.redirectToPlatform = flowControlledByUI ? '' : redirectToPlatform"
/>
<span></span>
<span class="control-label">{{ 'Redirect to the user interface application`SSO authentication`' | translate }}</span>
<button
type="button"
class="btn-help"
[attr.aria-label]="'Help' | translate"
popover="{{ REDIRECT_TO_THE_USER_INTERFACE_APPLICATION_TOOLTIP | translate }}"
placement="right"
triggers="focus"
container="body"
></button>
</label>
</div>
</div>
<div class="col-sm-12">
<div *ngIf="flowControlledByUI && redirectToPlatform != ''">
<div class="alert alert-warning max-width-100 m-b-32"
ngNonBindable
translate
[translateParams]="{
redirectURI: '<tenant_domain>/apps/*'
}">
Make sure that "Valid Redirect URIs" in the authorization server is set to "{{ redirectURI }}" or to the full URIs of the used applications if the authorization server does not support patterns.
</div>
</div>
<div *ngIf="!flowControlledByUI && redirectToPlatform === ''">
<div class="alert alert-warning max-width-100 m-b-32"
ngNonBindable
translate
[translateParams]="{
redirectURI: '<tenant_domain>/tenant/oauth'
}">
Make sure that "Valid Redirect URIs" in the authorization server is set to "{{ redirectURI }}".
</div>
</div>
</div>
</div>
<div class="row">
<div
class="col-sm-6"
*ngIf="shouldShow('clientSecret')"
>
<c8y-form-group>
<label
class="control-label"
for="clientSecret"
translate
>
Client secret
</label>
<input
class="form-control"
id="clientSecret"
name="clientSecret"
required
[(ngModel)]="templateModel.clientSecret"
/>
</c8y-form-group>
</div>
<div
class="col-sm-6"
*ngIf="shouldShow('clientId')"
>
<c8y-form-group>
<label
class="control-label"
for="clientId"
translate
>
Client ID
</label>
<input
class="form-control"
id="clientId"
name="clientId"
required
[(ngModel)]="templateModel.clientId"
[placeholder]="
'e.g. {{ example }}' | translate : { example: '254234981c-78a8-4588…' }
"
/>
</c8y-form-group>
</div>
<div
class="col-sm-6"
*ngIf="shouldShow('issuer')"
>
<c8y-form-group>
<label
class="control-label"
for="issuer"
translate
>
Token issuer
</label>
<input
class="form-control"
id="issuer"
name="issuer"
required
[(ngModel)]="templateModel.issuer"
[placeholder]="
'e.g. {{ example }}'
| translate : { example: 'https://login.microsoftonline.de/237652-3727' }
"
/>
</c8y-form-group>
</div>
<div
class="col-sm-6"
*ngIf="shouldShow('scopeId')"
>
<c8y-form-group>
<label
class="control-label"
for="scopeId"
translate
>
Scope ID
</label>
<input
class="form-control"
id="scopeId"
name="scopeId"
[(ngModel)]="templateModel.scopeId"
[placeholder]="'e.g. {{ example }}' | translate: { example: '237652-3727' }"
/>
</c8y-form-group>
</div>
<div
class="col-sm-6"
*ngIf="shouldShow('buttonName')"
>
<c8y-form-group>
<label
class="control-label"
for="buttonName"
translate
>
Button name
</label>
<input
class="form-control"
id="buttonName"
name="buttonName"
required
[(ngModel)]="templateModel.buttonName"
[placeholder]="'e.g. Log in with Azure AD' | translate"
/>
</c8y-form-group>
</div>
<div
class="col-sm-6"
*ngIf="shouldShow('providerName')"
>
<c8y-form-group>
<label
class="control-label"
for="providerName"
translate
>
Provider name
</label>
<input
class="form-control"
id="providerName"
name="providerName"
required
[(ngModel)]="templateModel.providerName"
[placeholder]="'e.g. {{ example }}' | translate : { example: 'Azure AD' }"
/>
</c8y-form-group>
</div>
<div
class="col-sm-6"
*ngIf="shouldShow('audience')"
>
<c8y-form-group>
<label
class="control-label"
for="audience"
translate
>
Audience
</label>
<input
class="form-control"
id="audience"
name="audience"
required
[(ngModel)]="templateModel.audience"
[placeholder]="
'e.g. {{ example }}' | translate : { example: 'https://test.example.com' }
"
/>
</c8y-form-group>
</div>
</div>
<div
class="row"
*ngIf="shouldShow('visibleOnLoginPage')"
>
<div class="col-sm-6">
<label
class="c8y-switch"
title="{{ 'Visible on login page' | translate }}"
for="visibleOnLoginPage"
>
<input
id="visibleOnLoginPage"
name="visibleOnLoginPage"
type="checkbox"
[(ngModel)]="templateModel.visibleOnLoginPage"
/>
<span></span>
<span class="control-label">{{ 'Visible on login page' | translate }}</span>
</label>
</div>
</div>
</div>
</div>
</fieldset>