Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

new resources: realm key aes, ecdsa, hmac, rsa, java keystore #582

Merged
merged 31 commits into from
Oct 13, 2021
Merged
Show file tree
Hide file tree
Changes from 18 commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
702e89d
new resources: realm key aes, ecdsa, hmac, rsa, java keystore (#569)
Vlad-Kirichenko Aug 30, 2021
3060a75
added missing tests, fixed errors and renamed key to keystore
Vlad-Kirichenko Aug 30, 2021
4a206ad
added rsa keystore & tests
Vlad-Kirichenko Sep 2, 2021
6267e29
fix multiline string error
Vlad-Kirichenko Sep 2, 2021
ab3b964
fix data conversion error
Vlad-Kirichenko Sep 2, 2021
ac80452
fix resource name in tests
Vlad-Kirichenko Sep 2, 2021
c3862b1
fix pem string
Vlad-Kirichenko Sep 2, 2021
86d9544
fix key multiline error & remove Check step
Vlad-Kirichenko Sep 3, 2021
e2388cf
fix rsa error & refactoring
Vlad-Kirichenko Sep 8, 2021
528facb
Merge branch 'master' of github.com:NapoleonGames/terraform-provider-…
Vlad-Kirichenko Sep 9, 2021
0bb0aea
added "*2+1" to key_size randomizer to be sure that step will fail
Vlad-Kirichenko Sep 9, 2021
2f0fd8f
Merge branch 'master' of github.com:NapoleonGames/terraform-provider-…
Vlad-Kirichenko Sep 14, 2021
0cc99c4
Added java keystore test
Vlad-Kirichenko Sep 17, 2021
3fae81c
Merge branch 'master' of github.com:NapoleonGames/terraform-provider-…
Vlad-Kirichenko Sep 17, 2021
7ced2bc
Added skip on ci for java tests
Vlad-Kirichenko Sep 17, 2021
60352b1
Merged parent_id to realm_id & added disable_read to java keystore
Vlad-Kirichenko Sep 17, 2021
a28e45d
Updated descriptions for resources & Added docs
Vlad-Kirichenko Sep 17, 2021
e4fbff9
Merge branch 'master' into realm-keys
ringods Sep 19, 2021
a77f0b9
Fixed docs & renamed names from `_key_` to =`_keystore_`
Vlad-Kirichenko Sep 24, 2021
839730c
Remove key_size from rsa keystore
Vlad-Kirichenko Sep 24, 2021
4a4f30f
Merge branch 'realm-keys' of github.com:NapoleonGames/terraform-provi…
Vlad-Kirichenko Sep 24, 2021
2497596
fix test field error
Vlad-Kirichenko Sep 24, 2021
1b60a7c
Merge branch 'master' of github.com:NapoleonGames/terraform-provider-…
Vlad-Kirichenko Sep 24, 2021
00f0091
Remove disable_read
Vlad-Kirichenko Sep 24, 2021
1dfb597
Fixed test & updated private_key catching when asterisks
Vlad-Kirichenko Sep 27, 2021
28d4eff
Merge branch 'master' of github.com:NapoleonGames/terraform-provider-…
Vlad-Kirichenko Sep 27, 2021
898f061
Fixed rsa generated test & updated private_key catching when asterisks
Vlad-Kirichenko Sep 27, 2021
1f4194d
Removed duplications in `update` function
Vlad-Kirichenko Sep 27, 2021
30cdc54
Merge branch 'master' of github.com:NapoleonGames/terraform-provider-…
Vlad-Kirichenko Oct 7, 2021
255095f
updated docs & removed `disable_read` from java keystore
Vlad-Kirichenko Oct 7, 2021
3f83029
Merge branch 'master' of github.com:NapoleonGames/terraform-provider-…
Vlad-Kirichenko Oct 12, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 48 additions & 0 deletions docs/resources/realm_keystore_aes_generated.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
page_title: "keycloak_realm_key_aes_generated Resources"
---

# keycloak\_realm\_key\_aes_generated Resources

Allows for creating and managing Realm keystores within Keycloak.
Vlad-Kirichenko marked this conversation as resolved.
Show resolved Hide resolved

A realm manages a logical collection of users, credentials, roles, and groups. Users log in to realms and can be federated
Vlad-Kirichenko marked this conversation as resolved.
Show resolved Hide resolved
from multiple sources.

## Example Usage

```hcl
resource "keycloak_realm" "realm" {
realm = "my-realm"
}

resource "keycloak_realm_key_aes_generated" "keystore_aes_generated" {
name = "my-aes-generated-key"
realm_id = keycloak_realm.my_realm.realm

enabled = true
active = true

priority = 100
secret_size = 16
}
```

## Argument Reference

- `name` - (Required) Display name of provider when linked in admin console.
- `realm_id` - (Required) The realm this keystore exists in.
- `enabled` - (Optional) When `false`, key is not accessible in this realm. Defaults to `true`.
- `active` - (Optional) When `false`, key in not used for signing. Defaults to `true`.
- `priority` - (Optional) Priority for the provider. Defaults to `0`
- `secret_size` - (Optional) Size in bytes for the generated AES Key. Size 16 is for AES-128, Size 24 for AES-192 and Size 32 for AES-256. WARN: Bigger keys then 128 bits are not allowed on some JDK implementations. Defaults to `16`.

## Import

Realm keys can be imported using realm name and keystore id, you can find it in web UI.

Example:

```bash
$ terraform import keycloak_realm_key_aes_generated.keystore_aes_generated my-realm/my-realm/618cfba7-49aa-4c09-9a19-2f699b576f0b
```
48 changes: 48 additions & 0 deletions docs/resources/realm_keystore_ecdsa_generated.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
---
page_title: "keycloak_realm_key_ecdsa_generated Resources"
---

# keycloak\_realm\_key\_ecdsa_generated Resources

Allows for creating and managing Realm keystores within Keycloak.

A realm manages a logical collection of users, credentials, roles, and groups. Users log in to realms and can be federated
from multiple sources.

## Example Usage

```hcl
resource "keycloak_realm" "realm" {
realm = "my-realm"
}

resource "keycloak_realm_key_ecdsa_generated" "keystore_ecdsa_generated" {
name = "my-ecdsa-generated-key"
realm_id = keycloak_realm.my_realm.realm

enabled = true
active = true

priority = 100
elliptic_curve_key = "P-256"
}
```

## Argument Reference

- `name` - (Required) Display name of provider when linked in admin console.
- `realm_id` - (Required) The realm this keystore exists in.
- `enabled` - (Optional) When `false`, key is not accessible in this realm. Defaults to `true`.
- `active` - (Optional) When `false`, key in not used for signing. Defaults to `true`.
- `priority` - (Optional) Priority for the provider. Defaults to `0`
- `elliptic_curve_key` - (Optional) Elliptic Curve used in ECDSA. Defaults to `P-256`.

## Import

Realm keys can be imported using realm name and keystore id, you can find it in web UI.

Example:

```bash
$ terraform import keycloak_realm_key_ecdsa_generated.keystore_ecdsa_generated my-realm/my-realm/618cfba7-49aa-4c09-9a19-2f699b576f0b
```
50 changes: 50 additions & 0 deletions docs/resources/realm_keystore_hmac_generated.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
page_title: "keycloak_realm_key_hmac_generated Resources"
---

# keycloak\_realm\_key\_hmac_generated Resources

Allows for creating and managing Realm keystores within Keycloak.

A realm manages a logical collection of users, credentials, roles, and groups. Users log in to realms and can be federated
from multiple sources.

## Example Usage

```hcl
resource "keycloak_realm" "realm" {
realm = "my-realm"
}

resource "keycloak_realm_key_hmac_generated" "keystore_hmac_generated" {
name = "my-hmac-generated-key"
realm_id = keycloak_realm.my_realm.realm

enabled = true
active = true

priority = 100
algorithm = "HS256"
secret_size = 64
}
```

## Argument Reference

- `name` - (Required) Display name of provider when linked in admin console.
- `realm_id` - (Required) The realm this keystore exists in.
- `enabled` - (Optional) When `false`, key is not accessible in this realm. Defaults to `true`.
- `active` - (Optional) When `false`, key in not used for signing. Defaults to `true`.
- `priority` - (Optional) Priority for the provider. Defaults to `0`
- `algorithm` - (Optional) Intended algorithm for the key. Defaults to `HS256`
- `secret_size` - (Optional) Size in bytes for the generated secret. Defaults to `64`.

## Import

Realm keys can be imported using realm name and keystore id, you can find it in web UI.

Example:

```bash
$ terraform import keycloak_realm_key_hmac_generated.keystore_hmac_generated my-realm/my-realm/618cfba7-49aa-4c09-9a19-2f699b576f0b
```
61 changes: 61 additions & 0 deletions docs/resources/realm_keystore_java_keystore.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
---
page_title: "keycloak_realm_key_java_keystore Resources"
---

# keycloak\_realm\_key\_java_keystore Resources

Allows for creating and managing Realm keystores within Keycloak.

A realm manages a logical collection of users, credentials, roles, and groups. Users log in to realms and can be federated
from multiple sources.

## Example Usage

```hcl
resource "keycloak_realm" "my_realm" {
realm = "my-realm"
}

resource "keycloak_realm_key_java_keystore" "java_keystore" {
name = "my-java-keystore"
realm_id = keycloak_realm.my_realm.realm

enabled = true
active = true

keystore = "<path to your keystore>"
keystore_password = "<password for keystore>"
key_alias = "<alias in your keystore>"
key_password = "<password for alias>"

priority = 100
algorithm = "RS256"

disable_read = true
}
```

## Argument Reference

- `name` - (Required) Display name of provider when linked in admin console.
- `realm_id` - (Required) The realm this keystore exists in.
- `keystore` - (Required) Path to keys file on keycloak instance.
- `keystore_password` - (Required) Password for the keys.
- `key_alias` - (Required) Alias for the private key.
- `key_password` - (Required) Password for the private key.
- `enabled` - (Optional) When `false`, key is not accessible in this realm. Defaults to `true`.
- `active` - (Optional) When `false`, key in not used for signing. Defaults to `true`.
- `priority` - (Optional) Priority for the provider. Defaults to `0`
- `algorithm` - (Optional) Intended algorithm for the key. Defaults to `RS256`
- `disable_read` - (Optional) Don't attempt to read the keys from Keycloak if true. Drift won't be detected. Defaults to `false`.


## Import

Realm keys can be imported using realm name and keystore id, you can find it in web UI.

Example:

```bash
$ terraform import keycloak_realm_key_java_keystore.java_keystore my-realm/my-realm/618cfba7-49aa-4c09-9a19-2f699b576f0b
```
59 changes: 59 additions & 0 deletions docs/resources/realm_keystore_rsa.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
---
page_title: "keycloak_realm_key_rsa Resources"
---

# keycloak\_realm\_key\_rsa Resources

Allows for creating and managing Realm keystores within Keycloak.

A realm manages a logical collection of users, credentials, roles, and groups. Users log in to realms and can be federated
from multiple sources.

## Example Usage

```hcl
resource "keycloak_realm" "my_realm" {
realm = "my-realm"
}

resource "keycloak_realm_key_rsa" "keystore_rsa" {
name = "my-rsa-key"
realm_id = keycloak_realm.my_realm.realm

enabled = true
active = true

private_key = "<your rsa private key>"
certificate = "<your certificate>"

priority = 100
algorithm = "RS256"
key_size = 2048

disable_read = true
Vlad-Kirichenko marked this conversation as resolved.
Show resolved Hide resolved
}
```

## Argument Reference

- `name` - (Required) Display name of provider when linked in admin console.
- `realm_id` - (Required) The realm this keystore exists in.
- `private_key` - (Required) Private RSA Key encoded in PEM format.
- `certificate` - (Required) X509 Certificate encoded in PEM format.
- `enabled` - (Optional) When `false`, key is not accessible in this realm. Defaults to `true`.
- `active` - (Optional) When `false`, key in not used for signing. Defaults to `true`.
- `priority` - (Optional) Priority for the provider. Defaults to `0`
- `algorithm` - (Optional) Intended algorithm for the key. Defaults to `RS256`
- `key_size` - (Optional) Size for the generated keys. Defaults to `2048`.
- `disable_read` - (Optional) Don't attempt to read the keys from Keycloak if true. Drift won't be detected. Defaults to `false`.
Vlad-Kirichenko marked this conversation as resolved.
Show resolved Hide resolved


## Import

Realm keys can be imported using realm name and keystore id, you can find it in web UI.

Example:

```bash
$ terraform import keycloak_realm_key_rsa.keystore_rsa my-realm/my-realm/618cfba7-49aa-4c09-9a19-2f699b576f0b
```
50 changes: 50 additions & 0 deletions docs/resources/realm_keystore_rsa_generated.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
page_title: "keycloak_realm_key_rsa_generated Resources"
---

# keycloak\_realm\_key\_rsa_generated Resources

Allows for creating and managing Realm keystores within Keycloak.

A realm manages a logical collection of users, credentials, roles, and groups. Users log in to realms and can be federated
from multiple sources.

## Example Usage

```hcl
resource "keycloak_realm" "realm" {
realm = "my-realm"
}

resource "keycloak_realm_key_rsa_generated" "keystore_rsa_generated" {
name = "my-rsa-generated-key"
realm_id = keycloak_realm.my_realm.realm

enabled = true
active = true

priority = 100
algorithm = "RS256"
key_size = 2048
}
```

## Argument Reference

- `name` - (Required) Display name of provider when linked in admin console.
- `realm_id` - (Required) The realm this keystore exists in.
- `enabled` - (Optional) When `false`, key is not accessible in this realm. Defaults to `true`.
- `active` - (Optional) When `false`, key in not used for signing. Defaults to `true`.
- `priority` - (Optional) Priority for the provider. Defaults to `0`
- `algorithm` - (Optional) Intended algorithm for the key. Defaults to `RS256`
- `key_size` - (Optional) Size for the generated keys. Defaults to `2048`.

## Import

Realm keys can be imported using realm name and keystore id, you can find it in web UI.

Example:

```bash
$ terraform import keycloak_realm_key_rsa_generated.keystore_rsa_generated my-realm/my-realm/618cfba7-49aa-4c09-9a19-2f699b576f0b
```
Loading