<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.4.9) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-cabanillas-nmop-authz-policy-sharing-model-02" category="info" consensus="true" submissionType="IETF" tocInclude="true" sortRefs="true" symRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.33.0 -->
  <front>
    <title abbrev="authz-policy-sharing-model">Model for distributed authorization policy sharing</title>
    <seriesInfo name="Internet-Draft" value="draft-cabanillas-nmop-authz-policy-sharing-model-02"/>
    <author initials="L. C." surname="Rodríguez" fullname="Lucía Cabanillas Rodríguez">
      <organization>Telefónica</organization>
      <address>
        <email>lucia.cabanillasrodriguez@telefonica.com</email>
      </address>
    </author>
    <author initials="D." surname="Lopez" fullname="Diego Lopez">
      <organization>Telefónica</organization>
      <address>
        <email>diego.r.lopez@telefonica.com</email>
      </address>
    </author>
    <author initials="A." surname="Mendez" fullname="Ana Mendez">
      <organization>Telefónica</organization>
      <address>
        <email>ana.mendezperez@telefonica.com</email>
      </address>
    </author>
    <date year="2026" month="June" day="05"/>
    <area>Operations and Management</area>
    <workgroup>Network Management Operations</workgroup>
    <keyword>policy</keyword>
    <keyword>authorization</keyword>
    <keyword>lifecycle</keyword>
    <abstract>
      <?line 57?>
<t>This document defines mechanisms and conventions for the representation, lifecycle management, and distribution of authorization policies in distributed and automated environments. It specifies a consistent, machine-readable, and interoperable framework that enables policies to be validated, exchanged, and removed across heterogeneous systems and areas.</t>
      <t>The framework defines how authorization policies, expressed in declarative Policy-as-Code (PaC) languages, are encapsulated, managed, and distributed using YANG as the canonical representation format. This separation allows independent evolution of policy languages, enforcement architectures, and trust models.</t>
      <t>The model also defines extensible Policy-as-Code language identities using YANG identity and identityref mechanisms, enabling future policy languages to be incorporated without modifying the core schema.</t>
    </abstract>
    <note removeInRFC="true">
      <name>About This Document</name>
      <t>
        The latest revision of this draft can be found at <eref target="https://LuciaCabanillasRodriguez.github.io/authz-policy-sharing-model/draft-cabanillas-nmop-authz-policy-sharing-model.html"/>.
        Status information for this document may be found at <eref target="https://datatracker.ietf.org/doc/draft-cabanillas-nmop-authz-policy-sharing-model/"/>.
      </t>
      <t>
        Discussion of this document takes place on the
        Network Management Operations Working Group mailing list (<eref target="mailto:nmop@ietf.org"/>),
        which is archived at <eref target="https://mailarchive.ietf.org/arch/browse/nmop/"/>.
        Subscribe at <eref target="https://www.ietf.org/mailman/listinfo/nmop/"/>.
      </t>
      <t>Source for this draft and an issue tracker can be found at
        <eref target="https://github.com/LuciaCabanillasRodriguez/authz-policy-sharing-model"/>.</t>
    </note>
  </front>
  <middle>
    <?line 64?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>The increasing complexity and automation of distributed systems, such as programmable networks, multi-cloud platforms, and intent-based infrastructures, require scalable and interoperable mechanisms for managing authorization policies. In these environments, policies are no longer confined to static configuration files or manually managed. Instead, they are dynamic artifacts that must be created, validated, distributed, updated, and eliminated programmatically.</t>
      <t>Authorization policies increasingly govern not only access control but also operational behavior, compliance requirements, and governance constraints across multiple areas. These policies may be authored in one area, distributed through another, and enforced in many. As a result, consistent handling of policies throughout their lifecycle becomes critical.</t>
      <t>Existing approaches often rely on system-specific policy formats and ad hoc distribution mechanisms, leading to several challenges:</t>
      <ul spacing="normal">
        <li>
          <t>Fragmentation: Incompatible representations and semantics hinder interoperability and auditability.</t>
        </li>
        <li>
          <t>Limited lifecycle control: Many systems lack standardized mechanisms for validation, versioning, and decommissioning.</t>
        </li>
        <li>
          <t>Trust ambiguity: In multi-domain environments, it is often unclear whether a policy source is authorized or trustworthy.</t>
        </li>
        <li>
          <t>Governance gaps: Systems frequently lack mechanisms to verify whether a policy author is permitted to define policies for a specific domain.</t>
        </li>
      </ul>
      <t>To address these challenges, this document defines a structured and interoperable framework for representing and managing authorization policies as governed artifacts. YANG is used as the canonical representation format for policy artifacts. A YANG-defined policy encapsulates its metadata together with embedded declarative Policy-as-Code content, which is treated as opaque executable logic. This structured representation enables schema-based validation, provenance verification, and interoperable lifecycle management while remaining agnostic to the underlying evaluation engine.</t>
    </section>
    <section anchor="conventions-and-definitions">
      <name>Conventions and Definitions</name>
      <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL
NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
"<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as
described in BCP 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
      <?line -18?>

<t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", "<bcp14>SHOULD NOT</bcp14>", "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document are to be interpreted as described in BCP 14 <xref target="RFC8174">RFC2119</xref> when, and only when, they appear in all capitals, as shown here.</t>
      <ul spacing="normal">
        <li>
          <t>Policy: A rule or set of rules that define behavior, access, or operational constraints within a system.</t>
        </li>
        <li>
          <t>Authorization policy: A policy that governs access or permissions based on user/agent, resource, or environmental attributes.</t>
        </li>
        <li>
          <t>Policy lifecycle: The set of stages through which a policy passes, including creation, validation, distribution, update, rollback, and removal.</t>
        </li>
        <li>
          <t>Policy-as-Code (PaC): A paradigm in which policies are represented as declarative code artifacts, allowing automation, versioning, and testing.</t>
        </li>
      </ul>
    </section>
    <section anchor="requirements-for-policy-management">
      <name>Requirements for Policy Management</name>
      <t>Systems that manage or exchange authorization policies across domains <bcp14>MUST</bcp14> satisfy the following requirements:</t>
      <ul spacing="normal">
        <li>
          <t>Granularity: Policies <bcp14>SHOULD</bcp14> be able to express fine-grained authorization rules over users, resources, and contextual conditions.</t>
        </li>
        <li>
          <t>Lifecycle control: Policies <bcp14>SHOULD</bcp14> support creation, validation, update, rollback, distribution, and removal.</t>
        </li>
        <li>
          <t>Interoperability: Policy representations <bcp14>SHOULD</bcp14> be portable and interpretable across different administrative areas.</t>
        </li>
        <li>
          <t>Verifiability: The framework <bcp14>SHOULD</bcp14> provide mechanisms to verify policy integrity and provenance.</t>
        </li>
      </ul>
    </section>
    <section anchor="policy-as-code-and-declarative-policy-languages">
      <name>Policy-as-Code and Declarative Policy Languages</name>
      <t>Declarative Policy-as-Code (PaC) languages, such as Rego <xref target="Rego"/>, Cedar <xref target="Cedar"/>, or ALFA <xref target="ALFA"/>, are widely used to express authorization logic in distributed systems. Although these languages differ in syntax, evaluation models, and execution environments, they share common lifecycle and governance requirements when used in distributed and multi-domain environments.</t>
      <t>This framework treats PaC content as opaque executable logic embedded within a YANG-defined policy artifact. The YANG representation does not interpret, validate, or constrain the internal semantics of the policy language. Instead, it provides a structured and interoperable container for lifecycle governance, version control, provenance binding, and distribution. The policy language itself is modeled using YANG identities and identity references. This approach follows extensibility patterns, allowing implementations to introduce additional Policy-as-Code languages without modifying the base model.</t>
      <t>By separating policy handling from policy semantics, including evaluation logic and decision outcomes, this framework enables interoperability without constraining innovation in policy languages or enforcement technologies.</t>
      <t>Example in Rego syntax:</t>
      <artwork><![CDATA[
package example
# Allow read access if the user has the "read" role
default allow = false
allow {
    input.user.role == "read"
}
]]></artwork>
      <t>The policy logic above is treated as opaque content by the YANG representation. Its evaluation behavior is determined exclusively by the target execution environment, while lifecycle and governance properties such as version and ownership are managed independently.</t>
    </section>
    <section anchor="policy-representation-in-yang">
      <name>Policy representation in YANG</name>
      <t>YANG provides a structured and schema-driven mechanism for representing authorization policies as managed and governed artifacts. In this framework, YANG serves as the canonical container format for policy definitions, encapsulating:</t>
      <ul spacing="normal">
        <li>
          <t>Policy metadata, including owner, area, and description.</t>
        </li>
        <li>
          <t>The declarative language used to express the policy logic.</t>
        </li>
        <li>
          <t>The embedded Policy-as-Code (PaC) content, treated as opaque data.</t>
        </li>
        <li>
          <t>Optional leaf for validation and provenance.</t>
        </li>
      </ul>
      <t>In addition, each policy instance <bcp14>MUST</bcp14> include an explicit owner attribute that identifies the authority responsible for the policy definition, ensuring accountability within and across domains. By associating a policy with a clearly identified authority, the framework enables governance controls and allows systems to determine whether the policy source is authorized within a given scope. The owner attribute <bcp14>MUST</bcp14> be expressed as a URI that uniquely identifies the authoritative entity responsible for the policy.</t>
      <t>The policy language is represented using YANG identities and identity references rather than fixed enumerations. This design follows common extensibility practices in YANG models, enabling future Policy-as-Code languages to be introduced dynamically without requiring modifications to the base schema.</t>
      <t>The specific URI structure is determined by the administrative environment. Ownership metadata <bcp14>MAY</bcp14> be cryptographically linked to the policy provenance, enabling verification against the provenance signature key. This mechanism ensures that the policy origin and integrity can be independently verified and trusted.</t>
      <t>The YANG model below illustrates a simplified structure for representing authorization policies as managed artifacts:</t>
      <artwork><![CDATA[
module authz-policy {
  namespace "urn:ietf:params:xml:ns:yang:authz-policy";
  prefix pac;

  import ietf-yang-provenance {
    prefix iyangprov;
  }

  organization
    "IETF NMOP Working Group";

  contact
    "WG Web:   <https://datatracker.ietf.org/wg/nmop/>

     WG List:  <mailto:nmop@ietf.org>

     Authors:
       Lucía Cabanillas
       <mailto:lucia.cabanillasrodriguez@telefonica.com>

       Diego López
       <mailto:diego.r.lopez@telefonica.com>

       Ana Méndez Pérez
       <mailto:ana.mendezperez@telefonica.com>";

  description
    "Illustrative YANG model for representing distributed authorization policies as managed artifacts.";

  revision 2026-05-27 {
    description
      "Third revision.";
    reference
      "RFC XXXX: Model for distributed
       authorization policy sharing";
  }

  /*
   * Identities
   */

  identity policy-language {
    description
      "Abstract base identity for Policy-as-Code languages.";
  }

  identity rego {
    base policy-language;
    description
      "Rego policy language.";
  }

  identity cedar {
    base policy-language;
    description
      "Cedar policy language.";
  }

  identity alfa {
    base policy-language;
    description
      "ALFA authorization language.";
  }

  /*
   * Typedefs
   */

  typedef policy-language-ref {
    type identityref {
      base policy-language;
    }
    description
      "Reference to a Policy-as-Code language identity.";
  }

  /*
   * Policy model
   */

  container policy {
    description
      "Container representing an authorization policy artifact.";

    leaf area {
      type string;
      mandatory true;
      description
        "Administrative or operational area to which the policy belongs.";
    }

    leaf description {
      type string;
      description
        "Optional human-readable description of the policy.";
    }

    leaf language {
      type policy-language-ref;
      mandatory true;
      description
        "Specifies the Policy-as-Code language used to express the policy.";
    }

    leaf pac {
      type string;
      mandatory true;
      description
        "Opaque Policy-as-Code content.

         Example:

           package example

           default allow = false

           allow if{
             input.user.role == \"read\"
           }";
    }

    leaf owner {
      type uri;
      mandatory true;
      description
        "URI identifying the authoritative entity responsible for this policy.";
    }

    leaf policy-provenance {
      type iyangprov:provenance-signature;
      description
        "Cryptographic provenance signature associated with the policy.";
    }
  }
}
]]></artwork>
      <t>This YANG snippet demonstrates how policy content can be represented as structured data while keeping the logic in a declarative format. By explicitly indicating the language, management systems can validate and process policies appropriately, enabling interoperability between tools and engines.</t>
      <section anchor="example-json-encoding">
        <name>Example JSON Encoding</name>
        <t>The following example illustrates how a policy instance can be represented using JSON encoding for the YANG model:</t>
        <sourcecode type="json"><![CDATA[
{
  "authz-policy:policy": {
    "area": "finance",
    "description": "Policy example: Allow read access for 'reader' role and write access for 'admin'",
    "language": "authz-policy:rego",
    "pac": "package policy\n\ndefault allow = false\n\nallow if{\n    input.user.role == \"reader\"\n}\n\nallow_write if{\n    input.user.role == \"admin\"\n}",
    "owner": "urn:example:user:lucia"
  }
}
]]></sourcecode>
        <t>In this example, the <tt>language</tt> leaf references the <tt>rego</tt> identity defined in the YANG module through an <tt>identityref</tt>. Additional Policy-as-Code languages may be introduced by defining new identities derived from the <tt>policy-language</tt> base identity.</t>
      </section>
    </section>
    <section anchor="architecture-overview">
      <name>Architecture Overview</name>
      <t>Policy management in distributed environments relies on a set of functional components that cooperate to define, govern, distribute, evaluate, and enforce authorization policies across administrative areas <xref target="RFC2904"/>. This framework adopts that functional separation while introducing structured policy representation and lifecycle governance based on YANG.</t>
      <section anchor="functional-roles">
        <name>Functional Roles</name>
        <t>Policy Author: The entity (human or automated system/agent) responsible for creating the policy definition. The author produces a YANG-encoded policy document that includes metadata (description, area, language, owner) and the actual declarative rule.</t>
        <t>Policy Administration Point (PAP): The Policy Administration Point manages the lifecycle and governance of policy artifacts. Upon receiving a YANG-encoded policy, it performs schema validation and, where applicable, verifies provenance using cryptographic mechanisms such as those described in <xref target="I-D.ietf-opsawg-yang-provenance"/>.</t>
        <t>The PAP <bcp14>MAY</bcp14> maintain historical policy revisions through external version-control systems in order to support rollback, auditing, and policy recovery operations.</t>
        <t>Before accepting or distributing a policy artifact, the Policy Administration Point (PAP) <bcp14>MAY</bcp14> perform an authorization verification step. In this step, the PAP queries a Policy Decision Point to determine whether the declared owner or submitting entity is authorized to define or modify policies within the relevant area.</t>
        <t>All lifecycle events, including creation, update, activation, rollback, and decommissioning, <bcp14>MAY</bcp14> be recorded in an append-only accounting ledger to ensure traceability and auditability.</t>
        <t>Once validated and authorized, the PAP distributes the executable policy artifact to the appropriate decision components.</t>
        <t>Policy Decision Point (PDP): The Policy Decision Point evaluates policy logic at runtime. It receives validated policy artifacts and processes authorization requests based on contextual attributes, claims, or environmental information. The PDP produces authorization decisions such as Permit or Deny, optionally including obligations or advice.</t>
        <t>Policy Enforcement Point (PEP): The PEP enforces the decisions issued by the PDP. Enforcement may include granting or denying access, applying configurations, or triggering operational actions.</t>
      </section>
      <section anchor="functional-interaction">
        <name>Functional Interaction</name>
        <t>The interaction among the architectural components reflects a strict separation between policy governance and runtime decision-making. Policy artifacts are first validated, governed, and recorded as managed entities before being distributed for evaluation.</t>
        <t>The following diagram illustrates the logical interaction flow:</t>
        <artwork><![CDATA[
                     Policy Author
                           |
                           |  YANG-encoded policy artifact
                           v
        +-----------------------------------+     +-------------------------+
        | Policy Administration Point (PAP) |---->|    Accounting Ledger    |
        |-----------------------------------|     |-------------------------|
        | - Schema validation               |     | - create / update       |
        | - Provenance verification         |     | - rollback / remove     |
        | - Version enforcement             |     +-------------------------+
        | - Lifecycle state management      |
        |-----------------------------------|
        |  Governance Authorization Check   |
        |  (PAP -> PDP query)               |
        +------------------+----------------+
                           |
                           |  Authorized policy
                           v
              +-----------------------------------+
              | Policy Decision Point (PDP)       |
              |-----------------------------------|
              | - Runtime policy evaluation       |
              +------------------+----------------+
                                 ^
                                 | Authorization request
                                 |
                                 v Authorization decision
              +-----------------------------------+
              | Policy Enforcement Point (PEP)    |
              |-----------------------------------|
              | - Enforcement of decisions        |
              +-----------------------------------+

]]></artwork>
      </section>
    </section>
    <section anchor="other-models">
      <name>Other Models</name>
      <t>Existing data models demonstrate that YANG can be effectively used to carry authorization-related information in operational environments.</t>
      <t>The OpenConfig gNSI authorization model <xref target="OCgNSI"/> defines a YANG module that represents metadata associated with gRPC authorization policies installed on network devices. That model focuses on device-level state and observability, including policy metadata, operational status, and evaluation counters.</t>
      <t>This document is complementary to that approach. While the OpenConfig model concentrates on operational visibility for a specific enforcement technology, the framework defined here focuses on the representation, lifecycle management, provenance, and distribution of authorization policy artifacts across systems and administrative areas.</t>
    </section>
    <section anchor="security-considerations">
      <name>Security Considerations</name>
      <t>Ensuring the integrity, authenticity, and provenance of policy data is critical to prevent unauthorized modification. Policies <bcp14>SHOULD</bcp14> include cryptographic protection mechanisms that allow their origin and validity to be verified.</t>
      <t>The mechanisms defined in <xref target="I-D.ietf-opsawg-yang-provenance"/> — Applying COSE Signatures for YANG Data Provenance — provide a suitable foundation for these protections. That document specifies how COSE signatures <xref target="RFC9052"/> are used to include digital signatures within the YANG data, enabling, in this case, verifiable provenance and ensuring the integrity of the YANG-based distributed authorization policy sharing model proposed in this draft.</t>
      <t>When such provenance mechanisms are applied to policy definitions, each policy instance can include a verifiable signature providing proof of origin and integrity of the provided policy. By treating policies as signed and governed artifacts, this framework reduces the risk associated with automated and cross-domain policy exchange, including the additional risks in multi-domain deployments such as determining whether a policy has been modified in transit and whether the policy issuer is authorized to define policies applicable to the receiving area.</t>
    </section>
    <section anchor="iana-considerations">
      <name>IANA Considerations</name>
      <t>This document has no IANA actions.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2904">
          <front>
            <title>AAA Authorization Framework</title>
            <author fullname="J. Vollbrecht" initials="J." surname="Vollbrecht"/>
            <author fullname="P. Calhoun" initials="P." surname="Calhoun"/>
            <author fullname="S. Farrell" initials="S." surname="Farrell"/>
            <author fullname="L. Gommans" initials="L." surname="Gommans"/>
            <author fullname="G. Gross" initials="G." surname="Gross"/>
            <author fullname="B. de Bruijn" initials="B." surname="de Bruijn"/>
            <author fullname="C. de Laat" initials="C." surname="de Laat"/>
            <author fullname="M. Holdrege" initials="M." surname="Holdrege"/>
            <author fullname="D. Spence" initials="D." surname="Spence"/>
            <date month="August" year="2000"/>
            <abstract>
              <t>This memo serves as the base requirements for Authorization of Internet Resources and Services (AIRS). It presents an architectural framework for understanding the authorization of Internet resources and services and derives requirements for authorization protocols. This memo provides information for the Internet community.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="2904"/>
          <seriesInfo name="DOI" value="10.17487/RFC2904"/>
        </reference>
        <reference anchor="RFC9052">
          <front>
            <title>CBOR Object Signing and Encryption (COSE): Structures and Process</title>
            <author fullname="J. Schaad" initials="J." surname="Schaad"/>
            <date month="August" year="2022"/>
            <abstract>
              <t>Concise Binary Object Representation (CBOR) is a data format designed for small code size and small message size. There is a need to be able to define basic security services for this data format. This document defines the CBOR Object Signing and Encryption (COSE) protocol. This specification describes how to create and process signatures, message authentication codes, and encryption using CBOR for serialization. This specification additionally describes how to represent cryptographic keys using CBOR.</t>
              <t>This document, along with RFC 9053, obsoletes RFC 8152.</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="96"/>
          <seriesInfo name="RFC" value="9052"/>
          <seriesInfo name="DOI" value="10.17487/RFC9052"/>
        </reference>
        <reference anchor="I-D.ietf-opsawg-yang-provenance">
          <front>
            <title>Applying COSE Signatures for YANG Data Provenance</title>
            <author fullname="Diego Lopez" initials="D." surname="Lopez">
              <organization>Telefonica</organization>
            </author>
            <author fullname="Antonio Pastor" initials="A." surname="Pastor">
              <organization>Telefonica</organization>
            </author>
            <author fullname="Alex Huang Feng" initials="A. H." surname="Feng">
              <organization>INSA-Lyon</organization>
            </author>
            <author fullname="Ana Méndez Pérez" initials="A. M." surname="Pérez">
              <organization>Telefonica</organization>
            </author>
            <author fullname="Henk Birkholz" initials="H." surname="Birkholz">
              <organization>Fraunhofer SIT</organization>
            </author>
            <date day="29" month="May" year="2026"/>
            <abstract>
              <t>   This document defines a mechanism based on CBOR Object Signing and
   Encryption (COSE) signatures to provide and verify the provenance of
   YANG data, so it is possible to verify the origin and integrity of a
   dataset, even when those data are going to be processed and/or
   applied in workflows where a crypto-enabled data transport directly
   from the original data source is not available.  As the application
   of evidence-based OAM automation and the use of tools such as AI/ML
   grow, provenance validation becomes more relevant in all scenarios,
   in support of the assuring the origin and integrity of data.  The use
   of compact signatures facilitates the inclusion of provenance strings
   in any YANG schema requiring them.

              </t>
            </abstract>
          </front>
          <seriesInfo name="Internet-Draft" value="draft-ietf-opsawg-yang-provenance-05"/>
        </reference>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification. These words are often capitalized. This document defines these words as they should be interpreted in IETF documents. This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol specifications. This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="Rego" target="https://www.openpolicyagent.org/docs/latest/policy-language/">
          <front>
            <title>A Policy Language for Open Policy Agent</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="Cedar" target="https://docs.cedarpolicy.com/">
          <front>
            <title>Cedar Policy Language</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="ALFA" target="https://alfa.guide/alfa-authorization-language/">
          <front>
            <title>ALFA (Abbreviated Language For Authorization)</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
        <reference anchor="OCgNSI" target="https://www.netconfcentral.org/modules/openconfig-gnsi-authz/2024-02-13/source/raw/">
          <front>
            <title>OpenConfig gNSI Authorization Model</title>
            <author>
              <organization/>
            </author>
            <date>n.d.</date>
          </front>
        </reference>
      </references>
    </references>
    <?line 400?>

<section numbered="false" anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t>This document is based on work partially funded by the iTrust6G project (Grant agreement N 101097083) and the ROBUST-6G project (Grant agreement N 101139068).</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
AAA=

-->

</rfc>
