misc: updated docs

This commit is contained in:
Sheen Capadngan
2024-10-24 20:37:39 +08:00
parent f71f894de8
commit ac0cb6d96f

View File

@@ -10,143 +10,253 @@ The Infisical LDAP dynamic secret allows you to generate user credentials on dem
1. Create a user with the necessary permissions to create users in your LDAP server. 1. Create a user with the necessary permissions to create users in your LDAP server.
2. Ensure your LDAP server is reachable via Infisical instance. 2. Ensure your LDAP server is reachable via Infisical instance.
## Set up Dynamic Secrets with LDAP ## Create LDAP Credentials
<Steps> <Tabs>
<Step title="Open Secret Overview Dashboard"> <Tab title="Dynamic">
Open the Secret Overview dashboard and select the environment in which you would like to add a dynamic secret. <Steps>
</Step> <Step title="Open Secret Overview Dashboard">
<Step title="Click on the 'Add Dynamic Secret' button"> Open the Secret Overview dashboard and select the environment in which you would like to add a dynamic secret.
![Add Dynamic Secret Button](../../../images/platform/dynamic-secrets/add-dynamic-secret-button.png) </Step>
</Step> <Step title="Click on the 'Add Dynamic Secret' button">
<Step title="Select 'LDAP'"> ![Add Dynamic Secret Button](../../../images/platform/dynamic-secrets/add-dynamic-secret-button.png)
![Dynamic Secret Modal](../../../images/platform/dynamic-secrets/dynamic-secret-ldap-select.png) </Step>
</Step> <Step title="Select 'LDAP'">
![Dynamic Secret Modal](../../../images/platform/dynamic-secrets/dynamic-secret-ldap-select.png)
</Step>
<Step title="Provide the inputs for dynamic secret parameters"> <Step title="Provide the inputs for dynamic secret parameters">
<ParamField path="Secret Name" type="string" required> <ParamField path="Secret Name" type="string" required>
Name by which you want the secret to be referenced Name by which you want the secret to be referenced
</ParamField> </ParamField>
<ParamField path="Default TTL" type="string" required> <ParamField path="Default TTL" type="string" required>
Default time-to-live for a generated secret (it is possible to modify this value when a secret is generate) Default time-to-live for a generated secret (it is possible to modify this value when a secret is generate)
</ParamField> </ParamField>
<ParamField path="Max TTL" type="string" required> <ParamField path="Max TTL" type="string" required>
Maximum time-to-live for a generated secret. Maximum time-to-live for a generated secret.
</ParamField> </ParamField>
<ParamField path="URL" type="string" required> <ParamField path="URL" type="string" required>
LDAP url to connect to. _(Example: ldap://your-ldap-ip:389 or ldaps://domain:636)_ LDAP url to connect to. _(Example: ldap://your-ldap-ip:389 or ldaps://domain:636)_
</ParamField> </ParamField>
<ParamField path="BIND DN" type="string" required> <ParamField path="BIND DN" type="string" required>
DN to bind to. This should have permissions to create a new users. DN to bind to. This should have permissions to create a new users.
</ParamField> </ParamField>
<ParamField path="BIND Password" type="string" required> <ParamField path="BIND Password" type="string" required>
Password for the given DN. Password for the given DN.
</ParamField> </ParamField>
<ParamField path="CA" type="text"> <ParamField path="CA" type="text">
CA certificate to use for TLS in case of a secure connection. CA certificate to use for TLS in case of a secure connection.
</ParamField> </ParamField>
<ParamField path="Creation LDIF" type="text" required> <ParamField path="Credential Type" type="enum">
LDIF to run while creating a user in LDAP. This can include extra steps to assign the user to groups or set permissions. The type of LDAP credential - select Dynamic.
Here `{{Username}}`, `{{Password}}` and `{{EncodedPassword}}` are templatized variables for the username and password generated by the dynamic secret. </ParamField>
`{{EncodedPassword}}` is the encoded password required for the `unicodePwd` field in Active Directory as described [here](https://learn.microsoft.com/en-us/troubleshoot/windows-server/active-directory/change-windows-active-directory-user-password). <ParamField path="Creation LDIF" type="text" required>
LDIF to run while creating a user in LDAP. This can include extra steps to assign the user to groups or set permissions.
Here `{{Username}}`, `{{Password}}` and `{{EncodedPassword}}` are templatized variables for the username and password generated by the dynamic secret.
**OpenLDAP** Example: `{{EncodedPassword}}` is the encoded password required for the `unicodePwd` field in Active Directory as described [here](https://learn.microsoft.com/en-us/troubleshoot/windows-server/active-directory/change-windows-active-directory-user-password).
```
dn: uid={{Username}},dc=infisical,dc=com
changetype: add
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: inetOrgPerson
cn: John Doe
sn: Doe
uid: jdoe
mail: jdoe@infisical.com
userPassword: {{Password}}
```
**Active Directory** Example: **OpenLDAP** Example:
``` ```
dn: CN={{Username}},OU=Test Create,DC=infisical,DC=com dn: uid={{Username}},dc=infisical,dc=com
changetype: add changetype: add
objectClass: top objectClass: top
objectClass: person objectClass: person
objectClass: organizationalPerson objectClass: organizationalPerson
objectClass: user objectClass: inetOrgPerson
userPrincipalName: {{Username}}@infisical.com cn: John Doe
sAMAccountName: {{Username}} sn: Doe
unicodePwd::{{EncodedPassword}} uid: jdoe
userAccountControl: 66048 mail: jdoe@infisical.com
userPassword: {{Password}}
```
dn: CN=test-group,OU=Test Create,DC=infisical,DC=com **Active Directory** Example:
changetype: modify ```
add: member dn: CN={{Username}},OU=Test Create,DC=infisical,DC=com
member: CN={{Username}},OU=Test Create,DC=infisical,DC=com changetype: add
- objectClass: top
``` objectClass: person
</ParamField> objectClass: organizationalPerson
objectClass: user
userPrincipalName: {{Username}}@infisical.com
sAMAccountName: {{Username}}
unicodePwd::{{EncodedPassword}}
userAccountControl: 66048
<ParamField path="Revocation LDIF" type="text" required> dn: CN=test-group,OU=Test Create,DC=infisical,DC=com
LDIF to run while revoking a user in LDAP. This can include extra steps to remove the user from groups or set permissions. changetype: modify
Here `{{Username}}` is a templatized variable for the username generated by the dynamic secret. add: member
member: CN={{Username}},OU=Test Create,DC=infisical,DC=com
-
```
</ParamField>
**OpenLDAP / Active Directory** Example: <ParamField path="Revocation LDIF" type="text" required>
``` LDIF to run while revoking a user in LDAP. This can include extra steps to remove the user from groups or set permissions.
dn: CN={{Username}},OU=Test Create,DC=infisical,DC=com Here `{{Username}}` is a templatized variable for the username generated by the dynamic secret.
changetype: delete
```
</ParamField>
<ParamField path="Rollback LDIF" type="text"> **OpenLDAP / Active Directory** Example:
LDIF to run incase Creation LDIF fails midway. ```
dn: CN={{Username}},OU=Test Create,DC=infisical,DC=com
changetype: delete
```
</ParamField>
For the creation example shown above, if the user is created successfully but not added to a group, this LDIF can be used to remove the user. <ParamField path="Rollback LDIF" type="text">
Here `{{Username}}`, `{{Password}}` and `{{EncodedPassword}}` are templatized variables for the username generated by the dynamic secret. LDIF to run incase Creation LDIF fails midway.
**OpenLDAP / Active Directory** Example: For the creation example shown above, if the user is created successfully but not added to a group, this LDIF can be used to remove the user.
``` Here `{{Username}}`, `{{Password}}` and `{{EncodedPassword}}` are templatized variables for the username generated by the dynamic secret.
dn: CN={{Username}},OU=Test Create,DC=infisical,DC=com
changetype: delete
```
</ParamField>
</Step> **OpenLDAP / Active Directory** Example:
```
dn: CN={{Username}},OU=Test Create,DC=infisical,DC=com
changetype: delete
```
</ParamField>
</Step>
<Step title="Click `Submit`"> <Step title="Click `Submit`">
After submitting the form, you will see a dynamic secret created in the dashboard. After submitting the form, you will see a dynamic secret created in the dashboard.
</Step> </Step>
<Step title="Generate dynamic secrets"> <Step title="Generate dynamic secrets">
Once you've successfully configured the dynamic secret, you're ready to generate on-demand credentials. Once you've successfully configured the dynamic secret, you're ready to generate on-demand credentials.
To do this, simply click on the 'Generate' button which appears when hovering over the dynamic secret item. To do this, simply click on the 'Generate' button which appears when hovering over the dynamic secret item.
Alternatively, you can initiate the creation of a new lease by selecting 'New Lease' from the dynamic secret lease list section. Alternatively, you can initiate the creation of a new lease by selecting 'New Lease' from the dynamic secret lease list section.
![Dynamic Secret](/images/platform/dynamic-secrets/dynamic-secret-generate-redis.png) ![Dynamic Secret](/images/platform/dynamic-secrets/dynamic-secret-generate-redis.png)
![Dynamic Secret](/images/platform/dynamic-secrets/dynamic-secret-lease-empty-redis.png) ![Dynamic Secret](/images/platform/dynamic-secrets/dynamic-secret-lease-empty-redis.png)
When generating these secrets, it's important to specify a Time-to-Live (TTL) duration. This will dictate how long the credentials are valid for. When generating these secrets, it's important to specify a Time-to-Live (TTL) duration. This will dictate how long the credentials are valid for.
![Provision Lease](/images/platform/dynamic-secrets/provision-lease.png) ![Provision Lease](/images/platform/dynamic-secrets/provision-lease.png)
<Tip> <Tip>
Ensure that the TTL for the lease fall within the maximum TTL defined when configuring the dynamic secret. Ensure that the TTL for the lease fall within the maximum TTL defined when configuring the dynamic secret.
</Tip> </Tip>
Once you click the `Submit` button, a new secret lease will be generated and the credentials from it will be shown to you with an array of DN's altered depending on the Creation LDIF. Once you click the `Submit` button, a new secret lease will be generated and the credentials from it will be shown to you with an array of DN's altered depending on the Creation LDIF.
![Provision Lease](/images/platform/dynamic-secrets/dynamic-secret-ldap-lease.png) ![Provision Lease](/images/platform/dynamic-secrets/dynamic-secret-ldap-lease.png)
</Step>
</Step> </Steps>
</Steps> </Tab>
<Tab title="Static">
<Steps>
<Step title="Open Secret Overview Dashboard">
Open the Secret Overview dashboard and select the environment in which you would like to add a dynamic secret.
</Step>
<Step title="Click on the 'Add Dynamic Secret' button">
![Add Dynamic Secret Button](../../../images/platform/dynamic-secrets/add-dynamic-secret-button.png)
</Step>
<Step title="Select 'LDAP'">
![Dynamic Secret Modal](../../../images/platform/dynamic-secrets/dynamic-secret-ldap-select.png)
</Step>
<Step title="Provide the inputs for dynamic secret parameters">
<ParamField path="Secret Name" type="string" required>
Name by which you want the secret to be referenced
</ParamField>
<ParamField path="Default TTL" type="string" required>
Default time-to-live for a generated secret (it is possible to modify this value when a secret is generate)
</ParamField>
<ParamField path="Max TTL" type="string" required>
Maximum time-to-live for a generated secret.
</ParamField>
<ParamField path="URL" type="string" required>
LDAP url to connect to. _(Example: ldap://your-ldap-ip:389 or ldaps://domain:636)_
</ParamField>
<ParamField path="BIND DN" type="string" required>
DN to bind to. This should have permissions to create a new users.
</ParamField>
<ParamField path="BIND Password" type="string" required>
Password for the given DN.
</ParamField>
<ParamField path="CA" type="text">
CA certificate to use for TLS in case of a secure connection.
</ParamField>
<ParamField path="Credential Type" type="enum">
The type of LDAP credential - select Static.
</ParamField>
<ParamField path="Rotation LDIF" type="text" required>
LDIF to run for rotating the credentals of an LDAP user. This can include extra LDAP steps based on your needs.
Here `{{Password}}` and `{{EncodedPassword}}` are templatized variables for the password generated by the dynamic secret.
Note that the `-` characters and the empty lines found at the end of the examples are necessary based on the LDIF format.
**OpenLDAP** Example:
```
dn: cn=sheencaps capadngan,ou=people,dc=acme,dc=com
changetype: modify
replace: userPassword
password: {{Password}}
-
```
**Active Directory** Example:
```
dn: cn=sheencaps capadngan,ou=people,dc=acme,dc=com
changetype: modify
replace: unicodePwd
unicodePwd::{{EncodedPassword}}
-
```
`{{EncodedPassword}}` is the encoded password required for the `unicodePwd` field in Active Directory as described [here](https://learn.microsoft.com/en-us/troubleshoot/windows-server/active-directory/change-windows-active-directory-user-password).
</ParamField>
</Step>
<Step title="Click `Submit`">
After submitting the form, you will see a dynamic secret created in the dashboard.
</Step>
<Step title="Generate dynamic secrets">
Once you've successfully configured the dynamic secret, you're ready to generate on-demand credentials.
To do this, simply click on the 'Generate' button which appears when hovering over the dynamic secret item.
Alternatively, you can initiate the creation of a new lease by selecting 'New Lease' from the dynamic secret lease list section.
![Dynamic Secret](/images/platform/dynamic-secrets/dynamic-secret-generate-redis.png)
![Dynamic Secret](/images/platform/dynamic-secrets/dynamic-secret-lease-empty-redis.png)
When generating these secrets, it's important to specify a Time-to-Live (TTL) duration. This will dictate how long the credentials are valid for.
![Provision Lease](/images/platform/dynamic-secrets/provision-lease.png)
<Tip>
Ensure that the TTL for the lease fall within the maximum TTL defined when configuring the dynamic secret.
</Tip>
Once you click the `Submit` button, a new secret lease will be generated and the credentials from it will be shown to you with an array of DN's altered depending on the Creation LDIF.
![Provision Lease](/images/platform/dynamic-secrets/dynamic-secret-ldap-lease.png)
</Step>
</Steps>
</Tab>
</Tabs>
## Active Directory Integration ## Active Directory Integration