Skip to content

Commit 4bed11e

Browse files
Unified directory tenant ID retrieval
1 parent 8e8b809 commit 4bed11e

5 files changed

Lines changed: 40 additions & 10 deletions

File tree

ComputeAdmin/README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ As a prerequisite, you need to obtain the Windows Server 2016 Evaluation ISO whi
4040
You will need to reference your Azure Stack Administrator environment. To create an administrator environment use the below. The ARM endpoint below is the administrator default for a one-node environment.
4141

4242
```powershell
43-
Add-AzureStackAzureRmEnvironment -Name "AzureStackAdmin" -ArmEndpoint "https://adminmanagement.local.azurestack.external" -AadTenant $aadTenant
43+
Add-AzureStackAzureRmEnvironment -Name "AzureStackAdmin" -ArmEndpoint "https://adminmanagement.local.azurestack.external"
4444
```
4545

4646
An example usage is the following:
@@ -74,7 +74,7 @@ Please note that to use this image for **installing additional Azure Stack servi
7474
You will need to reference your Azure Stack Administrator environment. To create an administrator environment use the below. The ARM endpoint below is the administrator default for a one-node environment.
7575

7676
```powershell
77-
Add-AzureStackAzureRmEnvironment -Name "AzureStackAdmin" -ArmEndpoint "https://adminmanagement.local.azurestack.external" -AadTenant $aadTenant
77+
Add-AzureStackAzureRmEnvironment -Name "AzureStackAdmin" -ArmEndpoint "https://adminmanagement.local.azurestack.external"
7878
```
7979

8080
```powershell
@@ -97,7 +97,7 @@ Run the below command to remove an uploaded VM image. After removal, tenants wil
9797
You will need to reference your Azure Stack Administrator environment. To create an administrator environment use the below. The ARM endpoint below is the administrator default for a one-node environment.
9898

9999
```powershell
100-
Add-AzureStackAzureRmEnvironment -Name "AzureStackAdmin" -ArmEndpoint "https://adminmanagement.local.azurestack.external" -AadTenant $aadTenant
100+
Add-AzureStackAzureRmEnvironment -Name "AzureStackAdmin" -ArmEndpoint "https://adminmanagement.local.azurestack.external"
101101
```
102102

103103
```powershell
@@ -110,7 +110,7 @@ Note: This cmdlet will remove the associated Marketplace item unless the -KeepMa
110110
You will need to reference your Azure Stack Administrator environment. To create an administrator environment use the below. The ARM endpoint below is the administrator default for a one-node environment.
111111

112112
```powershell
113-
Add-AzureStackAzureRmEnvironment -Name "AzureStackAdmin" -ArmEndpoint "https://adminmanagement.local.azurestack.external" -AadTenant $aadTenant
113+
Add-AzureStackAzureRmEnvironment -Name "AzureStackAdmin" -ArmEndpoint "https://adminmanagement.local.azurestack.external"
114114
```
115115
An example usage is the following:
116116

@@ -125,7 +125,7 @@ Add-VMExtension -publisher "Publisher" -type "Type" -version $version -extension
125125
You will need to reference your Azure Stack Administrator environment. To create an administrator environment use the below. The ARM endpoint below is the administrator default for a one-node environment.
126126

127127
```powershell
128-
Add-AzureStackAzureRmEnvironment -Name "AzureStackAdmin" -ArmEndpoint "https://adminmanagement.local.azurestack.external" -AadTenant $aadTenant
128+
Add-AzureStackAzureRmEnvironment -Name "AzureStackAdmin" -ArmEndpoint "https://adminmanagement.local.azurestack.external"
129129
```
130130
Run the below command to remove an uploaded VM extension.
131131

@@ -147,7 +147,7 @@ VM Scale Set allows deployment of multi-VM collections. To add a gallery item wi
147147
$Tenant = "<AAD Tenant Id used to connect to AzureStack>"
148148
$Arm = "<AzureStack administrative Azure Resource Manager endpoint URL>"
149149
150-
Add-AzureStackAzureRmEnvironment -Name AzureStackAdmin -ArmEndpoint $Arm -AadTenant $Tenant
150+
Add-AzureStackAzureRmEnvironment -Name AzureStackAdmin -ArmEndpoint $Arm
151151
152152
$Password = ConvertTo-SecureString -AsPlainText -Force "<your AzureStack admin user password>"
153153
$User = "<your AzureStack admin user name>"

Connect/AzureStack.Connect.psm1

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -370,3 +370,33 @@ function Get-AADTenantGUID () {
370370
}
371371

