Common Expression Language verwenden
Auf dieser Seite wird beschrieben, wie Sie Common Expression Language (CEL) mit Richtlinien für die Zertifikatsausstellung, Zertifikatsvorlagen und IAM-Bedingungen (Identity and Access Management) für Ihren CA-Pool verwenden können.
Übersicht
Common Expression Language (CEL) ist eine Open-Source-Sprache ohne Turing-Vollständigkeit, die eine gemeinsame Semantik für die Auswertung von Ausdrücken implementiert. Der Certificate Authority Service unterstützt CEL, um verschiedene Richtlinienkontrollen für die Zertifikatsausstellung zu erzwingen.
Es gibt zwei CEL-Dialekte, die mit dem CA Service verwendet werden können:
- Ein flexibler Dialekt, der in den Richtlinien für die Zertifikatsausstellung und Zertifikatsvorlagen eines CA-Pools verwendet werden kann.
- Ein eingeschränkterer Dialekt, der in IAM-Bedingungen verwendet werden kann.
CEL-Dialekt für Richtlinien für die Zertifikatsausstellung und Zertifikatsvorlagen
Wenn Sie einen CA-Pool oder eine Zertifikatsvorlage erstellen, können Sie einen CEL-Ausdruck als Teil der Einschränkungen für die Zertifikatsidentität angeben. Mit dem CEL-Ausdruck können Sie die Felder für den Inhaber und den alternativen Inhabernamen (Subject Alternative Name, SAN) validieren.
Weitere Informationen zu Ausstellungsrichtlinien finden Sie unter Richtlinien für die Zertifikatsausstellung hinzufügen.
Weitere Informationen zu Zertifikatsvorlagen finden Sie unter Übersicht über Richtlinienkontrollen.
Der CEL-Dialekt für die Identitätseinschränkungen von CA-Pools und Zertifikatsvorlagen stellt die folgenden Variablen für den Zugriff auf die Felder für den Inhaber und den SAN sowie für die Validierung dieser Felder bereit:
- Inhaber:
subject - SAN:
subject_alt_names
Inhaber
Sie können alle Felder im Domainnamen des Inhabers eines Zertifikats (einschließlich des allgemeinen Namens) validieren, wie in der Zertifikatsanfrage angegeben. Verwenden Sie dazu eine Variable vom Typ Subject und den Namen subject.
Subject ist eine Struktur, die die folgenden Felder enthält:
| Typ | Name |
|---|---|
String |
common_name |
String |
country_code |
String |
organization |
String |
organizational_unit |
String |
locality |
String |
province |
String |
street_address |
String |
postal_code |
Alternative Inhabernamen (SANs)
Sie können alle SANs validieren, wie in der Zertifikatsanfrage angegeben. Verwenden Sie dazu die Variable subject_alt_names. Die Variable subject_alt_names enthält eine Liste von SAN-Strukturen, wobei jeder SAN vom Typ SubjectAltName ist.
SubjectAltName ist eine Struktur, die die folgenden Felder enthält:
| Typ | Name |
|---|---|
String |
Wert |
[]Int32 |
oid |
Enum |
Typ |
Sie können die folgenden Werte für den Typ SubjectAltName verwenden: