IBM Cloud Docs
管理概要文件

管理概要文件

通过 IBM Cloud® App ID,可以将有关应用程序的各个用户的信息汇集成概要文件。 通过用户与应用程序进行交互的方式或者您代表用户进行添加的方式,可了解有关用户的信息并存储在概要文件中。 通过存储这些信息,您可以对其进行访问,以帮助为用户创建应用程序的个性化体验。

在查找有关 Cloud Directory 用户的信息? 请查看管理用户

在控制台中查看用户配置文件

要查看可供应用程序用户使用的数据,可以使用 App ID UI。

  1. 导航至 App ID 实例的用户概要文件 > 概要文件选项卡。

  2. 浏览表或使用电子邮件地址进行搜索,以查找要查看其信息的用户。 搜索项必须准确。

  3. 在用户所在行的溢出菜单中,单击查看用户概要文件。 这将打开一个页面,其中包含该用户的信息。 请查看下表以了解可以查看的信息。

    App ID仪表盘中显示的用户详细信息
    详细信息 描述
    IdP 标识 IdP 标识由用户登录到应用程序时选择使用的提供者发出。
    电子邮件 连接到用户的主要电子邮件地址。
    名称 由身份提供者发出的用户的姓氏和名字。
    身份提供者 用户登录时选择使用的提供者。
    标识 App ID 分配给用户的标识。
    定制属性 定制属性是添加到用户概要文件的其他信息,或者在用户与应用程序交互时了解到的用户相关信息。
    摘要 以 JSON 对象的形式显示与该用户相关的所有信息。

使用 API 查看用户概要文件

可以使用 App ID API 来查看有关应用程序用户的详细信息。

  1. 从服务实例获取租户标识。 可以在服务或应用程序凭证中查找该标识。

  2. 使用标识性查询(例如,电子邮件地址)来搜索 App ID 用户,以查找用户标识。

    curl -X GET "https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/Users?query=<identifyingSearchQuery>" \
    -H "accept: application/json" \
    -H "authorization: Bearer <token>"
    

    示例:

    curl -X GET https://us-south.appid.cloud.ibm.com/management/v4/e19a2778-3262-4986-8875-8khjafsdkhjsdafkjh/cloud_directory/Users?query=example@domain.com -H "accept: application/json" -H "authorization: Bearer eyJraWQiOiIyMDE3MTEyOSIsImFsZ...."
    
  3. 通过使用在上一步中获取的标识,对 /users 端点发出 GET 请求以查看其完整用户概要文件。

    curl -X GET "https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/users/<userID>/profile" \
    -H "accept: application/json" \
    -H "authorization: Bearer <token>"
    

    示例响应:

    {
       "id": "a0791903-ed4c-41cf-bd0e-a37957dad820",
       "name": "David Test-user",
       "email": "dave.test@domain.com",
       "picture": "https://platform-lookaside.fbsbx.com/platform/profilepic/?asid=11122233344455566&height=50&width=50&ext=1569429199&hash=AaAaAAAAAaAAAaaA",
       "identities": [
          {
          "provider": "facebook",
          "id": "11122233344455566",
          "idpUserInfo": {
                "id": "11122233344455566",
                "name": "David Test-user",
                "picture": {
                "data": {
                   "height": 50,
                   "is_silhouette": false,
                   "url": "https://platform-lookaside.fbsbx.com/platform/profilepic/?asid=11122233344455566&height=50&width=50&ext=1569429199&hash=AaAaAAAAAaAAAaaA",
                   "width": 50
                }
                },
                "first_name": "David",
                "last_name": "Test-user",
                "email": "dave.test@domain.com",
                "idpType": "facebook"
          }
          }
       ],
       "attributes": {
          "role": "admin"
       }
    }
    

    要查看 App ID 支持的全部用户数据集,请查看 SCIM 核心模式

在控制台中设置自定义属性

您可以通过设置定制属性将有关用户的定制信息添加到他们的概要文件中,例如他们所持有的角色或他们所拥有的首选项。 要设置属性,可以使用 App ID UI。