372372
Export-ModuleMember Get-AADTenantGUID
373+
374+
function Get-DirectoryTenantID () {
375+
[CmdletBinding(DefaultParameterSetName='AzureActiveDirectory')]
376+
param(
377+
[Parameter(Mandatory=$true, ParameterSetName='ADFS')]
378+
[switch] $ADFS,
379+
380+
[parameter(mandatory=$true,ParameterSetName='AzureActiveDirectory', HelpMessage="AAD Directory Tenant <myaadtenant.onmicrosoft.com>")]
381+
[string] $AADTenantName = "",
382+
383+
[Parameter(Mandatory=$true, ParameterSetName='ADFS')]
384+
[Parameter(Mandatory=$true, ParameterSetName='AzureActiveDirectory')]
385+
[string] $EnvironmentName
386+
)
387+
388+
$ADauth = (Get-AzureRmEnvironment -Name $EnvironmentName).ActiveDirectoryAuthority
389+
if($ADFS -eq $true){
390+
if(-not (Get-AzureRmEnvironment -Name $EnvironmentName).EnableAdfsAuthentication){
391+
Write-Error "This environment is not configured to do ADFS authentication." -ErrorAction Stop
392+
}
393+
return $(Invoke-RestMethod $("{0}/.well-known/openid-configuration" -f $ADauth.TrimEnd('/'))).issuer.TrimEnd('/').Split('/')[-1]
394+
}else{
395+
$endpt = "{0}{1}/.well-known/openid-configuration" -f $ADauth, $AADTenantName
396+
$OauthMetadata = (Invoke-WebRequest -UseBasicParsing $endpt).Content | ConvertFrom-Json
397+
$AADid = $OauthMetadata.Issuer.Split('/')[3]
398+
$AADid
399+
}
400+
}
401+
402+
Export-ModuleMember Get-DirectoryTenantID

Connect/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,13 +89,13 @@ $AadTenant = Get-AzureStackAadTenant -HostComputer <Host IP Address> -Password
8989
To target your Azure Stack instance as a tenant, an AzureRM environment needs to be registered as follows. The ARM endpoint below is the tenant default for a one-node environment.
9090

9191
```powershell
92-
Add-AzureStackAzureRmEnvironment -Name AzureStack -ArmEndpoint "https://management.local.azurestack.external" -AadTenant $aadTenant
92+
Add-AzureStackAzureRmEnvironment -Name AzureStack -ArmEndpoint "https://management.local.azurestack.external"
9393
```
9494

9595
To create an administrator environment use the below. The ARM endpoint below is the administrator default for a one-node environment.
9696

9797
```powershell
98-
Add-AzureStackAzureRmEnvironment -Name AzureStackAdmin -ArmEndpoint "https://adminmanagement.local.azurestack.external" -AadTenant $aadTenant
98+
Add-AzureStackAzureRmEnvironment -Name AzureStackAdmin -ArmEndpoint "https://adminmanagement.local.azurestack.external"
9999
```
100100

101101
After registering the AzureRM environment, cmdlets can be easily targeted at your Azure Stack instance. For example:

Infrastructure/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ Import-Module .\AzureStack.Infra.psm1
2121
Import-Module .\AzureStack.Connect.psm1
2222
$Password = ConvertTo-SecureString "<Admin password provided when deploying Azure Stack>" -AsPlainText -Force
2323
$AadTenant = Get-AzureStackAadTenant -HostComputer <Host IP Address> -Password $Password
24-
Add-AzureStackAzureRmEnvironment -AadTenant $AadTenant -Name "AzureStackAdmin" -ArmEndpoint "https://adminmanagement.local.azurestack.external"
24+
Add-AzureStackAzureRmEnvironment -Name "AzureStackAdmin" -ArmEndpoint "https://adminmanagement.local.azurestack.external"
2525
Login-AzureRmAccount -EnvironmentName "AzureStackAdmin" -TenantId $AadTenant
2626
```
2727

ServiceAdmin/README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ $AadTenant = Get-AzureStackAadTenant -HostComputer <Host IP Address> -Password
3737
You will need to reference your Azure Stack Administrator environment. To create an administrator environment use the below. The ARM endpoint below is the administrator default for a one-node environment.
3838

3939
```powershell
40-
Add-AzureStackAzureRmEnvironment -Name "AzureStackAdmin" -ArmEndpoint "https://adminmanagement.local.azurestack.external" -AadTenant $aadTenant
40+
Add-AzureStackAzureRmEnvironment -Name "AzureStackAdmin" -ArmEndpoint "https://adminmanagement.local.azurestack.external"
4141
```
4242

4343
```powershell

0 commit comments

Comments
 (0)