Dell PowerConnect W Clearpass 100 Software 3.9 Deployment Guide - Page 486

GetUserStationCount(), GetSessionTimeRemaining(), ChangeToRole(), session timeout

Page 486 highlights

See "GetCurrentSession()" for details of the return value. GetUserStationCount() GetUserStationCount($from_time = null, $to_time = null, $exclude_mac = null) Count the total number of unique MAC addresses used in a time interval, for all sessions with the same User-Name attribute as that specified in the RADIUS Access-Request. If $exclude_mac is set, any sessions matching that MAC address are excluded from the count. This function can be used to link a MAC address to a user on the first time they log in, and subsequently prevent access by the user if using a device other than the original device used. Examples:  Link the user MAC address on the first time they log in, and prevent all future access unless the calling- station-id is matched. return GetUserStationCount() > 0 && AccessReject()  Fail authorization if the user has used more than 1 different MAC address in the past year. (Note: this does not quite work right as the current session being authorized is not taken into account.) return GetUserStationCount(365*24*60*60) > 1 && AccessReject()  The correct way to do the above. Checks the last year of accounting records and permits a user a maximum of 2 different stations. return GetUserStationCount(365*24*60*60, time(), GetAttr('calling-station-id')) >= 2 && AccessReject() GetSessionTimeRemaining() GetSessionTimeRemaining($username, $format = "relative") Calculates the session time remaining for a given user account, if the user account was to be authenticated at the moment of the call. The $username parameter is required. This is the username for the authentication. The $format parameter is optional, and defaults to "relative" if not otherwise specified. This parameter may be one of the following values:  "relative" or "session_time": Calculates the session timeout as for the Session-Timeout RADIUS attribute, that is, the number of seconds before the session should end. If the session does not have a session timeout, the value returned is 0.  "time": Calculates the session end time, as the UNIX time at which the session should end. If the session does not have an expiration time, the value returned is 0.  Other values: These are interpreted as a date format (see "NwaDateFormat") and the session end time is returned in this format. (Examples: "iso8601", "longdate", "recent", '%Y-%m-%d %H:%M', etc.). If the session does not have an expiration time, the value returned is a blank string. ChangeToRole() ChangeToRole($username, $role_name) Changes the RADIUS role assigned to the user. If the user currently has active sessions, this function will trigger an RFC 3576 Change-of-Authorization (CoA) Request to the network access server. The$username parameter specifies the user account to modify; use the expression GetAttr('User-Name') to use the value from the RADIUS User-Name attribute. The $role_name parameter specifies the name of the RADIUS User Role to apply to the user. 486 | Reference ClearPass Guest 3.9 | Deployment Guide

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135
  • 136
  • 137
  • 138
  • 139
  • 140
  • 141
  • 142
  • 143
  • 144
  • 145
  • 146
  • 147
  • 148
  • 149
  • 150
  • 151
  • 152
  • 153
  • 154
  • 155
  • 156
  • 157
  • 158
  • 159
  • 160
  • 161
  • 162
  • 163
  • 164
  • 165
  • 166
  • 167
  • 168
  • 169
  • 170
  • 171
  • 172
  • 173
  • 174
  • 175
  • 176
  • 177
  • 178
  • 179
  • 180
  • 181
  • 182
  • 183
  • 184
  • 185
  • 186
  • 187
  • 188
  • 189
  • 190
  • 191
  • 192
  • 193
  • 194
  • 195
  • 196
  • 197
  • 198
  • 199
  • 200
  • 201
  • 202
  • 203
  • 204
  • 205
  • 206
  • 207
  • 208
  • 209
  • 210
  • 211
  • 212
  • 213
  • 214
  • 215
  • 216
  • 217
  • 218
  • 219
  • 220
  • 221
  • 222
  • 223
  • 224
  • 225
  • 226
  • 227
  • 228
  • 229
  • 230
  • 231
  • 232
  • 233
  • 234
  • 235
  • 236
  • 237
  • 238
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • 250
  • 251
  • 252
  • 253
  • 254
  • 255
  • 256
  • 257
  • 258
  • 259
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • 271
  • 272
  • 273
  • 274
  • 275
  • 276
  • 277
  • 278
  • 279
  • 280
  • 281
  • 282
  • 283
  • 284
  • 285
  • 286
  • 287
  • 288
  • 289
  • 290
  • 291
  • 292
  • 293
  • 294
  • 295
  • 296
  • 297
  • 298
  • 299
  • 300
  • 301
  • 302
  • 303
  • 304
  • 305
  • 306
  • 307
  • 308
  • 309
  • 310
  • 311
  • 312
  • 313
  • 314
  • 315
  • 316
  • 317
  • 318
  • 319
  • 320
  • 321
  • 322
  • 323
  • 324
  • 325
  • 326
  • 327
  • 328
  • 329
  • 330
  • 331
  • 332
  • 333
  • 334
  • 335
  • 336
  • 337
  • 338
  • 339
  • 340
  • 341
  • 342
  • 343
  • 344
  • 345
  • 346
  • 347
  • 348
  • 349
  • 350
  • 351
  • 352
  • 353
  • 354
  • 355
  • 356
  • 357
  • 358
  • 359
  • 360
  • 361
  • 362
  • 363
  • 364
  • 365
  • 366
  • 367
  • 368
  • 369
  • 370
  • 371
  • 372
  • 373
  • 374
  • 375
  • 376
  • 377
  • 378
  • 379
  • 380
  • 381
  • 382
  • 383
  • 384
  • 385
  • 386
  • 387
  • 388
  • 389
  • 390
  • 391
  • 392
  • 393
  • 394
  • 395
  • 396
  • 397
  • 398
  • 399
  • 400
  • 401
  • 402
  • 403
  • 404
  • 405
  • 406
  • 407
  • 408
  • 409
  • 410
  • 411
  • 412
  • 413
  • 414
  • 415
  • 416
  • 417
  • 418
  • 419
  • 420
  • 421
  • 422
  • 423
  • 424
  • 425
  • 426
  • 427
  • 428
  • 429
  • 430
  • 431
  • 432
  • 433
  • 434
  • 435
  • 436
  • 437
  • 438
  • 439
  • 440
  • 441
  • 442
  • 443
  • 444
  • 445
  • 446
  • 447
  • 448
  • 449
  • 450
  • 451
  • 452
  • 453
  • 454
  • 455
  • 456
  • 457
  • 458
  • 459
  • 460
  • 461
  • 462
  • 463
  • 464
  • 465
  • 466
  • 467
  • 468
  • 469
  • 470
  • 471
  • 472
  • 473
  • 474
  • 475
  • 476
  • 477
  • 478
  • 479
  • 480
  • 481
  • 482
  • 483
  • 484
  • 485
  • 486
  • 487
  • 488
  • 489
  • 490
  • 491
  • 492
  • 493
  • 494
  • 495
  • 496
  • 497
  • 498
  • 499
  • 500
  • 501
  • 502
  • 503
  • 504
  • 505
  • 506
  • 507
  • 508
  • 509
  • 510
  • 511
  • 512
  • 513
  • 514
  • 515
  • 516
  • 517
  • 518