缺省情况下,定制属性是可修改的,并且可以通过客户机应用程序使用 App ID 访问令牌来更新。 如果不采取适当的预防措施,用户或应用程序只要有访问令牌,就可以在首次用户登录后立即更新自定义属性。 这可能会导致意外的后果。 例如,用户可将其角色从用户更改为管理员,而这可能会向恶意用户公开管理特权。

  1. 转至 App ID 仪表板的用户概要文件 > 设置选项卡。

  2. 将定制属性切换为已启用

  3. 在要设置其属性的用户所在行的溢出菜单中,单击查看概要文件

  4. 定制属性部分中,单击编辑

  5. 输入要添加为 JSON 对象的属性。 例如,{"role":"admin"}

使用 API 设置定制属性

作为管理员,您可以通过设置定制属性,将有关用户的定制信息添加到他们的概要文件中,例如他们所持有的角色或他们所拥有的首选项。 要设置属性,可以使用 App ID API 来调用 /users 端点。 要在用户首次登录应用程序之前设置定制属性,请参阅预注册未来用户

缺省情况下,定制属性是可修改的,并且可以通过客户机应用程序使用 App ID 访问令牌来更新。 这意味着,在第一个用户登录后,只要用户或应用程序有访问令牌,就可以立即更新定制属性,而不必执行适当的预防措施。 这可能会导致意外的后果。 例如,用户可将其角色从用户更改为管理员,而这可能会向恶意用户公开管理特权。

  1. 转至 App ID 仪表板的用户概要文件 > 设置选项卡。

  2. 将定制属性切换为已启用

  3. 获取 IAM 令牌。

    1. 在 IBM Cloud 仪表板中,单击管理 > 访问 (IAM)

    2. 选择 IBM Cloud API 密钥

    3. 单击创建 IBM Cloud API 密钥

    4. 为密钥指定名称并进行描述。 单击“创建”。 屏幕将显示密钥。

    5. 单击复制下载,以复制或下载您的密钥。 关闭屏幕时,您不再能够访问该密钥。

    6. 使用您创建的 API 密钥发出以下 cURL 请求。

      curl -k -X POST \
      --header "Content-Type: application/x-www-form-urlencoded" \
      --header "Accept: application/json" \
      --data-urlencode "grant_type=urn:ibm:params:oauth:grant-type:apikey" \
      --data-urlencode "apikey=<apikey>" \
      "https://iam.cloud.ibm.com/identity/token"
      
  4. /users 端点发出 PUT 请求。

    curl -X PUT "https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/users/<userID>/profile" \
    -H "accept: application/json" \
    -H "Content-Type: application/json" \
    -H "authorization: Bearer <token>"
    -d "{ \"attributes\": { \"points\": \"150\" } { \"role\": \"admin\" }}"
    

在控制台中删除配置文件

作为管理员,您可以通过删除某人的概要文件来将其作为应用程序的用户除去。

  1. 导航至 App ID 实例的用户概要文件 > 概要文件选项卡。

  2. 浏览表或使用电子邮件地址进行搜索,以查找要查看其信息的用户。 搜索项必须准确。

  3. 在用户所在行的溢出菜单中,单击删除。 这将打开确认屏幕。

  4. 通过对显示的用户的电子邮件进行检查,可验证您要删除的用户是否正确。 如果是正确的用户,请单击删除。 无法撤销此操作。 用户可以重新添加,但其个人资料显示,从重新添加之日起,他们就是新用户。

使用 API 删除概要文件

作为管理员,您可以通过删除某人的概要文件来将其作为应用程序的用户除去。

  1. 从服务实例获取租户标识。 可以在服务或应用程序凭证中查找该标识。

  2. 使用标识性查询(例如,电子邮件地址)来搜索 App ID 用户,以查找用户标识。

    curl -X GET "https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/Users?query=<identifyingSearchQuery>" \
    -H "accept: application/json" \
    -H "authorization: Bearer <token>"
    

    示例:

    curl -X GET https://us-south.appid.cloud.ibm.com/management/v4/e19a2778-3262-4986-8875-8khjafsdkhjsdafkjh/cloud_directory/Users?query=example@domain.com -H "accept: application/json" -H "authorization: Bearer eyJraWQiOiIyMDE3MTEyOSIsImFsZ...."
    
  3. 使用在上一步中获得的 ID,向 /users 端点发出 DELETE 请求,删除配置文件。

    curl -X DELETE "https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/users/<userID>/profile" \
    -H "accept: application/json" \
    -H "authorization: Bearer <token>"
    

