https://github.com/ssbostan/terraform-provider-azuread
Terraform provider for Azure Active Directory
https://github.com/ssbostan/terraform-provider-azuread
Last synced: 4 months ago
JSON representation
Terraform provider for Azure Active Directory
- Host: GitHub
- URL: https://github.com/ssbostan/terraform-provider-azuread
- Owner: ssbostan
- License: mpl-2.0
- Created: 2023-02-19T23:03:38.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2023-02-20T00:24:20.000Z (over 2 years ago)
- Last Synced: 2025-01-11T09:21:51.227Z (9 months ago)
- Language: Go
- Size: 15.1 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Support: .github/SUPPORT.md
Awesome Lists containing this project
README
# Terraform Provider for Azure Active Directory
**NOTE:** Version 1.0 and above of this provider requires Terraform 0.12 or later.
- [Terraform Website](https://www.terraform.io)
- [AzureAD Provider Documentation](https://terraform.io/docs/providers/azuread/)
- [AzureAD Provider Usage Examples](https://github.com/hashicorp/terraform-provider-azuread/tree/main/examples)
- [Slack Workspace for Contributors](https://terraform-azure.slack.com) ([Request Invite](https://join.slack.com/t/terraform-azure/shared_invite/enQtNDMzNjQ5NzcxMDc3LWNiY2ZhNThhNDgzNmY0MTM0N2MwZjE4ZGU0MjcxYjUyMzRmN2E5NjZhZmQ0ZTA1OTExMGNjYzA4ZDkwZDYxNDE))## Usage Example
```
# Configure the Azure AD Provider
provider "azuread" {
version = "~> 1.0.0"# NOTE: Environment Variables can also be used for Service Principal authentication
# Terraform also supports authenticating via the Azure CLI too.
# see here for more info: https://terraform.io/docs/providers/azuread/# client_id = "..."
# client_secret = "..."
# tenant_id = "..."
}# Retrieve domain information
data "azuread_domains" "example" {
only_initial = true
}# Create an application
resource "azuread_application" "example" {
name = "ExampleApp"
}# Create a service principal
resource "azuread_service_principal" "example" {
application_id = azuread_application.example.application_id
}# Create a user
resource "azuread_user" "example" {
user_principal_name = "ExampleUser@${data.azuread_domains.example.domains.0.domain_name}"
display_name = "ExampleUser"
password = "..."
}
```Further [usage documentation](https://www.terraform.io/docs/providers/azuread/) is available on the Terraform website.
## Developer Requirements
- [Terraform](https://www.terraform.io/downloads.html) 0.12.x or later
- [Go](https://golang.org/doc/install) 1.16.x (to build the provider plugin)If you're building on Windows, you will also need:
- [Git Bash for Windows](https://git-scm.com/download/win)
- [Make for Windows](http://gnuwin32.sourceforge.net/packages/make.htm)For *GNU32 Make*, make sure its bin path is added to your PATH environment variable.
For *Git Bash for Windows*, at the step of "Adjusting your PATH environment", please choose "Use Git and optional Unix tools from Windows Command Prompt".
## Developing the Provider
If you wish to work on the provider, you'll first need [Go](http://www.golang.org) installed on your machine (version 1.16+ is *required*). You'll also need to correctly setup a [GOPATH](http://golang.org/doc/code.html#GOPATH), as well as adding `$GOPATH/bin` to your `$PATH`.
Clone the repository to: `$GOPATH/src/github.com/hashicorp/terraform-provider-azuread`
```sh
$ mkdir -p $GOPATH/src/github.com/terraform-providers; cd $GOPATH/src/github.com/terraform-providers
$ git clone https://github.com/hashicorp/terraform-provider-azuread
```Change to the clone directory and run `make tools` to install the dependent tooling needed to test and build the provider.
To compile the provider, run `make build`. This will build the provider and put the provider binary in the `$GOPATH/bin` directory.
```sh
$ make tools
...
$ make build
...
$ $GOPATH/bin/terraform-provider-azuread
...
```In order to test the provider, you can simply run `make test`.
```sh
$ make test
```The majority of tests in the provider are Acceptance Tests - which provisions real resources in Azure. It's possible to run the entire acceptance test suite by running `make testacc` - however it's likely you'll want to run a subset, which you can do using a prefix, by running:
```
make testacc TESTARGS='-run=TestAccApplication'
```The following ENV variables must be set in your shell prior to running acceptance tests:
- ARM_CLIENT_ID
- ARM_CLIENT_SECRET
- ARM_TENANT_ID
- ARM_TEST_LOCATION
- ARM_TEST_LOCATION_ALT*NOTE:* Acceptance tests create real resources, and may cost money to run.