486
|
Reference
ClearPass Guest 3.9
|
Deployment Guide
See
“GetCurrentSession()”
for details of the return value.
GetUserStationCount()
GetUserStationCount($from_time = null, $to_time = null, $exclude_mac = null)
Count the total number of unique MAC addresses used in a time interval, for all sessions with the same
User-Name attribute as that specified in the RADIUS Access-Request.
If
$exclude_mac
is set, any sessions matching that MAC address are excluded from the count.
This function can be used to link a MAC address to a user on the first time they log in, and subsequently
prevent access by the user if using a device other than the original device used.
Examples:
Link the user MAC address on the first time they log in, and prevent all future access unless the calling-
station-id is matched.
return GetUserStationCount() > 0 && AccessReject()
Fail authorization if the user has used more than 1 different MAC address in the past year.
(Note: this
does not quite work right as the current session being authorized is not taken into account.)
return GetUserStationCount(365*24*60*60) > 1 && AccessReject()
The correct way to do the above. Checks the last year of accounting records and permits a user a
maximum of 2 different stations.
return GetUserStationCount(365*24*60*60, time(),
GetAttr('calling-station-id')) >= 2 && AccessReject()
GetSessionTimeRemaining()
GetSessionTimeRemaining($username, $format = "relative")
Calculates the session time remaining for a given user account, if the user account was to be authenticated
at the moment of the call.
The $username parameter is required. This is the username for the authentication.
The $format parameter is optional, and defaults to “relative” if not otherwise specified. This parameter may
be one of the following values:
“relative” or “session_time”: Calculates the session timeout as for the Session-Timeout RADIUS
attribute, that is, the number of seconds before the session should end. If the session does not have a
session timeout, the value returned is 0.
“time”: Calculates the session end time, as the UNIX time at which the session should end. If the session
does not have an expiration time, the value returned is 0.
Other values: These are interpreted as a date format (see “NwaDateFormat”) and the session end time is
returned in this format. (Examples: “iso8601”, “longdate”, “recent”, ‘%Y-%m-%d %H:%M’, etc.). If the
session does not have an expiration time, the value returned is a blank string.
ChangeToRole()
ChangeToRole($username, $role_name)
Changes the RADIUS role assigned to the user. If the user currently has active sessions, this function will
trigger an RFC 3576 Change-of-Authorization (CoA) Request to the network access server.
The$username parameter specifies the user account to modify; use the expression GetAttr('User-Name') to
use the value from the RADIUS User-Name attribute.
The $role_name parameter specifies the name of the RADIUS User Role to apply to the user.