향후 사용자 사전 등록

IBM Cloud® App ID를 사용하는 경우 초기 사인인 이전에 앱에 대한 액세스가 필요할 것으로 판단되는 사용자의 프로파일을 빌드하기 시작할 수 있습니다.

사용자 정의 속성에 대해 작업할 때 적용할 수 있는 보안 고려사항에 관한 자세한 정보는 사용자 프로파일 저장 및 액세스를 참조하십시오.

사전 등록에 대한 정보

향후 누가 앱을 사용할지를 이미 알고 있는 애플리케이션을 개발하는 경우가 있습니다. 이 사용자는 "향후 사용자"라고 합니다. 특정 사용자가 앱과 상호작용을 시작하기도 전에 해당 사용자에게 필요한 특정 권한 레벨 또는 특정 음식 선호도를 미리 알 수 있습니다. 예를 들어 개발 회사를 위해 작업하고 팀 리더의 역할을 할 새로운 직원을 고용합니다. 처음으로 사인인할 때 추가 상호작용 없이 즉시 작업을 시작할 수 있도록, 시작하기 전에 해당 사용자에게 앱에 대한 admin 액세스 권한을 지정할 수 있습니다. 이 사람이 채식주의자라고 가정해 보겠습니다. 프로파일에서 이를 사용자 정의 속성으로 표시하면 사용자에게 미리 알리지 않고도 모든 팀의 점심 식사를 준비할 때 선호도 정보를 가져올 수 있습니다.

기본적으로 사용자가 애플리케이션을 통해 자신의 사용자 정의 속성을 변경하는 기능은 꺼져 있습니다. 사용자에게 해당 기능을 제공할 수 있지만, 이 기능을 수행하기 전에 발생할 수 있는 보안 문제를 파악하고 고려하십시오.

향후 사용자의 사용자 정의 속성을 지정하려면 GUI 또는 사전 등록 엔드포인트를 사용할 수 있습니다.

사용자를 식별하는 방법은 무엇입니까?

다음 항목 중 하나를 사용하여 사용자를 식별할 수 있습니다.

  • 사용자가 앱에 사인인하는 데 사용하는 이메일 주소입니다.
  • 사용 가능한 경우 ID 제공자에 있는 GUID라는 사용자의 고유 ID입니다. 이 ID는 항상 존재하고 고유한 상태로 유지되지만 항상 즉시 사용 가능하거나 간단히 파악할 수 있는 것은 아닙니다. 예를 들어 Cloud Directory에서 랜덤 16바이트 GUID를 사용합니다.

ID 제공자는 어떤 정보를 제공합니까?

다음 표에서 사용 가능한 ID 정보의 유형을 참조하십시오.

각 제공업체에서 사용할 수 있는 신원 정보 유형
ID 제공자 GUID 이메일 Sub
Cloud Directory 체크표시 아이콘 체크표시 아이콘
Facebook 체크표시 아이콘 체크표시 아이콘
Google 체크표시 아이콘 체크표시 아이콘
SAML 체크표시 아이콘
사용자 정의 체크표시 아이콘

Cloud Directory는 어떻게 처리됩니까?

향후 사용자의 무결성을 보장하기 위해 Cloud 디렉터리에서는 사전 등록에 요구 사항을 적용합니다.

  • 사용자 이름이 아니라 이메일을 사용하여 사용자를 추가해야 합니다. 아직 사용자가 없으면 이메일 및 비밀번호 모드로 전환하여 향후 사용자를 추가하십시오. 사용자가 있는 경우, 사용자 정의 속성을 지정하려면 사용자가 사인인할 때까지 기다려야 합니다.
  • 사용자는 검증을 통해 ID를 확인해야 합니다. 특정 속성이 있는 향후 사용자를 추가하는 경우 해당 속성은 해당 사용자를 위한 것입니다. 향후 사용자에 등록된 이메일을 사용하여 사인인하는 모든 사용자에게 앱에 대한 액세스 권한을 부여하기 전에 이메일 주소를 확인해야 합니다. 검증 요구사항을 완료하려면 사용자가 확인하도록 이메일을 보내거나 대신 사용자의 주소를 수동으로 확인할 수 있습니다. 자체 검증을 허용하려면 서비스 대시보드의 Cloud Directory 탭에서 이메일 검증켜기로 설정하십시오. 그러면 사용자에게 처음 사인인 시 검증을 요청하는 이메일을 보냅니다. 사용자를 수동으로 확인하려면 관리자여야 합니다. 클라우드 디렉터리 관리 API에 요청하여 페이로드의 status 필드를 CONFIRMED 으로 설정합니다.

향후 사용자를 추가한 후 이메일을 확인하지 않은 상태로 앱에 사인인하면 사용자 정의 속성이 삭제되고 프로파일이 처음부터 다시 새로 작성됩니다.

