Я пытаюсь территофорировать сценарий SAML IDP и вступает в некоторые проблемы (помимо того, что документация не хватает).

Я не могу выяснить, на жизнь меня, правильный формат для атрибута X5C в сценарии okta_IDP_SAML_KEY. Террафовая документация

Он должен быть форматом Base64, и если я загружаю сертификацию в Okta через консоль, он отлично работает ...

Пример сертификации похож на:

-----BEGIN CERTIFICATE-----
….bunch of text…
….bunch of text…
….bunch of text…
-----END CERTIFICATE-----

Я попытался преобразовать его все в Base64, попытался сделать его одной строкой с линейными разрядами, попытался сделать это и преобразовывать в Base64. Я понял, что имел неправильный тип значений в модуле, у меня было {string, и это должно было быть set(string) ... что заставило меня пройти мою первую ошибку, и я пытался затем установить каждую строку сертификации в качестве элемента массива, но затем я получаю ниже ошибку:

Ошибка: API вернул ошибку: Не удалось проверить проверку API: JSONWebkey. Причины: errorsummary: сертификат IDP JWK имеет неверный X5C., Статус: 400 плохой запрос

Это имеет смысл, потому что он в конечном итоге выкладывает его из строя в плане террафора.

Поэтому я устанавливаю так, как это: x5c = ["-----BEGIN CERTIFICATE-----",”text”,”text”, ["-----END CERTIFICATE-----"]

Но план поднимается так:

+ resource "okta_idp_saml_key" "idp_saml_key" {
  + created    = (known after apply)
  + expires_at = (known after apply)
  + id         = (known after apply)
  + kid        = (known after apply)
  + kty        = (known after apply)
  + use        = (known after apply)
  + x5c        = [
      + "-----BEGIN CERTIFICATE-----",
      + "-----END CERTIFICATE-----",
      + "text",
      + "text",
    ]
  + x5t_s256   = (known after apply)
 }

Затем, как и ожидалось, он получает ошибку о неверном сертификате. Документация противоположна полезным, и я в основном потерял и запутался прямо сейчас ...

Кто-нибудь делал это раньше? Любая помощь??

Для справки: TF V0.12.31, Okta Terraform v3.6

0
JasonWilczak 18 Май 2021 в 19:58

1 ответ

Лучший ответ

После какой-либо обратно и помогите от других, я наконец-то получил работу:

resource "okta_idp_saml_key" "example" {
  x5c = ["line of textline of textline of text"]
}

Ключ здесь удалял возврат каретки и концовки линии и просто сделать все один файл строки.

FYI, если вы делаете это в качестве модуля, то:

<Сильные> # Invests.tf

# ---------------------------------------------------------------------------------------------------------------------
# REQUIRED PARAMETERS
# You must provide a value for each of these parameters.
# ---------------------------------------------------------------------------------------------------------------------

variable "cert" {
  description = "(Required) base64-encoded X.509 certificate chain with DER encoding."
  type        = set(string)
}

# main.tf Для модуля

# -----------------------------------------------------------------------------------------------
# REQUIRE A SPECIFIC TERRAFORM VERSION OR HIGHER

terraform {
  required_version = ">= 0.12"
}

# ---------------------------------------------------------------------------------------------------------------------
# CREATE A SAML CERT KEY
# ---------------------------------------------------------------------------------------------------------------------
resource "okta_idp_saml_key" "idp_saml_key" {
  x5c        = var.cert
}

output "id" {
  value = okta_idp_saml_key.idp_saml_key.id
}

#actual TF-файл

# #------------------
# CREATE THE OKTA INTERNAL to EXTERNAL SAML IDP
# #------------------

module "org2org_int2ext_idp_saml_key" {
  source = "./modules/idp_saml_key"

  cert = ["line of textline of textline of text"]

}
0
JasonWilczak 25 Май 2021 в 20:31