You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用boto3或SCIM API在AWS SSO组中创建用户?

AWS SSO 用户创建指引(Boto3 + SCIM API)

一、用Boto3创建AWS SSO用户并加入组

AWS SSO的用户/组管理并不在sso-admin客户端中,而是由identitystore客户端负责——这个服务专门处理AWS SSO内部身份存储的用户、组及成员关系操作。具体步骤如下:

  1. 获取Identity Store ID
    先通过sso-admin客户端获取你的AWS SSO实例对应的Identity Store ID:

    import boto3
    
    sso_admin = boto3.client('sso-admin')
    instances = sso_admin.list_instances()
    identity_store_id = instances['Instances'][0]['IdentityStoreId']
    
  2. 创建用户
    初始化identitystore客户端,调用create_user方法创建用户:

    identity_store = boto3.client('identitystore')
    
    user_response = identity_store.create_user(
        IdentityStoreId=identity_store_id,
        UserName='johndoe',
        Name={
            'GivenName': 'John',
            'FamilyName': 'Doe'
        },
        Emails=[{
            'Value': 'john.doe@example.com',
            'Primary': True
        }]
    )
    user_id = user_response['UserId']
    
  3. 将用户加入指定组
    先通过list_groups查找目标组的ID,再调用create_group_membership完成添加:

    # 查找目标组ID(示例组名为"Engineering-Team")
    groups = identity_store.list_groups(
        IdentityStoreId=identity_store_id,
        Filters=[{'AttributePath': 'DisplayName', 'AttributeValue': 'Engineering-Team'}]
    )
    group_id = groups['Groups'][0]['GroupId']
    
    # 添加用户到组
    identity_store.create_group_membership(
        IdentityStoreId=identity_store_id,
        GroupId=group_id,
        MemberId={'UserId': user_id}
    )
    

二、用SCIM API创建用户

如果你的AWS SSO启用了SCIM同步(可用于外部IDP集成,也可单独调用API),按以下步骤操作:

  1. 准备SCIM凭证
    在AWS SSO控制台的「设置」>「身份源」>「SCIM配置」中启用SCIM,复制生成的SCIM endpoint URL和「API访问令牌」。

  2. 发送SCIM创建用户请求
    用HTTP POST请求调用SCIM用户创建接口,请求体需符合SCIM 2.0规范。以下是Python requests库的示例:

    import requests
    
    scim_endpoint = "https://scim.us-east-1.amazonaws.com/xxxxxx/Users"
    api_token = "your-scim-api-token"
    
    headers = {
        "Authorization": f"Bearer {api_token}",
        "Content-Type": "application/scim+json"
    }
    
    user_payload = {
        "schemas": ["urn:ietf:params:scim:schemas:core:2.0:User"],
        "userName": "janedoe@example.com",
        "name": {
            "givenName": "Jane",
            "familyName": "Doe"
        },
        "emails": [
            {
                "value": "janedoe@example.com",
                "type": "work",
                "primary": True
            }
        ],
        "active": True
    }
    
    response = requests.post(scim_endpoint, json=user_payload, headers=headers)
    response.raise_for_status()  # 检查请求是否成功
    created_user = response.json()
    
  3. (可选)将用户加入SCIM组
    先通过GET请求{SCIM_ENDPOINT}/Groups找到目标组ID,再发送PATCH请求更新组成员:

    group_id = "your-group-id"
    patch_payload = {
        "schemas": ["urn:ietf:params:scim:api:messages:2.0:PatchOp"],
        "Operations": [
            {
                "op": "add",
                "path": "members",
                "value": [{"value": created_user['id']}]
            }
        ]
    }
    
    requests.patch(f"{scim_endpoint}/Groups/{group_id}", json=patch_payload, headers=headers)
    

内容的提问来源于stack exchange,提问作者user18148705

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 09:09:22