aws cli authenticator via adfs-通过adfs进行身份验证并承担所选角色的小型命令行工具

aws-adfs的Python项目详细描述


AWS ADF

pypi versiontravis build

该项目提供了命令行工具-aws adfs以简化针对adfs的aws cli身份验证(使用active directory进行多因素身份验证)和

aws adfs命令行工具

感谢brandond的贡献-"删除凭据存储,以便存储adfs会话cookies" AWS ADF:

< Buff行情>

允许您重新登录到sts而不必 输入长时间的凭据,而不必存储用户的实际凭据。 它还允许组织控制用户无需输入凭据即可重新登录sts的时间段, 通过更改ADFS会话生存期。

感谢brandond的贡献-"在凭据文件中添加对传统aws安全令牌密钥的支持" aws adfs通过提供两个带有安全令牌的密钥来支持ansible:

感谢brandond的贡献-"通过请求协商在windows上添加对kerberos sso的支持"

兼容性

从0.2.0版起,除非在命令行或环境中指定了备用配置文件名,否则此工具将作用于"默认"配置文件。默认情况下,以前的版本对"adfs"配置文件起作用。

MFA集成

aws adfs集成了:

安装

  • 用户本地安装

    pip install aws-adfs
    

    请注意,您需要将$home/.local/bin添加到您的路径中

  • 全系统安装

    sudo pip install aws-adfs
    
  • 虚拟现实

    virtualenv -p /usr/bin/python2.7 aws-adfs
    source aws-adfs/bin/activate
    pip install aws-adfs
    ...
    ...
    deactivate
    

用法示例

AWS ADF

  • 在aws cli profile:adfs上使用禁用的ssl验证登录到您的adfs主机

    aws-adfs login --adfs-host=your-adfs-hostname --no-ssl-verification
    

    以及验证

    aws --profile=adfs s3 ls
    
  • 在指定的aws cli profile:specified profile上使用禁用的ssl验证登录到您的adfs主机

    aws-adfs login --profile=specified-profile --adfs-host=your-adfs-hostname --no-ssl-verification
    

    以及验证

    aws --profile=specified-profile s3 ls
    
  • 在ansible playbook中登录到您的adfs主机

    ---
    - name: "Auth sts aws"
      command: "aws-adfs login --adfs-host sts.example.com --env --stdout --role-arn arn:aws:iam::000123456789:role/ADMIN"
      register: sts_result
      environment:
        - username: "{{ ansible_user }}@example.com"
        - password: "{{ ansible_ssh_pass }}"
    
    - name: "Set sts facts"
      set_fact:
        sts: "{{ sts_result.stdout | from_json }}"
    
    - name: "List s3 Buckets"
      aws_s3_bucket_facts:
        aws_access_key: "{{ sts.AccessKeyId }}"
        aws_secret_key: "{{ sts.SecretAccessKey }}"
        security_token: "{{ sts.SessionToken }}"
        region: "us-east-1"
      register: buckets
    
    - name: "Print Buckets"
      debug:
        var: buckets
    
  • 通过文件传递用户名和密码凭据登录到您的adfs主机

    aws-adfs login --adfs-host=your-adfs-hostname --authfile=/path/and/file/name
    

    身份验证文件的格式应为

    pip install aws-adfs
    
    0
  • 救命,救命,救命?

    pip install aws-adfs
    
    1
    pip install aws-adfs
    
    2
    pip install aws-adfs
    
    3
    pip install aws-adfs
    
    4

已知问题

  • Duo安全性

    • 错误:无法开始身份验证过程。错误响应:{"消息":"未知身份验证方法。","stat":"失败"}

      请在"Duo-serSecurity设置"(设置"->;""我的设置和设备")中设置首选的身份验证方法。

  • 如果lxml有问题,请安装

    pip install aws-adfs
    
    5
  • 如果osx sierra(过时的openssl)出现问题,请升级openssl。例子:

    pip install aws-adfs
    
    6

    并将显式指令添加到.bash_profile:

    pip install aws-adfs
    
    7
  • 不支持Python 2.6

  • <李>

    不支持Python 3.2

  • 不支持Python 3.3

