Using Azure Resource Manager when microsoft AD graph is almost EOF - azure

I'm writing an application that needs to create service principals and grant them permissions to read/write to an Azure event hub.
Currently, I'm using the Java SDK (azure-resourcemanager) to create service principals and assign roles.
I have noticed that both az CLI and java SDK are calling the Azure AD Graph endpoints.
To my best understanding, the Azure AD Graph is reaching EOF soon. does this mean I need to replace my java code, or will the java code implementations be adjusted to the newer Microsoft graph API?
I have looked at the Microsoft Graph java sdk and it seems less mature and less intuitive to use than AzureResourceManager (which its API is much more similar to other Azure java SDKs)
Can anyone from the Azure team help with that?

You don't need to make the change currently.
If AAD Graph is retired, SDKs that rely on AAD Graph are bound to reintegrate with new APIs (most likely MS Graph) or Microsoft will release new SDKs(This is less likely, because the customer’s existing code will be changed significantly).
Besides, Microsoft Graph mainly manages AAD resources. See the samples here: Create servicePrincipal.
If you need to assign RBAC role you still need to look into other SDKs.

As Allen mentioned, the likely scenario will be that certain future version of azure-resourcemanager would change to use MS graph internally for cases like creating a service principal, while keeping backward-combability on user-facing APIs (i.e., .servicePincipals().define(NAME)...create()).
The RBAC part will likely not impacted. Only the object ID of the service principal is required for RBAC, regardless of how that service principal is created/retrieved (via AAD graph or MS graph).
Currently it is not planned when this will happen.
Happened in 2.2.0 version.

Related

Implementing PAM for both on-prem and Azure AD

We have an Azure AD tenant and on-prem AD and use AD Connect to keep them in sync. I'm told that I can leverage Azure AD to implement PAM on-prem but can't find any approach on how to do this, step by step. We also do not want to use MIM since it's already at EOL and would like to avoid using another 3rd party tool.
On-prem it is no problem for us to set up the second bastion forest but we don't know how Azure AD would be able to work with this.
Thanks!
MIM (formerly Forefront Identity Manager, and Identity Lifecycle Manager before that) is a widely used service for managing user lifecycles and access rights in Active Directory.Right now, it is moving into well-earned retirement phase.
In simple terms, yes. It is no longer actively developed by Microsoft. Mainstream support for MIM ended in January 2021. Azure AD Premium customers can get extended support until 2026.
The closest replacement is, Azure AD. It has a range of features that enable simple identity and access management for internal and external users.
Azure AD is the closest substitute. By adding third-party tools you can easily replace all of MIM’s features, and add many new ones.
Note these functionalities are only available at the Azure AD Premium P2 license level.
Would suggest you follow this link to get it apply: https://www.predicagroup.com/blog/azure-ad-identity-governance/
Or you can reach out to their MS support for information or predicagorup support as well.
Here are the first steps to developing your MIM migration roadmap:
Review your MIM implementation. What are the key functionalities you use and need to migrate?
Reduce the dependency on MIM 2016 infrastructure by implementing the quick wins listed above
Consider Azure AD Identity Governance for simple governance of your cloud resources.
Enable SSO for on-premises and SaaS applications with Azure AD SSO
Evaluate Omada Identity for hybrid access governance. Start by introducing the key elements alongside your MIM implementation.

Can the Graph API be a substitute for the Azure Portal?

This is more of an 'Is this possible' question. A developer on the team suggested using Azure AD for user management, but one of the requirements is that the app admin be able to add/manage user access through the application without having to go to the Azure Portal.
So the question is, is the Graph API (or some other mechanism) full featured enough to replace the portal (at least for basic user set up and management) and allow all actions to be done from the application UI?
Thanks.
Simple answer to your question is Yes. Graph API can be used to manage users and their access to applications instead of using Azure Portal. In fact, Azure Portal itself makes use of Graph API to perform these operations.
You may also need to use Azure REST API if you're planning on managing Azure resources as well through this custom application especially Authorization APIs if you want to manage access to Azure resources (Azure Role-based access control) through your application.

How do you set up app with permissions to Azure Compute API

I am creating an API client for Azure Compute. I want the ability to start/stop/restart my Azure virtual machines.
In the past when I've created apps using the Graph API, I created a new app registration and then gave the app permissions for the actions I wanted under 'Microsoft Graph API' permissions list.
However, I cannot find Azure Compute listed in the available Microsoft APIs. I'm confused as to what I need to do in order to get API permissions for Azure compute as opposed to some of the other APIs.
I've spent the morning searching for tutorials or example implementations to look through, but combinations of Azure/Compute/API/permissions/etc... don't seem to ever come up with the results that I'm looking for.
Has anyone done something like this? Is it possible to use application permissions for Azure compute or is it entirely separate? Will it require a service account instead?
However, I cannot find Azure Compute listed in the available Microsoft
APIs. I'm confused as to what I need to do in order to get API
permissions for Azure compute as opposed to some of the other APIs.
The API you're looking for is Azure Service Management.
Once you add this delegated permission, you will be able to perform operations on your Virtual Machines provided your Service Principal is assigned an appropriate role (Virtual Machine Contributor, for example) in an Azure Subscription.
You can assign the App an RBAC role as though it were a user that you were giving permission to restart VMs. For example, you could go to the resource group that contains the VM, then go to Access Control (IAM) -> Add Role Assignment -> Add the app registration to the Contributor role.

How to renew Azure resources privilege identity management roles programmatically

I have a requirement to automate renewal of all the soon to be expiring azure resources PIM role but it seems there is no PowerShell module available at this moment for the PIM.
I also tried exploring rest api option but it appears that there is no rest end point available but I found graph api endpoints which seems to be supporting this feature but as per Microsoft documentation it doesn't support access via service principal so not sure how to proceed further on this.
Did anyone try this before, any suggestion?

Azure AD as a multitenant identity provider

I am trying to make my way through a lot of Azure documentation on multitenant identity management, for a bespoke ASP.NET MVC SaaS site. It is difficult as it seems that a lot of the online examples and articles are now outdated and not applicable to latest VS templates, and other vague aspects, such as determining what is Preview and what is not. Also, MS tend to use the word "multitenant" when specifically dealing with partner companies who have their own Azure AD, which is not our case.
Our proposed system will offer a web application to different customers. The backend will have a separate db per customer (tenant). The front end will select which db connection (and probably use impersonation) depending on the logged in user. The identity management would preferably be offloaded to Azure ACS, so that in future if we want to integrate with corporations with their own Federation identity provider we can, but for those smaller companies that don't have their own domain, we want to create accounts on their behalf.
I am thinking that a good way to do this is by using Azure ACS (for federating with corporate customers) and a general Azure AD directory (for everyone else), where in the second case I create a group per tenant (customer). Then, in Azure ACS, I translate all claims, either the group from my own AD, or the company name from the federated identity provider, and use that in the MVC app to establish the tenant.
Is this an OK way to do it? Am I overlooking some standard, simple way that Azure already offers? Is this future proof wrt to the Azure roadmap?
for the latest multi tenant samples please see https://github.com/Azure-samples?utf8=%E2%9C%93&query=multiten. We are about to release more documentation on how to handle multi tenancy in Azure AD. I would strongly advise against using ACS in any new project, given that we are no longer adding any features and we are actively working on migrating functionality from ACS to Azure AD. See http://blogs.technet.com/b/ad/archive/2015/02/12/the-future-of-azure-acs-is-azure-active-directory.aspx for more details.

Resources