Allow passing connection info as string params, better instructions

This commit is contained in:
Liam Steckler 2025-06-11 15:52:40 -07:00
parent 808ecb0eb2
commit 26fb2aaf53
3 changed files with 36 additions and 9 deletions

View file

@ -12,7 +12,7 @@
RootModule = 'AppleBusinessManager.psm1' RootModule = 'AppleBusinessManager.psm1'
# Version number of this module. # Version number of this module.
ModuleVersion = '1.0' ModuleVersion = '1.1'
# Supported PSEditions # Supported PSEditions
# CompatiblePSEditions = @() # CompatiblePSEditions = @()

View file

@ -1,13 +1,20 @@
#Requires -Version 7.0 #Requires -Version 7.0
#Requires -Module jwtPS #Requires -Module jwtPS
function Connect-AppleBusinessManager { function Connect-AppleBusinessManager {
[CmdletBinding(DefaultParameterSetName = 'EnvironmentVariable')]
param(
[string][Parameter(ParameterSetName = 'PrivateKeyAsString', Mandatory)]$ClientId,
[string][Parameter(ParameterSetName = 'PrivateKeyAsString', Mandatory)]$PrivateKey,
[string][Parameter(ParameterSetName = 'PrivateKeyAsString', Mandatory)]$PrivateKeyId
)
if ($PSCmdlet.ParameterSetName -eq 'EnvironmentVariable') {
if (-not $Env:AppleBusinessManagerClientId -or -not $Env:AppleBusinessManagerPrivateKeyId -or -not $Env:AppleBusinessManagerPrivateKey) { if (-not $Env:AppleBusinessManagerClientId -or -not $Env:AppleBusinessManagerPrivateKeyId -or -not $Env:AppleBusinessManagerPrivateKey) {
throw "Client ID, Private Key ID and Private Key environment variables were not set for Apple Business Manager" throw "Client ID, Private Key ID and Private Key environment variables were not set for Apple Business Manager"
} }
$Script:ClientId = $Env:AppleBusinessManagerClientId $Script:ClientId = $Env:AppleBusinessManagerClientId
$Script:PrivateKey = $Env:AppleBusinessManagerPrivateKey $Script:PrivateKey = $Env:AppleBusinessManagerPrivateKey
$Script:PrivateKeyId = $Env:AppleBusinessManagerPrivateKeyId $Script:PrivateKeyId = $Env:AppleBusinessManagerPrivateKeyId
}
$Header = @{ $Header = @{
'kid' = $Script:PrivateKeyId 'kid' = $Script:PrivateKeyId
} }

View file

@ -1,3 +1,23 @@
# Apple Business Manager API Module for PowerShell # Apple Business Manager API Module for PowerShell
To use this module, you'll need to convert the private key from Apple to a .NET friendly format: PowerShell Module that authenticates and gets data from the Apple Business Manager APIs
```openssl pkcs8 -topk8 -inform PEM -outform PEM -in [path to your key from Apple] -out [path to where you want to save the converted key] -nocrypt``` ## Installing the module
This module can be installed [from the PowerShell Gallery][powershell-gallery] using the following command:
```PowerShell
Install-Module -Name AMBPS
```
## Converting your private key
The private key that you can download from the Apple Business Manager portal isn't in a format that is currently supported. To use this module, you'll need to convert it, for example, using openssl:
```shell
openssl pkcs8 -topk8 -inform PEM -outform PEM -in FROM_APPLE_PATH.pem -out CONVERTED_PATH.pem -nocrypt
```
# Using the module
After converting, you can connect to Apple Business Manager's APIs with the following commands, then use other commands to retrieve data:
```PowerShell
$PrivateKey = (Get-Content -Path 'CONVERTED_PATH.pem') -join ''
Connect-AppleBusinessManager -ClientId 'YOUR_CLIENT_ID' -PrivateKey $PrivateKey -PrivateKeyId 'YOUR_PRIVATE_KEY_ID'
Get-AppleBusinessManagerOrgDevices
```
[powershell-gallery]: https://www.powershellgallery.com/packages/ABMPS/