学分

  • brandond用于:删除凭据的存储,以便存储adfs会话cookies
  • brandondfor:在凭据文件中添加对传统aws安全令牌密钥的支持
  • brandond用于:在配置文件配置中存储最后一个用户名;将其用作提示的默认值
  • brandond对于:python 3兼容性
  • brandondfor:通过请求在Windows上添加对kerberos SSO的支持\u协商SSPI
  • brandondfor:ssl_验证必须是str
  • brandond用于:将pytest runner移出安装程序需要
  • brandond用于:改进对角色选择的处理
  • brandondfor:改进对过度cookie增长引起的错误的处理
  • brandond对于:默认为"默认"配置文件,与其他AWS工具一致
  • kwhitlock用于:添加了额外选项"--提供程序ID"
  • sydopsfor:在list命令的输出中添加附加信息
  • eric nordfor:duo-security的主题
  • roblugton用于:修复readme.md中的格式
  • clivfor:指出缺少Duo安全首选设备的问题并提供解决方法
  • andrewfarleyfor:解析duo主机和签名时的错误,向后兼容
  • eikenbfor:0.3.4版不返回任何角色-感谢您对eikenb的警惕已识别损坏的鸡蛋
  • eikenbfor:添加登录参数以接受来自stdin的用户名/密码
  • irgeek用于:添加Symantec VIP访问支持
  • brandondfor:fix negotiate auth on non-domain joined windows hosts
  • giafarfor:role arn as parameter
  • zanettibofor:添加对ansible tower/awx工作流身份验证的支持
  • anthoneouskylejameswalkerfor:add session duration flag
  • kylejameswalker用于:允许电话身份验证
  • 对于:将默认配置文件更改为默认配置文件
  • kwhitlock用于:功能/从文件读取用户名和密码
  • avoidikfor:Symantec VIP模糊表单的解决方法
  • leonardo testfor fix:未调用--env标志,因此使用env参数将不起作用。
  • notmrstevefor:add rsa securid mfa
  • jlambethfor:添加了通过sspi禁用kerberos sso身份验证的标志
  • bghinklefor:fix duo api change-follow result\u url并从result返回cookie
  • jan molakfor:已更正xpath表达式以使用最新版本的aws…
  • notmrstevefor:save duo session cookies
  • pdecat对于:如果env、stdin或auth文件未同时提供用户名和密码,则在提示时返回
  • 0x91用于:对azure mfa服务器的支持
  • pdecatfor:fix duo authentication initiation failure messages
  • tommywofor:save provider\u id config
  • budzejkofor:添加对ADFS CA捆绑包选项的支持
  • rinrinne对于:尊重AWS默认配置文件(如果已定义)
  • mjernsellfor:添加对azuremfaa身份验证的支持
  • kfattig用于:像处理其他配置选项一样处理SSPI

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java ProcessBuilder在使用多个参数时运行不正常   java如何使用Spring数据ORM/JPA创建EntityManagerFactory?   将Velocity宏转换为Java指令   internet上的Java TCP/IP服务器客户端通信   java为什么JDK 8允许一个局部内部类(在方法内部)访问封闭方法的非最终局部变量?   基于Java的比率算法   java应用程序在选择列表首选项时出错   java保存对象以供以后使用   java如何使用MySQL JDBC驱动程序连接Android和MySQL   java Zipkin可以用于控制台应用程序   java单击刷新Servlet页面显示重复内容   java如何递归地反转字符串数组?   java如何使用inputStream作为outputStream的文本?   java扩展令牌选择操作符   java在映射中使用通用枚举类   arraylist如何使用JAVA流从对象列表中查找平均值   windows将FileInputStream和FileOutputStream传递给ffmpeg进行转码(使用JAVEJava音频视频编码)   java Ant脚本在执行CVS签出后找不到目标   重复值情况下的java插入排序,双链表ADT   java如何在Accumulo中获取数据库查询计数