사용자 정의 ID 제공자를 사용할 때 특별히 필요한 것이 있습니까?

사전에 애플리케이션에 사용자 정보를 추가하는 경우 인증 플로우에서 제공되는 고유한 ID를 사용할 수 있습니다. ID는 권한 부여 요청 중에 전송되는 서명된 JSON Web Token의 sub과(와) 정확하게 일치해야 합니다. ID가 일치하지 않을 경우 추가하려는 프로파일이 정상적으로 링크되지 않습니다.

향후 사용자 추가

프로세스에 대한 정보를 확인하고 보안에 미치는 영향을 고려했으면 사용자를 추가하십시오.

사용자의 사전 정의된 속성은 첫 번째 인증을 수행할 때까지 비어 있습니다. 해당 속성이 비어 있어도 사용자는 여전히 완전히 인증됩니다. 이미 사인인한 사용자와 마찬가지로 해당 사용자의 프로파일 ID를 사용할 수 있습니다. 예를 들어 프로파일을 수정, 검색 또는 삭제할 수 있습니다.

시작하기 전에

시작하기 전에 다음과 같은 정보가 있어야 합니다.

GUI 사용

GUI를 사용하여 향후 사용자 및 해당 사용자 정의 속성을 추가할 수 있습니다.

Cloud Directory의 사용자 이름 및 비밀번호 구성을 위해 향후 사용자를 추가하는 기능은 사용되지 않습니다.

  1. App ID 대시보드의 사용자 프로파일 탭으로 이동하십시오.

  2. 향후 사용자를 클릭하십시오. 이미 향후 사용자가 있는 경우 이미 추가한 사용자 목록이 포함된 표가 표시됩니다. 다른 사용자를 추가하려면 프로파일 빌드를 클릭하십시오. 아직 사용자가 없으면 시작하기를 클릭하십시오. 화면이 열립니다.

  3. 사용자의 이메일을 입력하십시오.

  4. ID 제공자 드롭 다운에서 사인인하는 데 사용할 ID 제공자를 선택하십시오.

  5. 다음 예제에 표시된 대로 JSON 오브젝트에 정보를 입력하여 사용자 정의 속성을 추가하십시오.

    {
       "food": "Pizza",
       "preference": "Vegetarian",
       "points": "37"
    }
    
  6. 저장 을 클릭하십시오. 표가 표시되고 사용자에 ID가 지정됩니다.

API 사용

API를 사용하여 향후 사용자 및 해당 사용자 정의 속성을 추가할 수 있습니다.

  1. IBM Cloud에 로그인하십시오.

    ibmcloud login
    
  2. 다음 명령을 실행하여 IAM 토큰을 찾으십시오.

    ibmcloud iam oauth-tokens
    
  3. 사용자에 대한 설명 및 JSON 오브젝트로 설정할 속성이 포함된 /users 엔드포인트에 대한 POST 요청을 작성하십시오.

    헤더:

    POST <managementUrl>/management/v4/<tenantID>/users
          Host: <managementServerURL>
          Authorization: 'Bearer <IAMToken>'
          Content-Type: application/json
    

    본문:

    {
          "idp": "<identityProvider>",
          "idp-identity": "<userUniqueIdentifier>",
          "profile": {
             "attributes": {
                "mealPreference":"vegeterian"
             }
          }
    }
    
    POST 요청의 구성 요소
    컴포넌트 설명
    idp 사용자가 인하는 데 사용할 ID 제공자입니다. 옵션은 다음과 같습니다: saml, cloud_directory, facebook, google, appid_custom.
    idp-identity ID 제공자에서 제공하는 고유 ID입니다.
    profile 사용자 정의 속성 JSON 맵핑이 포함된 사용자 프로파일입니다.

    요청 예제:

    $ curl --request POST \
          --url 'https://<managementURI>/users \
          --header 'Authorization: Bearer <IAMToken>' \
          --header 'Content-Type: application/json' \
          --data '{"idp": "saml", "idp-identity": "user@ibm.com", "profile": { "attributes": { "role": "admin",
          "frequent_flyer_points": 1000 }}}'
    
  4. 등록이 성공적이었는지 확인하십시오.

    • 작성된 사용자 프로파일을 확인하십시오.

      curl --request GET https://us-south.appid.cloud.ibm.com/management/v4/<tenantID>/users/<userProfileId>/profile \
      --header 'Authorization: Bearer <IAMToken>' \
      --header 'Content-Type: application/json' \
      
    • 응답에서 사용자 ID를 확인하십시오.

      {
         "id": "5ce78e09-1356-4ef8-a45d-808b633101db",
         "identities": [],
         "attributes": {
            "role": "manager"
         }
      }
      

다음 단계

향후 사용자를 특정 속성과 연관시켰으므로 속성에 액세스 또는 업데이트해 보십시오!