【问题标题】:Authenticating FreeRadius request with Atlassian Crowd使用 Atlassian Crowd 对 FreeRadius 请求进行身份验证
【发布时间】:2018-01-04 09:20:14
【问题描述】:

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

【问题讨论】:

    标签: freeradius atlassian-crowd


    【解决方案1】:

    通过一些实验,我使用python-crowd 创建了一个插件。您需要向我称为CROWDauthorize 文件添加一个新的Auth-Type,并将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 )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-21
      • 2017-10-14
      • 1970-01-01
      • 1970-01-01
      • 2013-11-22
      相关资源
      最近更新 更多