迁移用户概要文件

有时,您可能需要向帐户添加 App ID 实例,以帮助确保高可用性或灾难恢复。 或者,您可能需要同时废弃服务的实例。 要迁移用户信息,您可以从 App ID 的一个实例导出用户概要文件,然后将其导入到另一个实例中。

此操作只能通过 API 完成。 要查看步骤,请切换到 API 指示信息。

导出用户概要文件

在将概要文件导入到新实例之前,需要从服务的原始实例中导出这些概要文件。

  1. 确保为您分配了 App ID实例的 管理者 IAM 角色

  2. 从服务的原始实例中导出配置文件。

    curl -X GET https://us-south.appid.cloud.ibm.com/management/v4/<tenantID>/users/export \
    --header "Accept: application/json" \
    --header "Authorization: Bearer <IAMToken>"
    
    用户导入命令变量
    变量 描述
    tenantID 可以在服务凭证中找到的服务租户标识。 您可以在 App ID 仪表板中找到服务或应用程序凭证。
    iam-token 您的 IAM 令牌。

    示例响应:

    {
       "itemsPerPage": 2,
       "totalResults": 2,
       "requestOptions": {},
       "users": [
       {
          "id": "7ae804f3-0ed3-45f0-bc6b-1c6af868e6d6",
          "name": "App ID Google User profile",
          "email": "your@mail.com",
          "identities": [
             {
             "provider": "google",
             "id": "105646725068605084546",
             "idpUserInfo": {
                "id": "105646725068605084546",
                "email": "your@mail.com",
                "picture": "profilePic.jpg"
             }
             }
          ],
          "attributes": {
             "points": 150
          },
          "roles": ["admin"]
       {
          "id": "1439d777-185d-4be1-8f4a-c4e8142b87ea",
          "name": "App ID Facebook User profile",
          "email": "mail@mail.com",
          "identities": [
             {
             "provider": "facebook",
             "id": "100195207128541",
             "picture": {
                "data": {
                   "height": 50,
                   "width": 50,
                   "url": "https://url-to-idp-profile-picture.com"
                }
             },
             "first_name": "AppID",
             "last_name": "Development"
             }
          ],
          "attributes": {
             "points": 250
          },
          "roles": ["admin"]
       }
    }
    

导入用户概要文件

现在,您具有导出的用户概要文件的列表,可以将这些用户概要文件导入到新实例中。

  1. 确保为您分配了 App ID实例的 管理者 IAM 角色

  2. 如果为用户分配了 角色,请确保在 App ID的新实例中创建角色和作用域。

    必须创建的角色和作用域与先前实例中具有相同拼写的角色和作用域完全相同。

  3. 将用户导入到服务的新实例。

    curl -X POST "https://<region>.appid.cloud.ibm.com/management/v4/<tenantID>/users/import" \
    -H "accept: application/json" \
    -H "Authorization: Bearer <bearerToken>" \
    -H "Content-Type: application/json" \
    -d "{ \"itemsPerPage\": 2, \"totalResults\": 2, \"requestOptions\": {}, \"users\": [ { \"id\": \"7ae804f3-0ed3-45f0-bc6b-1c6af868e6d6\", \"name\": \"App ID Google User profile\", \"email\": \"your@mail.com\", \"identities\": [ { \"provider\": \"google\", \"id\": \"105646725068605084546\", \"idpUserInfo\": { \"id\": \"{ID}\", \"email\": \"your@mail.com\", \"picture\": \"{profile.jpg}\" } } ], \"attributes\": { \"points\": 150 } { \"role\": admin } }, { \"id\": \"{userinfo}\", \"name\": \"App ID Facebook User profile\", \"email\": \"mail@mail.com\", \"identities\": [ { \"provider\": \"facebook\", \"id\": \"{id}\", \"picture\": { \"data\": { \"height\": 50, \"width\": 50, \"url\": \"https://{url}.com\" } }, \"first_name\": \"AppID\", \"last_name\": \"Development\" } ], \"attributes\": { \"points\": 250 } { \"role\": admin } } ]}"
    

    当您将用户导入 App ID 时,他们的身份供应商标识符保持不变。