全部产品
Search
文档中心

云SSO:使用CLI登录云SSO并访问阿里云资源

更新时间:Dec 01, 2023

云SSO已与阿里云CLI进行了集成。用户除了使用浏览器登录云SSO用户门户,也可以通过阿里云CLI登录。登录后,选择对应RD账号和权限,通过CLI命令行访问阿里云资源。本文为您介绍云SSO用户使用阿里云CLI登录云SSO的操作方法。

步骤一:安装CLI

您需要安装阿里云CLI和云SSO CLI,具体如下:

步骤二:配置云SSO登录信息

  1. 执行以下命令,开始配置云SSO登录信息。

    acs-sso configure
  2. 输入用户登录地址signinUrl

    说明

    用户登录地址signinUrl获取方法:请登录云SSO控制台,在概览页面的右侧,获取用户登录URL

    请求示例:

    acs-sso configure
    ? please input 'signinUrl': https://signin-******.alibabacloudsso.com/device/login

    配置成功的返回示例:

    configuration done!

步骤三:云SSO用户登录阿里云

常用命令如下:

  • 默认登录

    1. 执行以下命令,开始登录。

      acs-sso login
    2. 在弹出的浏览器窗口中,根据界面提示,完成云SSO用户登录,登录成功后请关闭浏览器窗口。

      如果浏览器窗口未弹出,您可以根据CLI的提示信息,手动复制登录URL和用户码完成登录。

      提示信息示例:

      If your default browser is not opened automatically, please use the following URL to finish the signin process.
      Signin URL: https://signin-****.alibabacloudsso.com/device/code
      User Code: *********
    3. 如果当前用户被授予了多个RD账号的访问权限,CLI会交互式地提醒您选择要使用的RD账号和访问配置,并最终生成相应的阿里云访问密钥。

      返回示例:

      You have logged in.
      used account: test-account(191585963325****)
      used access configuration: TestAC(ac-x08xz11covd3cyzd****)
      {
        "mode": "StsToken",
        "access_key_id": "STS.****",
        "access_key_secret": "****",
        "sts_token": "****"
      }

    登录成功后,profile会绑定该RD账号和访问配置。下次登录时,将会使用本次缓存的RD账号和访问配置直接登录。

  • 指定云SSO的登录配置名称

    acs-sso login --profile sso

    当您想同时配置多个RD账号和访问配置所对应的SSO登录信息时,可以通过指定登录配置名称来区分。您可以使用--profile指定云SSO的不同登录配置名称。上述命令表示指定使用的登录配置名称是sso。

    不指定--profile时,默认使用的登录配置名称是default。

  • 获取登录配置列表

    acs-sso profile --list
  • 删除指定的登录配置

    执行以下命令,删除默认登录配置。

    acs-sso profile --delete --profile default

    执行以下命令,删除名为sso的登录配置。

    acs-sso profile --delete --profile sso
  • 配置输出模式

    以下两种方式,您可以任选其一进行配置:

    • 外部进程模式(默认):当您与阿里云CLI的外部进程(External)模式配合使用时,您可以使用该输出模式。

      返回示例:

      {
        "mode": "StsToken",
        "access_key_id": "STS.NUyPeEoab****",
        "access_key_secret": "GBubpmh****",
        "sts_token": "CAIS****"
      }
    • 环境变量模式:您可以使用--env 参数配置返回结果为环境变量模式。例如:acs-sso login --profile user1 --env

      返回示例:

      export ALIBABACLOUD_ACCESS_KEY_ID=STS.NUyPeEoab****
      export ALIBABACLOUD_ACCESS_KEY_SECRET=GBubpmh****
      export SECURITY_TOKEN=CAIS****

      环境变量可以与阿里云的相关工具(例如:Terraform等)配合使用。例如:`acs-sso login --profile user1 --env` && terraform plan

      环境变量也可以与阿里云CLI配合使用。例如:`acs-sso login --profile user1 --env` && aliyun ecs DescribeRegions

步骤四:配合阿里云CLI使用

请求示例:

aliyun configure --mode External --profile sso
Configuring profile 'sso' in 'External' authenticate mode...
Process Command []: acs-sso login --profile sso
Default Region Id []: cn-shanghai
Default Output Format [json]: json (Only support json)
Default Language [zh|en] en: 
Saving profile[sso] ...Done.

其中,Process Command使用命令acs-sso login --profile sso指定云SSO的登录配置名称为sso。建议您在阿里云CLI和云SSO CLI指定相同的配置名称,这样当有多个云SSO登录配置时,可以多次配置CLI凭证,并匹配不同的云SSO登录配置。

配置成功的返回示例:

Configure Done!!!
..............888888888888888888888 ........=8888888888888888888D=..............
...........88888888888888888888888 ..........D8888888888888888888888I...........
.........,8888888888888ZI: ...........................=Z88D8888888888D..........
.........+88888888 ..........................................88888888D..........
.........+88888888 .......Welcome to use Alibaba Cloud.......O8888888D..........
.........+88888888 ............. ************* ..............O8888888D..........
.........+88888888 .... Command Line Interface(Reloaded) ....O8888888D..........
.........+88888888...........................................88888888D..........
..........D888888888888DO+. ..........................?ND888888888888D..........
...........O8888888888888888888888...........D8888888888888888888888=...........
............ .:D8888888888888888888.........78888888888888888888O ..............

执行以下测试示例,验证阿里云CLI是否可用。

aliyun sts GetCallerIdentity --profile sso