@@ -53,3 +53,108 @@ resource "ise_certificate_authentication_profile" "certificate_authentication_pr
53
53
match_mode = try (each. value . match_mode , local. defaults . ise . identity_management . certificate_authentication_profiles . description , null )
54
54
username_from = try (each. value . username_from , local. defaults . ise . identity_management . certificate_authentication_profiles . description , null )
55
55
}
56
+
57
+ resource "ise_active_directory_join_point" "active_directory_join_point" {
58
+ for_each = { for ad in try (local. ise . identity_management . active_directories , []) : ad . name => ad if var . manage_identity_management }
59
+
60
+ name = each. key
61
+ description = try (each. value . description , local. defaults . ise . identity_management . active_directories . description , null )
62
+ domain = try (each. value . domain , local. defaults . ise . identity_management . active_directories . domain , null )
63
+ ad_scopes_names = try (each. value . ad_scopes_names , local. defaults . ise . identity_management . active_directories . ad_scopes_names , null )
64
+ enable_domain_allowed_list = try (each. value . enable_domain_allowed_list , local. defaults . ise . identity_management . active_directories . enable_domain_allowed_list , null )
65
+ groups = []
66
+ attributes = [for attr in try (each. value . attributes , []) : {
67
+ name = try (attr. name , null )
68
+ type = try (attr. type , local. defaults . ise . identity_management . active_directories . attributes . type , null )
69
+ internal_name = try (attr. internal_name , local. defaults . ise . identity_management . active_directories . attributes . internal_name , null )
70
+ default_value = try (attr. default_value , local. defaults . ise . identity_management . active_directories . attributes . default_value , null )
71
+ }]
72
+ rewrite_rules = [for rule in try (each. value . rewrite_rules , []) : {
73
+ row_id = try (rule. row_id , local. defaults . ise . identity_management . active_directories . rewrite_rules . row_id , null )
74
+ rewrite_match = try (rule. rewrite_match , local. defaults . ise . identity_management . active_directories . rewrite_rules . rewrite_match , null )
75
+ rewrite_result = try (rule. rewrite_result , local. defaults . ise . identity_management . active_directories . rewrite_rules . rewrite_result , null )
76
+ }]
77
+ enable_rewrites = try (each. value . enable_rewrites , local. defaults . ise . identity_management . active_directories . enable_rewrites , null )
78
+ enable_pass_change = try (each. value . enable_pass_change , local. defaults . ise . identity_management . active_directories . enable_pass_change , null )
79
+ enable_machine_auth = try (each. value . enable_machine_auth , local. defaults . ise . identity_management . active_directories . enable_machine_auth , null )
80
+ enable_machine_access = try (each. value . enable_machine_access , local. defaults . ise . identity_management . active_directories . enable_machine_access , null )
81
+ enable_dialin_permission_check = try (each. value . enable_dialin_permission_check , local. defaults . ise . identity_management . active_directories . enable_dialin_permission_check , null )
82
+ plaintext_auth = try (each. value . plaintext_auth , local. defaults . ise . identity_management . active_directories . plaintext_auth , null )
83
+ aging_time = try (each. value . aging_time , local. defaults . ise . identity_management . active_directories . aging_time , null )
84
+ enable_callback_for_dialin_client = try (each. value . enable_callback_for_dialin_client , local. defaults . ise . identity_management . active_directories . enable_callback_for_dialin_client , null )
85
+ identity_not_in_ad_behaviour = try (each. value . identity_not_in_ad_behaviour , local. defaults . ise . identity_management . active_directories . identity_not_in_ad_behaviour , null )
86
+ unreachable_domains_behaviour = try (each. value . unreachable_domains_behaviour , local. defaults . ise . identity_management . active_directories . unreachable_domains_behaviour , null )
87
+ schema = try (each. value . schema , local. defaults . ise . identity_management . active_directories . schema , null )
88
+ first_name = try (each. value . first_name , local. defaults . ise . identity_management . active_directories . first_name , null )
89
+ department = try (each. value . department , local. defaults . ise . identity_management . active_directories . department , null )
90
+ last_name = try (each. value . last_name , local. defaults . ise . identity_management . active_directories . last_name , null )
91
+ organizational_unit = try (each. value . organizational_unit , local. defaults . ise . identity_management . active_directories . organizational_unit , null )
92
+ job_title = try (each. value . job_title , local. defaults . ise . identity_management . active_directories . job_title , null )
93
+ locality = try (each. value . locality , local. defaults . ise . identity_management . active_directories . locality , null )
94
+ email = try (each. value . email , local. defaults . ise . identity_management . active_directories . email , null )
95
+ state_or_province = try (each. value . state_or_province , local. defaults . ise . identity_management . active_directories . state_or_province , null )
96
+ telephone = try (each. value . telephone , local. defaults . ise . identity_management . active_directories . telephone , null )
97
+ country = try (each. value . country , local. defaults . ise . identity_management . active_directories . country , null )
98
+ street_address = try (each. value . street_address , local. defaults . ise . identity_management . active_directories . street_address , null )
99
+ enable_failed_auth_protection = try (each. value . enable_failed_auth_protection , local. defaults . ise . identity_management . active_directories . enable_failed_auth_protection , null )
100
+ failed_auth_threshold = try (each. value . failed_auth_threshold , local. defaults . ise . identity_management . active_directories . failed_auth_threshold , null )
101
+ auth_protection_type = try (each. value . auth_protection_type , local. defaults . ise . identity_management . active_directories . auth_protection_type , null )
102
+ }
103
+
104
+ resource "ise_active_directory_join_domain_with_all_nodes" "active_directory_join_domain_with_all_nodes" {
105
+ for_each = { for ad in try (local. ise . identity_management . active_directories , []) : ad . name => ad if var . manage_identity_management }
106
+
107
+ join_point_id = ise_active_directory_join_point. active_directory_join_point [each . key ]. id
108
+ additional_data = [
109
+ {
110
+ name = " username"
111
+ value = try (each. value . ad_username , local. defaults . ise . identity_management . active_directories . ad_username , null )
112
+ },
113
+ {
114
+ name = " password"
115
+ value = try (each. value . ad_password , local. defaults . ise . identity_management . active_directories . ad_password , null )
116
+ }
117
+ ]
118
+
119
+ depends_on = [ise_active_directory_join_point . active_directory_join_point ]
120
+ }
121
+
122
+ data "ise_active_directory_groups_by_domain" "all_groups" {
123
+ for_each = { for ad in try (local. ise . identity_management . active_directories , []) : ad . name => ad if var . manage_identity_management }
124
+
125
+ join_point_id = ise_active_directory_join_point. active_directory_join_point [each . key ]. id
126
+ domain = try (each. value . domain , local. defaults . ise . identity_management . active_directories . domain , null )
127
+
128
+ depends_on = [ise_active_directory_join_point . active_directory_join_point , ise_active_directory_join_domain_with_all_nodes . active_directory_join_domain_with_all_nodes ]
129
+ }
130
+
131
+ locals {
132
+ active_directory_groups_all = {
133
+ for k , v in data . ise_active_directory_groups_by_domain . all_groups :
134
+ k = > { for group in v . groups : group . name => group } if var . manage_identity_management
135
+ }
136
+
137
+ active_directory_groups = {
138
+ for ad in try (local. ise . identity_management . active_directories , []) : ad . name => [
139
+ for group in ad . groups : {
140
+ name = group
141
+ type = try (local. active_directory_groups_all [ad . name ][group ]. type , null )
142
+ sid = try (local. active_directory_groups_all [ad . name ][group ]. sid , null )
143
+ }
144
+ ] if var . manage_identity_management
145
+ }
146
+ }
147
+
148
+ resource "ise_active_directory_add_groups" "active_directory_groups" {
149
+ for_each = { for ad in try (local. ise . identity_management . active_directories , []) : ad . name => ad if var . manage_identity_management }
150
+
151
+ join_point_id = ise_active_directory_join_point. active_directory_join_point [each . key ]. id
152
+ name = ise_active_directory_join_point. active_directory_join_point [each . key ]. name
153
+ description = ise_active_directory_join_point. active_directory_join_point [each . key ]. description
154
+ domain = ise_active_directory_join_point. active_directory_join_point [each . key ]. domain
155
+ ad_scopes_names = ise_active_directory_join_point. active_directory_join_point [each . key ]. ad_scopes_names
156
+ enable_domain_allowed_list = ise_active_directory_join_point. active_directory_join_point [each . key ]. enable_domain_allowed_list
157
+ groups = try (local. active_directory_groups [each . key ], local. defaults . ise . identity_management . active_directories . groups , null )
158
+
159
+ depends_on = [ise_active_directory_join_point . active_directory_join_point , ise_active_directory_join_domain_with_all_nodes . active_directory_join_domain_with_all_nodes ]
160
+ }
0 commit comments