> ## Documentation Index
> Fetch the complete documentation index at: https://docs.apinizer.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Identity Manager

> Identity Manager (Identity Manager), the component in the Apinizer platform that provides user authentication, authorization, and identity management functions. It manages identities of platform users, performs authentication and authorization operations, and manages identity credentials of API consumers.

## Identity Manager Concept

<CardGroup cols={2}>
  <Card title="User Management" icon="users">
    Management of platform users
  </Card>

  <Card title="Authentication" icon="key">
    Authentication mechanisms
  </Card>

  <Card title="Authorization" icon="lock">
    Authorization and access control
  </Card>

  <Card title="Integration" icon="plug">
    LDAP, Active Directory integration
  </Card>
</CardGroup>

## Identity Manager Features

### User Management

<AccordionGroup>
  <Accordion title="User Accounts">
    * Creating, editing, and deleting users
    * User profile management
    * Password management
    * User status management (active/inactive)
  </Accordion>

  <Accordion title="Role Management">
    * Role definition and management
    * User-role assignment
    * Role-based access control
    * Creating custom roles
  </Accordion>

  <Accordion title="Group Management">
    * Creating user groups
    * Group-based authorization
    * Group membership management
  </Accordion>
</AccordionGroup>

### Authentication

<CardGroup cols={2}>
  <Card title="OAuth2" icon="key">
    * Authorization Code Flow
    * Client Credentials Flow
    * Resource Owner Password Credentials
  </Card>

  <Card title="OIDC" icon="id-card">
    * OpenID Connect support
    * ID Token management
  </Card>

  <Card title="JWT" icon="file-code">
    * JWT token generation
    * JWT token validation
    * JWT token signing
  </Card>

  <Card title="Basic/Digest Auth" icon="shield">
    * HTTP Basic Authentication
    * HTTP Digest Authentication
  </Card>
</CardGroup>

### Authorization

<AccordionGroup>
  <Accordion title="API Key Management">
    * Creating and managing API Keys
    * API Key validation
    * Revoking API Keys
    * API Key rotation
  </Accordion>

  <Accordion title="Access Control List (ACL)">
    * API Proxy-based access control
    * Endpoint-based access control
    * Method-based access control
  </Accordion>

  <Accordion title="Role-Based Access Control (RBAC)">
    * Role-based authorization
    * Permission management
    * Dynamic role assignment
  </Accordion>
</AccordionGroup>

### External Identity Provider Integration

<CardGroup cols={2}>
  <Card title="LDAP" icon="server">
    * LDAP connection
    * LDAP user validation
    * LDAP group matching
  </Card>

  <Card title="Active Directory" icon="building">
    * Active Directory integration
    * AD user validation
    * AD group management
  </Card>

  <Card title="SAML" icon="id-badge">
    * SAML 2.0 support
    * SSO (Single Sign-On)
  </Card>

  <Card title="Custom Provider" icon="plug">
    * Custom identity provider integration
    * REST API integration
  </Card>
</CardGroup>

## Identity Manager Usage Scenarios

<CardGroup cols={3}>
  <Card title="Platform User Management" icon="users">
    1. Creating users
    2. Role assignment
    3. Permission management
    4. User status management
  </Card>

  <Card title="API Consumer Management" icon="key">
    1. Creating API Consumer account
    2. Generating API Keys
    3. Subscribing to API products
    4. Usage monitoring
  </Card>

  <Card title="LDAP Integration" icon="server">
    1. LDAP connection configuration
    2. User synchronization
    3. Group matching
    4. Automatic user management
  </Card>
</CardGroup>

## Identity Manager and API Gateway Relationship

Identity Manager supports authentication and authorization operations of API Gateway. Workflow:

```
API Consumer
   │
   │ Request (API Key / Token)
   ▼
API Gateway
   │
   │ Authentication Request
   ▼
Identity Manager
   │
   │ Validation Result
   ▼
API Gateway
   │
   │ Request Processing
   ▼
Backend API
```

