1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

DENSOAdvent Calendar 2024

Day 3

TerraformでOktaのアプリカタログからアプリケーションを作成する方法

Last updated at Posted at 2024-12-02

はじめに

この記事はDENSO Advent Calendar 2024の3日目の記事です。
Terraform を使った Okta の構成について調査していた際に得た知見を紹介します。

Okta アプリケーションの作り方

Okta のダッシュボードからアプリケーションの作成をする場合、Create App IntegrationBrowse App Catalog のどちらかから実行できます。

image.png

この Browse App Catalog からの作成では、ユーザーが一から設定を行う必要はなく、様々なアプリへの SSO を簡単に設定できるので、非常に便利です。Okta やアプリ側のドキュメントにて、この導線でのアプリ連携の方法は丁寧に解説されているので良く使っています。

例えば、Github との連携方法のドキュメントは以下です。

Terraform での Okta アプリケーションの作り方

Terraform は Okta の構成管理にも使えます。

から、okta_app_saml を使います。

このリソースを作成する際に、preconfigured_app に所定のパラメータを与えることで、Browse App Catalog から選択してアプリを作成した場合と同じ様に SSO の設定を簡略化して実行することができます。

preconfigured_app (String) Name of application from the Okta Integration Network. For instance 'slack'. If not included a custom app will be created. If not provided the following arguments are required: 'sso_url' 'recipient' 'destination' 'audience' 'subject_name_id_template' 'subject_name_id_format' 'signature_algorithm' 'digest_algorithm' 'authn_context_class_ref'

以下は Slack の SAML SSO アプリケーションを作成するサンプルコードになります。この様に記述した tf ファイルを作成して実行することで、Browse App Catalogslack を検索して選択可能なカタログから作成したものと同等の設定でアプリケーションの作成を完了できます。

terraform {
  required_providers {
    okta = {
      source  = "okta/okta"
      version = "4.11.1"
    }
  }
}

provider "okta" {
  base_url = "okta.com"
}

resource "okta_app_saml" "slack_sso" {
  accessibility_self_service = false
  app_settings_json = jsonencode({
    domain = "your-workspace-domain.slack.com"
  })
  assertion_signed            = false
  auto_submit_toolbar         = true
  hide_ios                    = false
  hide_web                    = false
  honor_force_authn           = false
  implicit_assignment         = false
  label                       = "Slack SAML SSO"
  preconfigured_app           = "slack"
  response_signed             = false
  saml_signed_request_enabled = false
  saml_version                = "2.0"
  status                      = "ACTIVE"
  user_name_template          = "$${source.login}"
  user_name_template_type     = "BUILT_IN"
}

作成後、Okta アプリケーション内のメタデータを使って Slack 側の SSO 設定を完了させることで SSO 可能になります。OKTA_API_TOKEN, OKTA_ORG_NAME を環境変数に設定して実行するのを忘れないでください。

preconfigured_appのパラメータの調べ方

preconfigured_app に指定するパラメータは、手動で Browse App Catalog から作成した所望のアプリケーションの okta_app_saml のデータを出力して確認することができます。

data "okta_app_saml" "hoge" {
  label = "Slack SAML SSO"
}

output "hoge" {
  value = data.okta_app_saml.hoge
}

上記のコードを tf ファイルに追記して、terraform apply を実行することで出力から preconfigured_app に指定すべき値を確認できます。

Changes to Outputs:
  + hoge = {
        :
      + name = "slack"  <- ここ
        :
    }

終わりに

preconfigured_app に指定する値の調べ方については、きっとより良い方法があると思うので、見つけたらアップデートします。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?