diff --git a/go.sum b/go.sum index e07dac709..17a813f02 100644 --- a/go.sum +++ b/go.sum @@ -57,6 +57,7 @@ github.com/articulate/okta-sdk-golang v1.1.1 h1:ymEGt5P/Ckqygz7TtyUINRp7oP7fAhS0 github.com/articulate/okta-sdk-golang v1.1.1/go.mod h1:6ymIhzFQtMyBnwqkEHc/reQUMalObOjgyOSbf3w21PM= github.com/articulate/oktasdk-go v1.0.1 h1:UuvJSY5yUqT0w9+hdACq1bcmIKAqh25bnVHWWQtsvYQ= github.com/articulate/oktasdk-go v1.0.1/go.mod h1:UTdWnHE/nQNjDvbmLBwxIHjJ3L8r3XlZZaqVDIUtu1I= +github.com/articulate/terraform-provider-okta v2.21.0+incompatible h1:gjQodD//ZD9SrTDXQL9/96MtveG7nwGSXyq5IjbNQd4= github.com/aws/aws-sdk-go v1.15.78/go.mod h1:E3/ieXAlvM0XWO57iftYVDLLvQ824smPP3ATZkfNZeM= github.com/aws/aws-sdk-go v1.16.36/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= github.com/aws/aws-sdk-go v1.19.18/go.mod h1:KmX6BPdI08NWTb3/sm4ZGu5ShLoqVDhKgpiN924inxo= diff --git a/main.go b/main.go index 3ee4223a6..0ea1f9639 100644 --- a/main.go +++ b/main.go @@ -2,8 +2,8 @@ package main import ( - "github.com/hashicorp/terraform-plugin-sdk/plugin" "github.com/terraform-providers/terraform-provider-okta/okta" + "github.com/hashicorp/terraform-plugin-sdk/plugin" ) func main() { diff --git a/okta/app_filter.go b/okta/app_filter.go index a569f185b..8caab87fc 100644 --- a/okta/app_filter.go +++ b/okta/app_filter.go @@ -5,7 +5,6 @@ import ( "fmt" "strings" - "github.com/articulate/terraform-provider-okta/sdk" "github.com/hashicorp/terraform-plugin-sdk/helper/schema" "github.com/okta/okta-sdk-golang/okta" "github.com/okta/okta-sdk-golang/okta/query" diff --git a/okta/data_source_okta_app_saml_metadata.go b/okta/data_source_okta_app_saml_metadata.go new file mode 100644 index 000000000..fa2e6e2b5 --- /dev/null +++ b/okta/data_source_okta_app_saml_metadata.go @@ -0,0 +1,77 @@ +package okta + +import ( + "encoding/xml" + "fmt" + + "github.com/crewjam/saml" + "github.com/hashicorp/terraform-plugin-sdk/helper/schema" +) + +func dataSourceAppMetadataSaml() *schema.Resource { + return &schema.Resource{ + Read: dataSourceAppMetadataSamlRead, + + Schema: map[string]*schema.Schema{ + "app_id": { + Type: schema.TypeString, + Required: true, + }, + "key_id": { + Type: schema.TypeString, + Required: true, + }, + "metadata": { + Type: schema.TypeString, + Computed: true, + }, + "http_post_binding": { + Type: schema.TypeString, + Computed: true, + Description: "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Post location from the SAML metadata.", + }, + "http_redirect_binding": { + Type: schema.TypeString, + Computed: true, + Description: "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-Redirect location from the SAML metadata.", + }, + "certificate": { + Type: schema.TypeString, + Computed: true, + }, + "want_authn_requests_signed": { + Type: schema.TypeBool, + Computed: true, + }, + "entity_id": { + Type: schema.TypeString, + Description: "Entity URL for instance https://www.okta.com/saml2/service-provider/sposcfdmlybtwkdcgtuf", + Computed: true, + }, + }, + } +} + +func dataSourceAppMetadataSamlRead(d *schema.ResourceData, m interface{}) error { + id := d.Get("app_id").(string) + kid := d.Get("key_id").(string) + metadata, _, err := getSupplementFromMetadata(m).GetSAMLMetdata(id, kid) + if err != nil { + return err + } + d.SetId(fmt.Sprintf("%s/%s_metadata", id, kid)) + + d.Set("metadata", string(metadata)) + metadataRoot := &saml.EntityDescriptor{} + err = xml.Unmarshal(metadata, metadataRoot) + if err != nil { + return fmt.Errorf("Could not parse SAML app metadata, error: %s", err) + } + + desc := metadataRoot.IDPSSODescriptors[0] + syncSamlEndpointBinding(d, desc.SingleSignOnServices) + d.Set("entity_id", metadataRoot.EntityID) + d.Set("want_authn_requests_signed", desc.WantAuthnRequestsSigned) + d.Set("certificate", desc.KeyDescriptors[0].KeyInfo.Certificate) + return nil +} diff --git a/okta/data_source_okta_app_saml_metadata_test.go b/okta/data_source_okta_app_saml_metadata_test.go new file mode 100644 index 000000000..647742a90 --- /dev/null +++ b/okta/data_source_okta_app_saml_metadata_test.go @@ -0,0 +1,33 @@ +package okta + +import ( + "testing" + + "github.com/hashicorp/terraform-plugin-sdk/helper/acctest" + "github.com/hashicorp/terraform-plugin-sdk/helper/resource" +) + +func TestAccOktaDataSourceAppMetadataSaml_read(t *testing.T) { + ri := acctest.RandInt() + mgr := newFixtureManager("okta_app_metadata_saml") + config := mgr.GetFixtures("datasource.tf", ri, t) + resourceName := "data.okta_app_metadata_saml.test" + + resource.Test(t, resource.TestCase{ + PreCheck: func() { + testAccPreCheck(t) + }, + Providers: testAccProviders, + Steps: []resource.TestStep{ + { + Config: config, + Check: resource.ComposeTestCheckFunc( + resource.TestCheckResourceAttrSet(resourceName, "certificate"), + resource.TestCheckResourceAttrSet(resourceName, "http_post_binding"), + resource.TestCheckResourceAttrSet(resourceName, "metadata"), + resource.TestCheckResourceAttrSet(resourceName, "entity_id"), + ), + }, + }, + }) +} diff --git a/okta/data_source_okta_idp_saml.go b/okta/data_source_okta_idp_saml.go index facd06dfa..7f4f35f6e 100644 --- a/okta/data_source_okta_idp_saml.go +++ b/okta/data_source_okta_idp_saml.go @@ -5,7 +5,6 @@ import ( "fmt" "github.com/hashicorp/terraform-plugin-sdk/helper/schema" - "github.com/terraform-providers/terraform-provider-okta/sdk" "github.com/okta/okta-sdk-golang/okta/query" "github.com/terraform-providers/terraform-provider-okta/sdk" ) diff --git a/okta/data_source_okta_user.go b/okta/data_source_okta_user.go index fbff4e29d..641dec76f 100644 --- a/okta/data_source_okta_user.go +++ b/okta/data_source_okta_user.go @@ -9,7 +9,6 @@ import ( "github.com/okta/okta-sdk-golang/okta/query" "github.com/hashicorp/terraform-plugin-sdk/helper/schema" - "github.com/hashicorp/terraform-plugin-sdk/helper/validation" ) func dataSourceUser() *schema.Resource { diff --git a/okta/data_source_okta_users.go b/okta/data_source_okta_users.go index e52f23ae7..1ab7dcadb 100644 --- a/okta/data_source_okta_users.go +++ b/okta/data_source_okta_users.go @@ -3,7 +3,7 @@ package okta import ( "fmt" - "github.com/articulate/terraform-provider-okta/sdk" + "github.com/terraform-providers/terraform-provider-okta/sdk" "github.com/hashicorp/terraform-plugin-sdk/helper/hashcode" "github.com/hashicorp/terraform-plugin-sdk/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/helper/validation" diff --git a/okta/provider_sweeper_test.go b/okta/provider_sweeper_test.go index 9a4184701..277f62742 100644 --- a/okta/provider_sweeper_test.go +++ b/okta/provider_sweeper_test.go @@ -8,7 +8,6 @@ import ( articulateOkta "github.com/articulate/oktasdk-go/okta" "github.com/hashicorp/terraform-plugin-sdk/helper/resource" - sdk "github.com/terraform-providers/terraform-provider-okta/sdk" "github.com/okta/okta-sdk-golang/okta" sdk "github.com/terraform-providers/terraform-provider-okta/sdk" ) diff --git a/okta/resource_okta_app_oauth.go b/okta/resource_okta_app_oauth.go index 9df2b89ec..b68719fe1 100644 --- a/okta/resource_okta_app_oauth.go +++ b/okta/resource_okta_app_oauth.go @@ -4,7 +4,6 @@ import ( "encoding/json" "fmt" - "github.com/articulate/terraform-provider-okta/sdk" "github.com/hashicorp/terraform-plugin-sdk/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/helper/validation" "github.com/okta/okta-sdk-golang/okta" diff --git a/okta/resource_okta_app_oauth_test.go b/okta/resource_okta_app_oauth_test.go index dadbdac0b..2024397e4 100644 --- a/okta/resource_okta_app_oauth_test.go +++ b/okta/resource_okta_app_oauth_test.go @@ -8,7 +8,6 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/helper/acctest" "github.com/hashicorp/terraform-plugin-sdk/helper/resource" - "github.com/hashicorp/terraform-plugin-sdk/terraform" "github.com/okta/okta-sdk-golang/okta" "github.com/okta/okta-sdk-golang/okta/query" ) diff --git a/okta/resource_okta_app_user_base_schema.go b/okta/resource_okta_app_user_base_schema.go index 0120c5d5f..0edca6ed7 100644 --- a/okta/resource_okta_app_user_base_schema.go +++ b/okta/resource_okta_app_user_base_schema.go @@ -3,8 +3,8 @@ package okta import ( "fmt" - "github.com/hashicorp/terraform-plugin-sdk/helper/schema" "github.com/terraform-providers/terraform-provider-okta/sdk" + "github.com/hashicorp/terraform-plugin-sdk/helper/schema" ) func resourceAppUserBaseSchema() *schema.Resource { diff --git a/okta/resource_okta_app_user_schema.go b/okta/resource_okta_app_user_schema.go index 47c223f2b..2ce339a4a 100644 --- a/okta/resource_okta_app_user_schema.go +++ b/okta/resource_okta_app_user_schema.go @@ -3,8 +3,8 @@ package okta import ( "fmt" - "github.com/hashicorp/terraform-plugin-sdk/helper/schema" "github.com/terraform-providers/terraform-provider-okta/sdk" + "github.com/hashicorp/terraform-plugin-sdk/helper/schema" ) func resourceAppUserSchema() *schema.Resource { diff --git a/okta/resource_okta_auth_server_claim.go b/okta/resource_okta_auth_server_claim.go index 8633ff62b..164f125c8 100644 --- a/okta/resource_okta_auth_server_claim.go +++ b/okta/resource_okta_auth_server_claim.go @@ -3,9 +3,9 @@ package okta import ( "net/http" + "github.com/terraform-providers/terraform-provider-okta/sdk" "github.com/hashicorp/terraform-plugin-sdk/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/helper/validation" - "github.com/terraform-providers/terraform-provider-okta/sdk" ) func resourceAuthServerClaim() *schema.Resource { diff --git a/okta/resource_okta_auth_server_policy.go b/okta/resource_okta_auth_server_policy.go index 34e6c5ccc..cea252d53 100644 --- a/okta/resource_okta_auth_server_policy.go +++ b/okta/resource_okta_auth_server_policy.go @@ -3,8 +3,8 @@ package okta import ( "net/http" - "github.com/hashicorp/terraform-plugin-sdk/helper/schema" "github.com/terraform-providers/terraform-provider-okta/sdk" + "github.com/hashicorp/terraform-plugin-sdk/helper/schema" ) func resourceAuthServerPolicy() *schema.Resource { diff --git a/okta/resource_okta_auth_server_policy_rule.go b/okta/resource_okta_auth_server_policy_rule.go index 40a1cfeb3..4a2117987 100644 --- a/okta/resource_okta_auth_server_policy_rule.go +++ b/okta/resource_okta_auth_server_policy_rule.go @@ -3,9 +3,9 @@ package okta import ( "net/http" + "github.com/terraform-providers/terraform-provider-okta/sdk" "github.com/hashicorp/terraform-plugin-sdk/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/helper/validation" - "github.com/terraform-providers/terraform-provider-okta/sdk" ) func resourceAuthServerPolicyRule() *schema.Resource { diff --git a/okta/resource_okta_auth_server_test.go b/okta/resource_okta_auth_server_test.go index dfe949b54..28a856958 100644 --- a/okta/resource_okta_auth_server_test.go +++ b/okta/resource_okta_auth_server_test.go @@ -8,7 +8,6 @@ import ( "github.com/hashicorp/terraform-plugin-sdk/helper/acctest" "github.com/hashicorp/terraform-plugin-sdk/helper/resource" - "github.com/terraform-providers/terraform-provider-okta/sdk" "github.com/okta/okta-sdk-golang/okta/query" "github.com/terraform-providers/terraform-provider-okta/sdk" ) diff --git a/okta/resource_okta_group_roles.go b/okta/resource_okta_group_roles.go index 8b2d39c00..e7514a14c 100644 --- a/okta/resource_okta_group_roles.go +++ b/okta/resource_okta_group_roles.go @@ -3,8 +3,8 @@ package okta import ( "fmt" - "github.com/hashicorp/terraform-plugin-sdk/helper/schema" "github.com/terraform-providers/terraform-provider-okta/sdk" + "github.com/hashicorp/terraform-plugin-sdk/helper/schema" ) func resourceGroupRoles() *schema.Resource { diff --git a/okta/resource_okta_idp_oidc.go b/okta/resource_okta_idp_oidc.go index 626fbbe6e..eace27c44 100644 --- a/okta/resource_okta_idp_oidc.go +++ b/okta/resource_okta_idp_oidc.go @@ -3,7 +3,6 @@ package okta import ( "github.com/hashicorp/terraform-plugin-sdk/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/helper/validation" - "github.com/terraform-providers/terraform-provider-okta/sdk" "github.com/okta/okta-sdk-golang/okta" "github.com/terraform-providers/terraform-provider-okta/sdk" ) diff --git a/okta/resource_okta_idp_oidc_test.go b/okta/resource_okta_idp_oidc_test.go index c485111fc..42bedf163 100644 --- a/okta/resource_okta_idp_oidc_test.go +++ b/okta/resource_okta_idp_oidc_test.go @@ -4,9 +4,9 @@ import ( "fmt" "testing" + "github.com/terraform-providers/terraform-provider-okta/sdk" "github.com/hashicorp/terraform-plugin-sdk/helper/acctest" "github.com/hashicorp/terraform-plugin-sdk/helper/resource" - "github.com/terraform-providers/terraform-provider-okta/sdk" ) func TestAccOktaIdpOidc_crud(t *testing.T) { diff --git a/okta/resource_okta_idp_saml.go b/okta/resource_okta_idp_saml.go index ad60ec0a5..4b4dc4cd0 100644 --- a/okta/resource_okta_idp_saml.go +++ b/okta/resource_okta_idp_saml.go @@ -3,7 +3,6 @@ package okta import ( "github.com/hashicorp/terraform-plugin-sdk/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/helper/validation" - "github.com/terraform-providers/terraform-provider-okta/sdk" "github.com/okta/okta-sdk-golang/okta" "github.com/terraform-providers/terraform-provider-okta/sdk" ) diff --git a/okta/resource_okta_idp_saml_signing_key.go b/okta/resource_okta_idp_saml_signing_key.go index 04c38c816..abec1e487 100644 --- a/okta/resource_okta_idp_saml_signing_key.go +++ b/okta/resource_okta_idp_saml_signing_key.go @@ -3,8 +3,8 @@ package okta import ( "net/http" - "github.com/hashicorp/terraform-plugin-sdk/helper/schema" "github.com/terraform-providers/terraform-provider-okta/sdk" + "github.com/hashicorp/terraform-plugin-sdk/helper/schema" ) func resourceIdpSigningKey() *schema.Resource { diff --git a/okta/resource_okta_idp_saml_test.go b/okta/resource_okta_idp_saml_test.go index 657861461..829b534f2 100644 --- a/okta/resource_okta_idp_saml_test.go +++ b/okta/resource_okta_idp_saml_test.go @@ -4,9 +4,9 @@ import ( "fmt" "testing" + "github.com/terraform-providers/terraform-provider-okta/sdk" "github.com/hashicorp/terraform-plugin-sdk/helper/acctest" "github.com/hashicorp/terraform-plugin-sdk/helper/resource" - "github.com/terraform-providers/terraform-provider-okta/sdk" ) func TestAccOktaIdpSaml_crud(t *testing.T) { diff --git a/okta/resource_okta_idp_social.go b/okta/resource_okta_idp_social.go index dfad422d9..299c92636 100644 --- a/okta/resource_okta_idp_social.go +++ b/okta/resource_okta_idp_social.go @@ -3,7 +3,6 @@ package okta import ( "github.com/hashicorp/terraform-plugin-sdk/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/helper/validation" - "github.com/terraform-providers/terraform-provider-okta/sdk" "github.com/okta/okta-sdk-golang/okta" "github.com/terraform-providers/terraform-provider-okta/sdk" ) diff --git a/okta/resource_okta_idp_social_test.go b/okta/resource_okta_idp_social_test.go index a5901883f..e65f75f0d 100644 --- a/okta/resource_okta_idp_social_test.go +++ b/okta/resource_okta_idp_social_test.go @@ -4,9 +4,9 @@ import ( "fmt" "testing" + "github.com/terraform-providers/terraform-provider-okta/sdk" "github.com/hashicorp/terraform-plugin-sdk/helper/acctest" "github.com/hashicorp/terraform-plugin-sdk/helper/resource" - "github.com/terraform-providers/terraform-provider-okta/sdk" ) func TestAccOktaIdpSocial_crud(t *testing.T) { diff --git a/okta/resource_okta_policy_rule_idp_discovery.go b/okta/resource_okta_policy_rule_idp_discovery.go index 47dbdae2f..48111edf3 100644 --- a/okta/resource_okta_policy_rule_idp_discovery.go +++ b/okta/resource_okta_policy_rule_idp_discovery.go @@ -1,9 +1,9 @@ package okta import ( + "github.com/terraform-providers/terraform-provider-okta/sdk" "github.com/hashicorp/terraform-plugin-sdk/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/helper/validation" - "github.com/terraform-providers/terraform-provider-okta/sdk" ) var platformIncludeResource = &schema.Resource{ diff --git a/okta/resource_okta_profile_mapping.go b/okta/resource_okta_profile_mapping.go index 770b8d61b..98e5248b9 100644 --- a/okta/resource_okta_profile_mapping.go +++ b/okta/resource_okta_profile_mapping.go @@ -3,7 +3,7 @@ package okta import ( "fmt" - "github.com/articulate/terraform-provider-okta/sdk" + "github.com/terraform-providers/terraform-provider-okta/sdk" "github.com/hashicorp/terraform-plugin-sdk/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/helper/validation" ) diff --git a/okta/resource_okta_template_email.go b/okta/resource_okta_template_email.go index 1af5023a8..6e6f23a6d 100644 --- a/okta/resource_okta_template_email.go +++ b/okta/resource_okta_template_email.go @@ -1,8 +1,8 @@ package okta import ( - "github.com/hashicorp/terraform-plugin-sdk/helper/schema" "github.com/terraform-providers/terraform-provider-okta/sdk" + "github.com/hashicorp/terraform-plugin-sdk/helper/schema" ) var translationResource = &schema.Resource{ diff --git a/okta/resource_okta_user_base_schema.go b/okta/resource_okta_user_base_schema.go index 323336ccd..f4d916c11 100644 --- a/okta/resource_okta_user_base_schema.go +++ b/okta/resource_okta_user_base_schema.go @@ -1,8 +1,8 @@ package okta import ( - "github.com/hashicorp/terraform-plugin-sdk/helper/schema" "github.com/terraform-providers/terraform-provider-okta/sdk" + "github.com/hashicorp/terraform-plugin-sdk/helper/schema" ) const baseSchema = "base" diff --git a/okta/resource_okta_user_schema.go b/okta/resource_okta_user_schema.go index d6144abe5..b8b06bc42 100644 --- a/okta/resource_okta_user_schema.go +++ b/okta/resource_okta_user_schema.go @@ -1,8 +1,8 @@ package okta import ( - "github.com/hashicorp/terraform-plugin-sdk/helper/schema" "github.com/terraform-providers/terraform-provider-okta/sdk" + "github.com/hashicorp/terraform-plugin-sdk/helper/schema" ) const customSchema = "custom" diff --git a/okta/user.go b/okta/user.go index b54dd3ff1..11b09ba31 100644 --- a/okta/user.go +++ b/okta/user.go @@ -5,7 +5,6 @@ import ( "fmt" "github.com/hashicorp/terraform-plugin-sdk/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/helper/validation" - "github.com/terraform-providers/terraform-provider-okta/sdk" "github.com/okta/okta-sdk-golang/okta" "github.com/terraform-providers/terraform-provider-okta/sdk" "log" diff --git a/okta/user_schema.go b/okta/user_schema.go index 82bcf95f6..ebff00cee 100644 --- a/okta/user_schema.go +++ b/okta/user_schema.go @@ -1,9 +1,9 @@ package okta import ( + "github.com/terraform-providers/terraform-provider-okta/sdk" "github.com/hashicorp/terraform-plugin-sdk/helper/schema" "github.com/hashicorp/terraform-plugin-sdk/helper/validation" - "github.com/terraform-providers/terraform-provider-okta/sdk" ) var (