<CardGroup cols={3}>
  <Card title="1. Request" icon="arrow-right">
    API Consumer sends request with API Key or Token

    Request is routed to API Gateway.
  </Card>

  <Card title="2. Validation" icon="key">
    API Gateway sends authentication request to Identity Manager

    Token or API Key is validated.
  </Card>

  <Card title="3. Authorization" icon="lock">
    Identity Manager returns validation result and authorization information

    User permissions are checked.
  </Card>

  <Card title="4. Processing" icon="cog">
    API Gateway processes request if validation is successful

    Policies are applied and routing is done.
  </Card>

  <Card title="5. Response" icon="arrow-left">
    Response from Backend API is delivered to client

    All operations are logged.
  </Card>
</CardGroup>

<Info>
  This integration between Identity Manager and API Gateway provides central identity management and secure API access.
</Info>

## Identity Provider Integration

Identity Manager can obtain user information from different sources (Identity Provider) for authentication. In addition to Apinizer's own embedded identity provider, the following sources can be used:

<CardGroup cols={3}>
  <Card title="Database Connection" icon="database">
    User validation by connecting to databases

    * Connecting to databases like MySQL, PostgreSQL, Oracle, MSSQL
    * Querying user information from database
    * Password validation and obtaining user information
  </Card>

  <Card title="API Call" icon="code">
    Authentication via REST API

    * Calling REST APIs of external identity providers
    * Token-based authentication
    * Integration with custom authentication services
  </Card>

  <Card title="LDAP/Active Directory" icon="server">
    LDAP and Active Directory integration

    * Connecting to LDAP servers
    * Integration with Active Directory
    * Obtaining user and group information from LDAP
  </Card>
</CardGroup>

<AccordionGroup>
  <Accordion title="Database Identity Provider">
    Authentication via database connection:

    * **Database Connection**: Connecting to database through Connection management
    * **User Query**: Obtaining user information with SQL queries
    * **Password Validation**: Comparing with password in database
    * **User Information**: Obtaining user profile information

    <Tip>
      When database identity provider is used, user information is dynamically retrieved from the database and there is no need for Apinizer's own user database.
    </Tip>
  </Accordion>

  <Accordion title="API Call Identity Provider">
    Authentication via REST API:

    * **API Endpoint**: REST API endpoint of external identity provider
    * **Request Format**: Request format and parameters
    * **Response Parsing**: Response format and extracting user information
    * **Error Handling**: Managing error situations

    <Tip>
      Thanks to API Call identity provider, integration can be done with any REST API-based identity provider.
    </Tip>
  </Accordion>

  <Accordion title="LDAP/Active Directory Identity Provider">
    LDAP and Active Directory integration:

    * **LDAP Connection**: Connecting to LDAP server
    * **User Search**: Searching and validating users in LDAP
    * **Group Information**: Obtaining user's group memberships
    * **Active Directory**: Integration with Windows Active Directory

    <Tip>
      When LDAP identity provider is used, direct integration with enterprise user databases is provided.
    </Tip>
  </Accordion>
</AccordionGroup>

<Info>
  Identity Manager provides a flexible identity management solution by supporting different identity providers. This facilitates integration with existing enterprise identity systems.
</Info>

## Next Steps

<CardGroup cols={2}>
  <Card title="API Manager" icon="gear" href="/en/concepts/core-components/api-manager">
    Learn about API Manager component
  </Card>

  <Card title="API Gateway" icon="shield" href="/en/concepts/core-components/api-gateway">
    Learn about API Gateway component
  </Card>

  <Card title="Identity Management" icon="users" href="/en/admin/identity-management/overview">
    Identity management documentation
  </Card>

  <Card title="LDAP Integration" icon="server" href="/en/admin/identity-management/identity-providers/ldap-active-directory">
    LDAP integration
  </Card>
</CardGroup>
