使用Atlassian Crowd验证FreeRadius请求

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

我想使用FreeRADIUS的Atlassian Crowd对用户进行身份验证,我一直无法找到插件或特别好的例子来说明如何做到这一点。特别是在尝试使用rlm_python脚本实现授权和验证部分时,并不是非常清楚。是否有更复杂的示例,其中RESTful后端用于验证而无需知道authorize函数中的密码?

freeradius atlassian-crowd
1个回答
0
投票

通过一些实验,我使用python-crowd创建了一个插件。您需要将新的Auth-Type添加到我调用authorizeCROWD文件中,并添加python作为该文件的身份验证器和授权部分。在mod-configs/python中,请确保设置模块名称并启用授权和验证函数调用。

crowdplugin.py

#! /usr/bin/env python

import radiusd
import crowd

cs = None
app_url = ''
app_user = ''
app_pass = ''

def instantiate(p):
  global cs
  cs = crowd.CrowdServer(app_url, app_user, app_pass)

def authorize(p):
  reply = None
  config = None
  result = radiusd.RLM_MODULE_NOTFOUND

  values = dict(p)
  username = values['User-Name']
  success = cs.get_user(username)
  if success:
     config = ( ( 'Auth-Type', 'crowd' ), )
     result = radiusd.RLM_MODULE_OK
  return ( result, reply, config )

def authenticate(p):
  reply = None
  config = None
  result = radiusd.RLM_MODULE_REJECT

  values = dict(p)
  username = values['User-Name']
  password = values['User-Password']
  success = cs.auth_user(username, password)
  if success:
     reply = ( ( 'Reply-Message', 'Welcome!'), )
     result = radiusd.RLM_MODULE_OK
  return ( result, reply, config )
© www.soinside.com 2019 - 2024. All rights reserved.