"policy":[]

Dieser Abschnitt ist optional. Es ermöglicht das bedingte Hinzufügen von Attributen zum „Access-Accept“-Antwortpaket, das vom RADIUS-Server „ IBM “ an RADIUS-Clients (NAS) gesendet wird. Außerdem ermöglicht es die bedingte sofortige Annahme oder Ablehnung einer Autorisierungsanfrage für einen Zugriffsantrag. Die Richtlinien werden in der Reihenfolge ausgewertet, in der sie definiert sind.

Format

“policy”:[
  {
    “name”:”policy1”,
    “match”:{
      “client-ip”:”???”,
      “attr”:{
        “compare”:”??”,
        “name”:”???”,
         …
      },
      “user-group”:{
        “compare”:”??”,
        “name”: “???”
      },
      “apply-before-authenticate”:????
    },
    “return-attrs”:[
      {
        “name”:”???”,
        “value”:”???”,
        …
      },
      …
    ],
    “action”:”???”,
  },
  {
    “name”:”policy2”,
    …
  },
  …
]

Werte

"match":{}
Dieser Unterabschnitt ist optional; ist er nicht vorhanden, entspricht die Richtlinie allen Access-Request-Paketen.

Unter diesem Abschnitt befinden sich die folgenden Untereinträge:

"client-ip":"192.168.0.129"
Entspricht der Adresse des RADIUS-Clients (NAS), von dem das Paket gesendet wurde.
"apply-before-authenticate":"false"
Veraltet. Standardmäßig wird "false" angenommen. Falls der Wert "true" lautet, wird die Richtlinie abgeglichen und die Richtlinie angewendet, bevor das Benutzerkennwort oder das Kennwort für einmaliges Anmelden (OTP) validiert wird. Dies entspricht „apply“: „before_mfa“.
"apply": "before-mfa" | "after-mfa-success" | "after-pwd-success" | "before-each-response"
Diese Option wird der veralteten "apply-before-authenticate" Konfigurationsoption vorgezogen.
"before-mfa"
Die Richtlinie gleicht dies ab, bevor sie die Angaben unter 1FA (Passwort) oder 2FA überprüft.
"after-mfa-success"
Die Richtlinie wird entsprechend angepasst, nachdem 2FA erfolgreich validiert wurde.
"after-pwd-success"
Die Richtlinie wird nach erfolgreicher Überprüfung des Passworts ( 1FA ) und vor der Überprüfung des Benutzernamens ( 2FA ) angewendet.
"before-each-response"
Die Richtlinie gleicht dies ab, bevor jede Antwort gesendet wird.
Beispiele für die Verwendung von "apply" in Richtlinien könnten sein:
  1. So umgehen Sie die Einstellung „ 2FA “ für alle Benutzer in einer Gruppe namens „risky“:
     {
                "name": "risk_policy",
                "match": {
                    "apply": "after-pwd-success",
                    "user-group": { "compare": "=", "name": "risky" }
                },
                "return-attrs":[
                    {
                        "name": "Reply-Message",
                        "value": "Success: Bypassed 2FA"
                    }
                ],
                "action": "accept"
            }, 
  2. Um einen RADIUS-Proxy zwischen dem Client/NAS und dem RADIUS-Server zu unterstützen, wobei das an den RADIUS-Server gesendete „Proxy-State“-Attribut an den RADIUS-Proxy zurückgesendet werden muss:
     {
                "name":"proxy_policy",
                "match":{
                    "apply": "before-each-response"
                },
                "return-attrs":[
                    {
                        "name":"Proxy-State",
                        "value":"{{reflect}}",
                        "value-type":"text"
                    }
                ],
                "action":"continue"
            } 
"attr":{}

Mithilfe dieses Abschnitts kann in der Zugriffsanforderung (Access-Request) ein einzelner Attributwert abgeglichen werden. Unter diesem Abschnitt befinden sich die folgenden Untereinträge:

