管理設定檔

使用 IBM Cloud® App ID,您可以將個別應用程式使用者的相關資訊編譯成設定檔。 透過使用者與您應用程式互動,或者您代表使用者進行新增,設定檔中會有使用者的相關資訊。 儲存此資訊,即可對其進行存取,以協助建立使用者的個人化應用程式體驗。

在尋找 Cloud Directory 使用者的相關資訊? 請參閱管理使用者

在主控台中檢視使用者設定檔

若要查看應用程式使用者可用的資料,您可以使用 App ID 使用者介面。

  1. 導覽至 App ID 實例的使用者設定檔 > 設定檔標籤。

  2. 在表格中尋找,或是使用電子郵件位址進行搜尋,以尋找您要查看其資訊的使用者。 搜尋詞彙必須是確切的詞彙。

  3. 在使用者列的溢位功能表中,按一下檢視使用者設定檔。 即會開啟包含使用者資訊的頁面。 請參閱下表,以查看您可以看見的資訊。

    使用者詳細資料如App ID儀表板所示
    詳細資料 說明
    IdP ID IdP ID 由使用者登入應用程式時選擇使用的提供者所發出。
    電子郵件 附加至使用者的主要電子郵件位址。
    名稱 由身分提供者發出的使用者的姓氏和名字。
    身分提供者 使用者登入時選擇使用的提供者。
    ID App ID 指派給使用者的 ID。
    自訂屬性 自訂屬性是新增至使用者設定檔的其他資訊,或是在使用者與您的應用程式互動時瞭解到關於使用者的其他資訊。
    摘要 以 JSON 物件顯示與該使用者相關的所有資訊。

使用 API 檢視使用者設定檔

您可以使用 App ID API,來檢視應用程式使用者的詳細資料。

  1. 從服務實例中取得您的承租戶 ID。 您可以在服務或應用程式認證中找到 ID。

  2. 使用識別查詢(例如電子郵件位址)搜尋您的 App ID 使用者,以尋找使用者 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 端點發出 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 使用者介面。

依預設,自訂屬性是可修改的,而且可以使用來自用戶端應用程式的 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. 從服務實例中取得您的承租戶 ID。 您可以在服務或應用程式認證中找到 ID。

  2. 使用識別查詢(例如電子郵件位址)搜尋您的 App ID 使用者,以尋找使用者 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 可在您的服務認證中找到服務承租戶 ID。 您可以在 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 的实例时,他们的身份提供者标识符保持不变。