I’ve been using Azure Runbooks for a long time now, but when you want to ‘really’ use them in an enterprise environment, they simply do not suffice. Vote for this suggestion if you feel same:
Okta natively does not allow you to sync users to Office 365 contacts; they either exist as users in Office 365, or they don’t exist at all.
In hybrid scenarios where you are doing a staged migration to Office 365, or where you simply manage your contacts in Okta, you may want to populate the Global Address List in Office 365 with your Okta users.
I’ve written a simple solution for this, you will require:
While playing around with PHP (experimental support) in Azure Functions, I noticed that there is no documentation yet and very few examples, so here’s my first simple example on how to build an Azure Function using PHP to parse a very simple GET request.
I’m assuming you’ve set up your function, go into Files and edit the function.json file:
This post describes how you can use the WIX Toolkit or any DLL file in an Azure Function, in this case to edit an MSI file on the fly. The WIX Toolkit is free, but only runs on Windows. Azure Functions run on Windows too, isn’t that nice 🙂
So, an example use case could be my OnedriveMapper MSI file, which is installed with a configuration GUID property by an admin to customize OnedriveMapper. If that GUID was already in the MSI, no such parameter would be necessary.
Using an Azure function in a download link or http request, we could insert a GUID on the fly and create personalized MSI files on demand.
I’ll leave other applications to your imagination, let’s get started!
Azure has a very nice feature called ‘Dynamic Groups‘. We use these in our customer tenants to dynamically generate a group with actual users, excluding Guest accounts (marked with #EXT#).
As I couldn’t find any articles detailing how to create a Dynamic Group through the Graph API, I’m posting this for whoever it helps 🙂
$dynamicGroupProperties = @{
"description" = "Dynamic Group Created through the Graph API";
"displayName" = "Dynamic Group Created through the Graph API";
"groupTypes" = @("DynamicMembership");
"mailEnabled" = $False;
"mailNickname" = "testnickname";
"membershipRule" = "(user.userPrincipalName -notContains `"#EXT#@`") -and (user.userType -ne `"Guest`")";
"membershipRuleProcessingState" = "On";
"securityEnabled" = $True
}
invoke-webrequest -Headers $headerParams -uri "https://graph.microsoft.com/beta/groups" -Body (ConvertTo-Json $dynamicGroupProperties) -method POST -Verbose