-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathCreateAzureADApplication.ps1
66 lines (55 loc) · 3.23 KB
/
CreateAzureADApplication.ps1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
$authResult = Connect-AzureAD
$tenantId = $authResult.TenantId.ToString()
$tenantDomain = $authResult.TenantDomain
$userAccountId = $authResult.Account.Id
$user = Get-AzureADUser -ObjectId $userAccountId
$appDisplayName = "User-Owns-Data Sample App"
$replyUrl = "https://localhost:44300/signin-oidc"
# create app secret
$newGuid = New-Guid
$appSecret = ([System.Convert]::ToBase64String([System.Text.Encoding]::UTF8.GetBytes(($newGuid))))+"="
$startDate = Get-Date
$passwordCredential = New-Object -TypeName Microsoft.Open.AzureAD.Model.PasswordCredential
$passwordCredential.StartDate = $startDate
$passwordCredential.EndDate = $startDate.AddYears(1)
$passwordCredential.KeyId = $newGuid
$passwordCredential.Value = $appSecret
# create Azure AD Application
$aadApplication = New-AzureADApplication `
-DisplayName $appDisplayName `
-PublicClient $false `
-AvailableToOtherTenants $false `
-ReplyUrls @($replyUrl) `
-Homepage $replyUrl `
-PasswordCredentials $passwordCredential
# create applicaiton's service principal
$appId = $aadApplication.AppId
$appObjectId = $aadApplication.ObjectId
Write-Host "appObjectId: $appObjectId"
# assign current user as owner
Add-AzureADApplicationOwner -ObjectId $aadApplication.ObjectId -RefObjectId $user.ObjectId
$outputFile = "$PSScriptRoot\UserOwnsDataSampleApp.txt"
Write-Host "Writing info to $outputFile"
Out-File -FilePath $outputFile -Append -InputObject "{"
Out-File -FilePath $outputFile -Append -InputObject " ""AzureAd"": {"
Out-File -FilePath $outputFile -Append -InputObject " ""Instance"": ""https://login.microsoftonline.com/"","
Out-File -FilePath $outputFile -Append -InputObject " ""Domain"": ""$tenantDomain"","
Out-File -FilePath $outputFile -Append -InputObject " ""TenantId"": ""$tenantId"","
Out-File -FilePath $outputFile -Append -InputObject " ""ClientId"": ""$appId"","
Out-File -FilePath $outputFile -Append -InputObject " ""ClientSecret"": ""$appSecret"","
Out-File -FilePath $outputFile -Append -InputObject " ""CallbackPath"": ""/signin-oidc"","
Out-File -FilePath $outputFile -Append -InputObject " ""SignedOutCallbackPath"": ""/signout-callback-oidc"","
Out-File -FilePath $outputFile -Append -InputObject " },"
Out-File -FilePath $outputFile -Append -InputObject " ""PowerBi"": {"
Out-File -FilePath $outputFile -Append -InputObject " ""ServiceRootUrl"": ""https://api.powerbi.com/"""
Out-File -FilePath $outputFile -Append -InputObject " },"
Out-File -FilePath $outputFile -Append -InputObject " ""Logging"": {"
Out-File -FilePath $outputFile -Append -InputObject " ""LogLevel"": {"
Out-File -FilePath $outputFile -Append -InputObject " ""Default"": ""Information"","
Out-File -FilePath $outputFile -Append -InputObject " ""Microsoft"": ""Warning"","
Out-File -FilePath $outputFile -Append -InputObject " ""Microsoft.Hosting.Lifetime"": ""Information"""
Out-File -FilePath $outputFile -Append -InputObject " }"
Out-File -FilePath $outputFile -Append -InputObject " },"
Out-File -FilePath $outputFile -Append -InputObject " ""AllowedHosts"": ""*"""
Out-File -FilePath $outputFile -Append -InputObject "}"
Notepad $outputFile