"compare":"="
"!="Standardwert ist „=“. Dieser Eintrag muss entweder "=" oder sein.
"case-ignore":false
Standardmäßig wird "false" angenommen. Werte werden anhand eines Vergleichs auf Bytebasis mit dem RADIUS-Attributwert verglichen. Eine Ausnahme ist die Angabe von "true" für "case-ignore". In diesem Fall erfolgt ein Vergleich auf der Basis der UTF-8-Zeichenfolge unabhängig von der Groß-/Kleinschreibung; diese Art von Vergleich kann beim Vergleich des Attributwerts "User-Name" hilfreich sein.
"regex":false
Standardmäßig ist false. Wenn diese true Option aktiviert ist, wird der „Wert“ als erweiterter regulärer Ausdruck interpretiert, wenn er mit dem Attributwert übereinstimmt. Beispiel:
"value": ".*ibm\\.com"
entspricht jedem Wert, der mit ibm.com endet, wie z. B. testibm.com. Eine Definition erweiterter regulärer Ausdrücke finden Sie unter https://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap09.html,
"name":"User-Name"

Das Attribut in der Zugriffsanforderung (Access-Request), mit dem der Vergleich erfolgen soll. Diese Wert kann entweder eine Zeichenfolge sein, wie beispielsweise ein Name für das RADIUS-Attribut, oder die Attributnummer. Beispielsweise hat „User-Name“ die Nummer 1. Eine Liste der RADIUS-Attribute finden Sie in der Ausgabe des IbmRadius.exe -attributes Befehls.

"value":"Administrator"
Der Attributwert, mit dem der Vergleich erfolgen soll. Die folgende Tabelle für "value-type" zeigt das JSON-Format des Werts. Der Standardwerttyp des Attributs ist von dem Attribut selbst abhängig. Die Ausgabe des Befehls
"IbmRadius.exe
      -attributes"
zeigt den Werttyp (value-type) jedes RADIUS-Attributs.
"value-type":"text"
Überschreibt die Art und Weise, wie das “value” in einen RADIUS-Attributwert umgewandelt wird. Der Standardwert ist von dem RADIUS-Attribut abhängig; jedes RADIUS-Attribut hat seinen eigenen Standardwerttyp. Sehen Sie sich die Ausgabe des IbmRadius.exe -attributes Befehls an, um den Werttyp jedes RADIUS-Attributs zu ermitteln. Mit diesem Parameter kann der Typ überschrieben werden, um die Eingabe zu vereinfachen. Beispielsweise kann eine Textzeichenfolge in ein Binärzeichenfolgeattribut gestellt werden.
Tabelle 1. Wertzuordnung
Ihren Namen JSON-Wertformat RADIUS-Wert
integer
  • Zahl: zum Beispiel 1234.
  • Zeichenkette: Hexadezimalzahl, zum Beispiel "0xa2b3ff".
4 Byte, MSB an erster Stelle
enum
  • Zeichenfolge: für das Attribut zutreffende enum-Namenszeichenfolge. Zum Beispiel für das Attribut „Service-Type“. "Login" Die Ausgabe des Befehls IbmRadius.exe -attributes enthält eine Liste zulässiger enum-Wertzeichenfolgen.
  • 5Zahl: zum Beispiel.
4 Byte, MSB an erster Stelle
Zeit
  • Zahl: Anzahl Sekunden ab 1970-01-01 00:00:00 UTC
  • Zeichenfolge: "JJJJMMTTHHMMSS" UTC
4 Byte, MSB an erster Stelle
text
  • Zeichenfolge: UTF-8-Zeichen
UTF-8-Byte ohne Beendigung durch 0x00
integer64
  • Zahl: beispielsweise 12345
  • Zeichenkette: beispielsweise eine Hexadezimalzahl."0xdeadbeaf"
8 Byte, MSB an erster Stelle
ipv4addr
  • Zeichenkette: beispielsweise eine im Format „ IPv4 “ formatierte Zeichenkette. ,"192.168.0.1"
4 Byte, Netzreihenfolge, MSB an erster Stelle
ipv6addr
  • Zeichenkette: Beispielsweise eine im Format „ IPv6 “ formatierte Zeichenkette. "192.168.0.fe80::df3c:99dd:8a4a:16f1"
