Sicherheitsebenen

API-Rollen geben die Ressourcen an, auf die Aufrufer zugreifen können, sowie die Eigenschaften dieser Ressourcen, die Aufrufer anzeigen oder bearbeiten können. In einer API-Rollendatei können Sie jede Eigenschaft und ihren Anzeige- und Bearbeitungszugriff explizit angeben. Es kann jedoch Situationen geben, in denen es einfacher ist, Zugriff auf einen Satz von Eigenschaften zu gewähren, ohne alle Eigenschaften explizit zu benennen. In diesen Situationen können Sie Sicherheitsebenen verwenden.

Die Sicherheitsebene ist ein Attribut auf Eigenschaftenebene, das von API-Rollen verwendet werden kann, um einem Satz von Eigenschaften Anzeige- oder Bearbeitungsberechtigungen zuzuweisen. API-Rollen können mithilfe des Ausdrucks "*level" Anzeige- oder Bearbeitungsberechtigungen gewähren, d. h. „die Berechtigung für alle Eigenschaften dieser Ressource mit der Sicherheitsebene level erteilen.“

Es gibt drei Sicherheitsebenen: intern, vertraulich und öffentlich. Diese Ebenen sind nicht hierarchisch. Die Gewährung des Zugriffs auf eine bestimmte Sicherheitsebene schließt grundsätzlich keine anderen Sicherheitsebenen ein. Auch ist mit ihnen keine zugehörige Bedeutung verbunden. Sie sind beliebige Beschriftungen, die Sie auf die jeweils am besten geeignete Weise verwenden können.

Festlegen der Sicherheitsebene eines Felds

Sicherheitsebenen werden in der Schemadatei der Ressource festgelegt. Die Syntax lautet "securityLevel": level.

  • level muss entweder internal, sensitive oder public sein.
  • Wenn für eine Eigenschaft keine Sicherheitsebene angegeben ist, wird standardmäßig public verwendet.

Der folgende Codeausschnitt aus policyperiod_core-1.0.schema.json deklariert beispielsweise zwei Eigenschaften für die Ressource Cost:

"Cost": {
  "properties": {
    "adjustedRate": {
        ... 
        "securityLevel": "internal"
      }
    },
    "amount": {
        ...
    },

Die Eigenschaft adjustedRate hat die Sicherheitsebene internal. Die Eigenschaft amount hat keine definierte Sicherheitsebene und hat daher standardmäßig die Sicherheitsebene public.

Verwenden von Sicherheitsebenen in API-Rollen

In einer API-Rollendatei können Sie beim Angeben von Anzeige- und Bearbeitungsberechtigungen für eine bestimmte Ressource den Ausdruck "*level" für die Angabe „alle Eigenschaften der Ressource mit der angegebenen Ebene“ verwenden. Im folgenden Beispiel wird Zugriff auf Felder der Ressource Cost gewährt. Der Empfänger kann alle Eigenschaften der Ressource Cost bearbeiten und anzeigen, die die Sicherheitsebene public aufweisen, sowie die Eigenschaft sortableId (die vermutlich kein öffentliches Feld ist). (Basierend auf dem vorherigen Codeausschnitt könnte der Empfänger amount anzeigen und bearbeiten, jedoch nicht adjustedRate.)

accessibleFields:
  Cost:
    edit:
    - "*public"
    - sortableId
    view:
    - "*public"
    - sortableId

Zusätzliche Verhaltensweisen von Sicherheitsebenen

Sicherheitsebenen sind nicht hierarchisch. Um Zugriff auf mehrere Ebenen zu gewähren, müssen alle Ebenen explizit aufgeführt werden. Im Folgenden wird beispielsweise der Bearbeitungszugriff auf alle öffentlichen oder vertraulichen Eigenschaften der Ressource Cost gewährt:

Cost:
  edit:
  - ["*public", "*sensitive"]

Wenn im Anzeige- oder Bearbeitungsbereich einer Ressource sowohl explizite Eigenschaften als auch ein "*level"-Ausdruck aufgeführt sind, hat der Empfänger Zugriff auf alle explizit aufgeführten Eigenschaften und alle Eigenschaften mit der angegebenen Sicherheitsebene. Im Folgenden wird beispielsweise der Bearbeitungszugriff auf alle öffentlichen Eigenschaften der Ressource Cost sowie auf die Eigenschaft sortableId gewährt:

Cost:
  edit:
  - "*public"
  - sortableId