aws cli authenticator via adfs-通过adfs进行身份验证并承担所选角色的小型命令行工具
aws-adfs的Python项目详细描述
AWS ADF
该项目提供了命令行工具-aws adfs
以简化针对adfs的aws cli身份验证(使用active directory进行多因素身份验证)和
aws adfs
命令行工具
感谢brandond的贡献-"删除凭据存储,以便存储adfs会话cookies" AWS ADF:
< Buff行情>允许您重新登录到sts而不必 输入长时间的凭据,而不必存储用户的实际凭据。 它还允许组织控制用户无需输入凭据即可重新登录sts的时间段, 通过更改ADFS会话生存期。
感谢brandond的贡献-"在凭据文件中添加对传统aws安全令牌密钥的支持" aws adfs通过提供两个带有安全令牌的密钥来支持ansible:
- aws_session_令牌和
- AWS安全令牌
感谢brandond的贡献-"通过请求协商在windows上添加对kerberos sso的支持"
- 在Windows操作系统上将使用安全支持提供程序接口
兼容性
从0.2.0版起,除非在命令行或环境中指定了备用配置文件名,否则此工具将作用于"默认"配置文件。默认情况下,以前的版本对"adfs"配置文件起作用。
MFA集成
aws adfs集成了:
- Duo安全性MFA提供商
- 赛门铁克VIPMFA提供商
- RSA SecurIDMFA提供程序
安装
用户本地安装
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
身份验证文件的格式应为
0pip install aws-adfs
救命,救命,救命?
1pip install aws-adfs
2pip install aws-adfs
3pip install aws-adfs
4pip install aws-adfs
已知问题
Duo安全性
错误:无法开始身份验证过程。错误响应:{"消息":"未知身份验证方法。","stat":"失败"}
请在"Duo-serSecurity设置"(设置"->;""我的设置和设备")中设置首选的身份验证方法。
如果lxml有问题,请安装
5pip install aws-adfs
如果osx sierra(过时的openssl)出现问题,请升级openssl。例子:
6pip install aws-adfs
并将显式指令添加到.bash_profile:
7pip install aws-adfs
不支持Python 2.6
<李>不支持Python 3.3
不支持Python 3.2
学分
- 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工作流身份验证的支持
- anthoneous和kylejameswalkerfor: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