8 Byte, Netzreihenfolge, MSB an erster Stelle

Zeichenfolge

ifid

ipv6prefix

ipv4prefix

tlv

vsa

extended

long_extended

evs

  • Zeichenfolge: Base64-codierte Binärdaten.
Byte.
Hinweis: Das Format variiert je nach Typ; siehe die RADIUS-RFCs.
"user-group":{}
Mithilfe dieses Abschnitts kann eine einzelne Gruppe mit der Liste der Gruppen, zu denen ein Benutzer gehört, abgeglichen werden. Dieser Parameter kann nur verwendet, wenn "apply-before-authenticate" == false angegeben ist. Unter diesem Abschnitt befinden sich die folgenden Untereinträge:
compare":"="

Standardmäßig ist "=". Dieser Eintrag muss entweder "=" oder "!=" lauten.

"name":"{{group-name}}"
Die Gruppe mit dem Namen "{{group-name}}" wird mit den Gruppenmitgliedschaften des Benutzers abgeglichen.
"return-attrs":[]
Ist dies nicht vorhanden, werden dem zurückgegebenen RADIUS-Paket keine Attribute hinzugefügt. Die zurückgegebenen Attribute ("return-attrs") werden nur hinzugefügt, wenn der Wert für die Richtlinienübereinstimmung "true" lautet.
Jedes Element des Arrays "return-attrs" ist formatiert:
{
  "name":"xxxx",
  "value":"xxxx",
  "value-type":"xxxx"
},
Die Beschreibungen von „name“, „value“ und „value-type“ sind im vorangegangenen Abschnitt „match“:{} > „attr“:{} definiert. Eine Ausnahme ist das Element "value", das eines der folgenden Attribute sein kann.
  • "{{group-name}}" : Fügen Sie das Attribut mehrmals ein, jeweils einmal für jede Gruppe, der der Benutzer angehört.
  • "{{group-list}}" : Geben Sie das Attribut einmal an, gefolgt von allen Gruppen, denen der Benutzer angehört, getrennt durch Kommas.
In beiden Ausnahmefällen wird das "value-type" gezwungen, „Text“ anzuzeigen.
Ein „Wert“ von "{{group-name:vsa:<vendorid>:<vendortype>}}" kann verwendet werden, um jede Gruppe als lieferantenspezifisches Attribut (VSA) hinzuzufügen. Der standardmäßige VSA-Werttyp „binary“ muss überschrieben werden, damit die Formatierungszeichenfolge als Text interpretiert wird. Ersetzen Sie <vendorid> durch die Lieferanten-ID als Dezimalzahl und ersetzen Sie <vendortype> durch den Werttyp des Lieferanten als Dezimalzahl. Beispiel:
     "return-attrs":[
        {
            "name": "Vendor-Specific",
            "value": "{{group-name:vsa:12356:1}}",
            "value-type": "text"
        }
     ],

Ein „Wert“ von "{{reflect}}" kopiert den gleichnamigen Wert aus der Anfrage in die Antwort. In der Regel wird diese Funktion verwendet, um den empfangenen Proxy-State-Wert zurückzugeben. Geben Sie außerdem die "value-type": "text" Einstellung für dieses Attribut an.

"action":"continue"
Standardmäßig ist "continue". Die Aktion ("action") ist nur gültig, wenn der Wert für die Richtlinienübereinstimmung "true" lautet. Der Eintrag "action" kann einen von drei Werten haben:
  • "continue": Fügen Sie beliebige "return-attrs" Elemente hinzu und fahren Sie mit der Bearbeitung fort.
  • "return-attrs" "reject": Füge beliebige Daten hinzu, sende ein RADIUS-Access-Reject-Paket zurück und beende die Verarbeitung dieser RADIUS-Client-Anfrage (NAS).
  • "return-attrs" "accept": Füge beliebige Daten hinzu, sende ein RADIUS-Access-Accept-Paket zurück und beende die Verarbeitung dieser RADIUS-Client-Anfrage (NAS).