For the complete documentation index, see llms.txt. This page is also available as Markdown.

Users

Users are the central entities in the identity service, serving as the cornerstone for authentication and access management. This documentation outlines the user-related concepts, profile structure, and associated attributes in detail.

User Profile Overview

Each user in the system has a profile that stores their information. This profile consists of three primary types of data:

1. Social Identities

  • Stores user information retrieved from social sign-in (e.g., Facebook, GitHub, WeChat).

  • Includes details such as social identity references and provider-specific data.

2. Custom Data

  • Stores additional user information not included in predefined user properties.

  • Examples: User preferences like preferred language, theme, or display settings.

3. Basic Data

  • Contains all other core user information except for social identities and custom data.

  • Examples: User ID, username, email, phone number, and timestamps for key events like last sign-in.

Sample User Data

Below is an example of user data retrieved from a Facebook sign-in:

{
  "userDetail": {
    "family_name": "User",
    "email": "vimalprakashts@gmail.com",
    "given_name": "System",
    "sub": "b1c9676a-d9f5-4cf0-a3fc-c2d49bde06ae",
    "isub": "03ca3d79-b0b6-4dd9-b527-3bbfb491a0d8",
    "name": "System User",
    "email_verified": true,
    "phone_number_verified": false,
    "updated_at": 1663438130,
    "created_at": 1647170635,
    "last_logged_in_time": 1663438130,
    "providers": [
      {
        "provider_type": "CLASSICAL",
        "provider_name": "self",
        "social_identity_ref": "",
        "username": ""
      },
      {
        "provider_type": "SOCIAL",
        "provider_name": "FACEBOOK",
        "social_identity_ref": "safaseervasdfad",
        "username": "vimalprakashts@gmail.com"
      }
    ],
    "groups": [
      {
        "roles": ["auth_admin"],
        "group_id": "auth_admins",
        "group_name": "ADMIN",
        "roles_obj": [
          {
            "permissions": [],
            "role_key": "auth_admin"
          }
        ]
      }
    ]
  }
}

Querying User Profiles

You can retrieve user profiles via:

  1. Admin Console: Interactive UI for managing users.

  2. Management API: Example endpoint: GET /users-srv/users/byadmin/:sub

User Profile Attributes

Basic Data Properties

1. sub

  • A unique auto-generated identifier for the user within the system.

2. Name Information

  • given_name: User's first name.

  • family_name: User's last name.

  • middle_name: User's middle name (if applicable).

  • name: Full name of the user.

3. Email

  • The user's primary email address used for sign-in.

  • email_verified: Indicates whether the email address is verified.

    • Default for classical registration: false.

    • Default for social sign-in: true.

  • Max length: 128 characters.

4. Phone Number

  • The user's phone number, used for SMS-based authentication.

  • Format: Numbers prefixed with the country calling code (e.g., +1, +44).

  • phone_number_verified: Indicates whether the phone number is verified.

5. Timestamps

  • created_at: Date and time when the user profile was created.

  • updated_at: Timestamp of the last update made to the user entity.

  • last_logged_in_time: The last recorded login timestamp.

6. Providers

  • Lists the authentication providers associated with the user.

  • Examples: SELF (classical registration), FACEBOOK, GOOGLE.

7. Groups

  • Lists the groups and roles the user is a member of.

  • Example Structure:

    • group_id: Identifier for the group.

    • group_name: Display name of the group.

    • roles: Roles assigned to the user within the group.

Benefits of Organized User Data

  • Flexibility: Supports multiple authentication methods (classical and social).

  • Customization: Allows storing additional user-specific preferences.

  • Transparency: Provides a detailed view of the user’s roles, groups, and account activity.

  • Compliance: Facilitates auditing and adherence to organizational policies.

By leveraging the structured profile attributes, administrators can efficiently manage user identities and provide a personalized experience tailored to individual users.

Last updated