File
Index
Properties
|
|
Methods
|
|
Inputs
|
|
Methods
removeCustomCertificate
|
removeCustomCertificate(customCertificate: CustomCertificate)
|
|
shouldShow
|
shouldShow(field: string)
|
Decorators :
@memoize()
|
Parameters :
Name |
Type |
Optional |
field |
string
|
No
|
|
algorithmTypes
|
Default value : algorithmTypeConfig
|
CERTIFICATE_ID_FIELD_POPOVER
|
Default value : gettext(
'This is the name of the field in the token whose value will be used to select one of the certificates below which has matching "Certificate ID value".'
)
|
certificateType
|
Default value : CertificateType
|
certificateTypes
|
Default value : certificateTypeConfig
|
<div class="col-md-12 p-t-16">
<div class="row m-l-8 m-r-8 m-b-8">
<div class="col-xs-12 col-sm-3 col-md-2">
<div class="h4 text-normal text-right text-left-xs" translate>Signature verification</div>
</div>
<div class="col-xs-12 col-sm-9 col-md-10 col-lg-9">
<div class="row">
<div class="col-sm-6">
<div *ngIf="shouldShow('certificateType')" class="form-group p-relative">
<div class="row">
<div class="col-sm-6">
<label for="certificateType" class="control-label" translate>Verifier</label>
<div class="c8y-select-wrapper">
<select
class="form-control"
id="certificateType"
name="certificateType"
[(ngModel)]="templateModel.signatureVerificationConfig.certificateTypeChosen"
>
<option
*ngFor="let certificateType of certificateTypes | keyvalue"
[ngValue]="certificateType.key"
>
{{ certificateType.value.label | translate }}
</option>
</select>
<span></span>
</div>
</div>
</div>
</div>
</div>
</div>
<div
id="adfs"
*ngIf="
templateModel.signatureVerificationConfig.certificateTypeChosen === certificateType.ADFS
"
>
<div class="row">
<div class="col-sm-6">
<c8y-form-group>
<label for="adfsManifestUrl" class="control-label" translate>ADFS manifest URL</label>
<input
type="url"
class="form-control"
required
[placeholder]="
'e.g. {{ example }}'
| translate
: {
example:
'https://adfs.tenant.com/federationmetadata/federationmetadata.xml'
}
"
[(ngModel)]="templateModel.signatureVerificationConfig.adfsManifest.manifestUrl"
name="adfsManifestUrl"
id="adfsManifestUrl"
/>
</c8y-form-group>
</div>
</div>
</div>
<div
id="add"
*ngIf="
templateModel.signatureVerificationConfig.certificateTypeChosen === certificateType.AZURE
"
>
<div class="row">
<div class="col-sm-6">
<c8y-form-group>
<label for="publicKeyDiscoveryUrl" class="control-label" translate>
Public key discovery URL
</label>
<input
type="url"
id="publicKeyDiscoveryUrl"
class="form-control"
required
[placeholder]="
'e.g. {{ example }}'
| translate
: { example: 'https://login.microsoftonline.de/tenant/discovery/keys' }
"
name="publicKeyDiscoveryUrl"
[(ngModel)]="templateModel.signatureVerificationConfig.aad.publicKeyDiscoveryUrl"
/>
</c8y-form-group>
</div>
</div>
</div>
<div
id="jwks"
*ngIf="
templateModel.signatureVerificationConfig.certificateTypeChosen === certificateType.JWKS
"
>
<div class="row">
<div class="col-sm-6">
<c8y-form-group>
<label for="jwksPublicKeyDiscoveryUrl" class="control-label" translate>
JWKS URL
</label>
<input
type="url"
class="form-control"
id="jwksPublicKeyDiscoveryUrl"
required
[placeholder]="
'e.g. {{ example }}' | translate: { example: 'http://www.example.com/' }
"
name="jwksUri"
[(ngModel)]="templateModel.signatureVerificationConfig.jwks.jwksUri"
/>
</c8y-form-group>
</div>
</div>
</div>
<div
id="manual"
*ngIf="
templateModel.signatureVerificationConfig.certificateTypeChosen === certificateType.CUSTOM
"
>
<c8y-form-group
*ngIf="templateModel.signatureVerificationConfig.manual.customCertificates.length > 1"
>
<div class="legend form-block" translate>Manual</div>
<div class="row">
<div class="col-sm-6">
<label for="certIdField" class="control-label">
{{ 'Certificate ID field' | translate }}
<button
class="btn-help"
popover="{{ CERTIFICATE_ID_FIELD_POPOVER | translate }}"
placement="right"
triggers="focus"
[attr.aria-label]="'Help' | translate"
>
<i c8yIcon="question-circle-o"></i>
</button>
</label>
<input
type="text"
class="form-control"
name="certIdField"
id="certIdField"
[(ngModel)]="templateModel.signatureVerificationConfig.manual.certIdField"
required
/>
</div>
</div>
</c8y-form-group>
<div>
<div class="legend form-block" translate>Certificates</div>
<div
*ngFor="
let customCertificate of templateModel.signatureVerificationConfig.manual
.customCertificates;
index as crtIndex
"
>
<div class="row">
<div
class="col-sm-6"
*ngIf="
templateModel.signatureVerificationConfig.manual.customCertificates.length > 1
"
>
<c8y-form-group>
<label
[for]="'customCertificateValue' + crtIndex"
class="control-label"
translate
>
Certificate ID value
</label>
<input
[name]="'customCertificateValue' + crtIndex"
[id]="'customCertificateValue' + crtIndex"
type="text"
class="form-control"
[(ngModel)]="customCertificate.key"
required
/>
</c8y-form-group>
</div>
<div class="col-sm-6">
<c8y-form-group>
<label class="control-label">
{{ 'Type' | translate }}
</label>
<label
title="{{ algorithmType.value.label | translate }}"
class="c8y-radio input-sm"
*ngFor="let algorithmType of algorithmTypes | keyvalue; index as algIndex"
>
<input
type="radio"
[name]="'alg' + crtIndex + algIndex"
[value]="algorithmType.key"
[(ngModel)]="customCertificate.alg"
/>
<span></span>
<span>{{ algorithmType.value.label | translate }}</span>
</label>
</c8y-form-group>
</div>
</div>
<div class="row">
<div class="col-sm-6">
<c8y-form-group>
<label
class="control-label"
[for]="'publicKey' + crtIndex"
*ngIf="customCertificate.alg === algorithmTypes.PCKS.value"
translate
>
Certificate in PEM format
</label>
<label
class="control-label"
[for]="'publicKey' + crtIndex"
*ngIf="customCertificate.alg === algorithmTypes.RSA.value"
translate
>
Public key in PEM format
</label>
<input
[name]="'publicKey' + crtIndex"
[id]="'publicKey' + crtIndex"
type="text"
class="form-control"
[(ngModel)]="customCertificate.publicKey"
required
/>
</c8y-form-group>
</div>
<div class="col-sm-3">
<div class="form-group datepicker">
<c8y-form-group>
<label [for]="'validFromPicker' + crtIndex" class="control-label">
{{ 'Valid from' | translate }}
</label>
<input
[name]="'validFromPicker' + crtIndex"
[id]="'validFromPicker' + crtIndex"
[(ngModel)]="customCertificate.validFrom"
class="form-control"
placeholder="{{ 'Date from' | translate }}"
[bsConfig]="{ customTodayClass: 'today' }"
[maxDate]="customCertificate.validTill"
bsDatepicker
required
/>
</c8y-form-group>
</div>
</div>
<div class="col-sm-3">
<div class="form-group datepicker">
<c8y-form-group>
<label [for]="'validTillPicker' + crtIndex" class="control-label">
{{ 'Valid till' | translate }}
</label>
<input
[name]="'validTillPicker' + crtIndex"
[id]="'validTillPicker' + crtIndex"
[(ngModel)]="customCertificate.validTill"
class="form-control"
placeholder="{{ 'Date to' | translate }}"
aria-label="{{ 'Date to' | translate }}"
[bsConfig]="{ customTodayClass: 'today' }"
bsDatepicker
[minDate]="customCertificate.validFrom"
required
/>
</c8y-form-group>
</div>
</div>
</div>
<div
class="form-group"
*ngIf="templateModel.signatureVerificationConfig.manual.customCertificates.length > 1"
>
<button
title="{{ 'Delete certificate' | translate }}"
class="btn btn-danger btn-sm hidden-xs"
(click)="removeCustomCertificate(customCertificate)"
type="button"
>
<i c8yIcon="minus-circle"></i>
<span>{{ 'Delete certificate' | translate }}</span>
</button>
<button
title="{{ 'Delete certificate' | translate }}"
class="btn btn-danger btn-block btn-sm visible-xs"
(click)="removeCustomCertificate(customCertificate)"
type="button"
>
<i c8yIcon="minus-circle"></i>
<span>{{ 'Delete certificate' | translate }}</span>
</button>
</div>
<div
class="separator-top p-b-24"
*ngIf="templateModel.signatureVerificationConfig.manual.customCertificates.length > 1"
></div>
</div>
<button
title="{{ 'Add certificate' | translate }}"
type="button"
class="btn btn-default m-b-16 m-t-8"
(click)="templateModel.signatureVerificationConfig.manual.addCustomCertificate()"
name="addCertificate"
>
<i c8yIcon="plus-circle" class="m-r-4"></i>
<span>{{ 'Add certificate' | translate }}</span>
</button>
</div>
</div>
</div>
</div>
</div>