将字典值传递到内部隧道(即“Cisco-AVPair”)

问题描述 投票:0回答:1

我目前遇到问题,我试图通过 Cisco-AVPair 传递值来在 Meraki 中实现 UDN 的使用。

这是我在用户文件中当前的用户:

rick    Cleartext-Password := "password1"
        Cisco-AVPair = "udn:private-group-id=500"

morty   Cleartext-Password := "password2"
        Cisco-AVPair = "udn:private-group-id=501"

虽然这一点确实会在 radtest 或使用 RTRadPing 的响应中传回,但该属性不会传递到 Meraki,因为该值不会进入内部隧道。我需要能够确保这个值也在内部隧道中传递。

我知道问题与此值未进入内部隧道有关,因为我可以将此行添加到内部隧道和默认文件的验证后部分,它使其传递静态值和 Meraki收到了。

    update reply {
        Cisco-AVPair := "udn:private-group-id=500"
    }

这样做的问题是它只是将每个用户的 UDN 静态设置为 500。我需要提取分配给该用户的值并将其推送到 Meraki。

我已经在“/etc/freeradius/3.0/sites-enabled/inner-tunnel”文件的后验证部分尝试过这些,但它们似乎都不起作用。

    if (&session-state:Cisco-AVPair) {
        update reply {
            Cisco-AVPair := &session-state:Cisco-AVPair
        }
    }
    if (&request:Cisco-AVPair) {
        update reply {
            Cisco-AVPair := &request:Cisco-AVPair
        }
    }

我还尝试了一些其他建议,例如在“授权”部分下分配临时控制值,然后在授权后部分引用该控制值。我似乎无法弄清楚如何传递与正在授权的用户关联的特定值。

任何指导将不胜感激。

cisco freeradius
1个回答
0
投票

我终于弄清楚了这一点。我不确定这是否是正确的方法,但它确实对我有用。

我必须向默认文件和内部隧道文件的“授权”和“后验证”部分添加一些内容。

文件:

/etc/freeradius/3.0/sites-enabled/default

我在授权部分添加了这个:

    update control {
        &control: += &reply:
    }

我在授权后部分添加了此内容:

    update reply {
        &reply: += &control:
    }

文件:

/etc/freeradius/3.0/sites-enabled/inner-tunnel

我在授权部分添加了这个:

    update control {
        &control: += &reply:
    }

我在授权后部分添加了此内容:

    update outer.session-state {
        &outer.session-state: += &control:
    }

这实际上对我来说效果更好,因为这样我不仅传递 Cisco-AVPair 属性,还传递我在此过程中自动添加的任何其他属性。这样我就不必返回并再次更新这些部分。我只需要更新用户及其属性。

© www.soinside.com 2019 - 2024. All rights reserved.