Advertise with Googlier.com
Steve Spencer's BlogBlogging on Azure Stuff
http://blogs.recneps.net/
http://www.rssboard.org/rss-specificationBlogEngine.NET 2.9.1.0en-UShttp://blogs.recneps.net/opml.axdhttp://www.dotnetblogengine.net/syndication.axdSteve SpencerSteve Spencer's Blog0.0000000.000000Using Azure DevOps to deploy to an Azure Function Deployment slot<h4>What is a deployment slot</h4><p>A deployment slot is effectively another Azure function that is linked to your production instance. A deployment slot allows you to deploy your function to the slot and be able to test it separately to the production instance. It will have its own url and access key. When you are happy with the function you can then make it live by swapping the production and staging slots. The deployment in production becomes staging and the deployment in staging becomes production. This means that if there are issues with the new deployment you can easily revert back by performing another swap. There is minimal downtime during the swap and is quicker than a direct deploy to production. You can use Azure DevOps to deploy your new changes to the staging slot instead of production and then perform either a manual or automatic swap to production. </p><h4>Creating a deployment slot</h4><p>In Azure portal. Navigate to your Azure function and click on “Deployment slots” then “Add slot”<p><a href="http://blogs.recneps.net/image.axd?picture=clip_image002_5.png"><img width="641" height="264" title="clip_image002" style="display: inline; background-image: none;" alt="clip_image002" src="http://blogs.recneps.net/image.axd?picture=clip_image002_thumb_5.png" border="0"></a><p>Enter the name of your new slot. Note : You can have more than one slot if you wish and each one can be deployed to separately.<p><a href="http://blogs.recneps.net/image.axd?picture=image_276.png"><img width="513" height="428" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_275.png" border="0"></a><p>You now have a new slot and you can manually deploy to the slot from Visual studio as you have been doing with your current production slot.<h4>Creating a Release Pipeline to deploy to the slot</h4><p>In Azure DevOps click on “Pipelines” then “Releases”<p><a href="http://blogs.recneps.net/image.axd?picture=image_277.png"><img width="749" height="392" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_276.png" border="0"></a><p>Click “New pipeline” and search for “function”<p><a href="http://blogs.recneps.net/image.axd?picture=image_278.png"><img width="582" height="363" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_277.png" border="0"></a><p>Select “Deploy a function app to Azure Functions with slot”. A new pipeline will be created<p><a href="http://blogs.recneps.net/image.axd?picture=image_279.png"><img width="588" height="320" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_278.png" border="0"></a><p>Close the dialog that appears and click on the Stage 1 link<p><a href="http://blogs.recneps.net/image.axd?picture=image_280.png"><img width="590" height="346" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_279.png" border="0"></a><p>I generally do not want to automatically swap to production immediately so you can delete the second task by right clicking on the “Function App – Slot Swap” and selecting “Remove selected task(s)”<p><a href="http://blogs.recneps.net/image.axd?picture=image_281.png"><img width="590" height="431" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_280.png" border="0"></a><p>Now you should be left with just the deployment task. Select the Azure subscription where your current function app is deployed and select all the other properties relating to the function app and staging slot<p><a href="http://blogs.recneps.net/image.axd?picture=image_282.png"><img width="591" height="354" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_281.png" border="0"></a><p><a href="http://blogs.recneps.net/image.axd?picture=image_283.png"><img width="598" height="328" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_282.png" border="0"></a><p>Now we need to tell the release what build we want it to use to deploy. Click on “Pipeline” then click “Add an artifact”<p><a href="http://blogs.recneps.net/image.axd?picture=image_284.png"><img width="597" height="414" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_283.png" border="0"></a><p>Pick the correct build from the drop down<p><a href="http://blogs.recneps.net/image.axd?picture=image_285.png"><img width="603" height="338" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_284.png" border="0"></a><p>If you want to make this deploy automatically after each build is completed click the little lightening icon on the artifact<p><a href="http://blogs.recneps.net/image.axd?picture=image_286.png"><img width="609" height="433" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_285.png" border="0"></a><p>Click to enable the continuous deployment trigger.<p><a href="http://blogs.recneps.net/image.axd?picture=image_287.png"><img width="611" height="295" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_286.png" border="0"></a><p>Then click “Save”<p><a href="http://blogs.recneps.net/image.axd?picture=image_288.png"><img width="615" height="287" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_287.png" border="0"></a><p>To test this out, click “Create release”<p><a href="http://blogs.recneps.net/image.axd?picture=clip_image026.png"><img width="612" height="222" title="clip_image026" style="display: inline; background-image: none;" alt="clip_image026" src="http://blogs.recneps.net/image.axd?picture=clip_image026_thumb.png" border="0"></a><p>Then “Create”<p><a href="http://blogs.recneps.net/image.axd?picture=image_289.png"><img width="619" height="399" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_288.png" border="0"></a><p>You should see a notification saying the release has been created. Clicking the link will take you to the release where you can see the status of the release deployment.<p><a href="http://blogs.recneps.net/image.axd?picture=image_290.png"><img width="619" height="481" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_289.png" border="0"></a><p><a href="http://blogs.recneps.net/image.axd?picture=image_291.png"><img width="618" height="500" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_290.png" border="0"></a><p><a href="http://blogs.recneps.net/image.axd?picture=image_292.png"><img width="623" height="486" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_291.png" border="0"></a><p>You may wish to rename your pipeline. Click “Edit”<p><a href="http://blogs.recneps.net/image.axd?picture=clip_image036_1.png"><img width="623" height="136" title="clip_image036" style="display: inline; background-image: none;" alt="clip_image036" src="http://blogs.recneps.net/image.axd?picture=clip_image036_thumb_1.png" border="0"></a><p>Then click the pencil to edit<p><a href="http://blogs.recneps.net/image.axd?picture=clip_image038.png"><img width="611" height="414" title="clip_image038" style="display: inline; background-image: none;" alt="clip_image038" src="http://blogs.recneps.net/image.axd?picture=clip_image038_thumb.png" border="0"></a><p>Enter the new name then click “Save”<p><a href="http://blogs.recneps.net/image.axd?picture=image_293.png"><img width="614" height="294" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_292.png" border="0"></a><p>Your release is now complete and should run each time a build is completed, deploying the latest artifacts from the build into the staging slot. Which is now ready for testing.<h4>Testing a Deployment Slot</h4><p>Back in the Azure portal, click “Deployment slots” on your Azure function.<p><a href="http://blogs.recneps.net/image.axd?picture=image_294.png"><img width="610" height="448" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_293.png" border="0"></a><p>Click on the “Staging” slot the click “Functions”<p><a href="http://blogs.recneps.net/image.axd?picture=image_295.png"><img width="612" height="359" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_294.png" border="0"></a><p>Click on the function you want to test<p><a href="http://blogs.recneps.net/image.axd?picture=image_296.png"><img width="611" height="350" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_295.png" border="0"></a><p>Then click “Get function url”<p><a href="http://blogs.recneps.net/image.axd?picture=image_297.png"><img width="605" height="229" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_296.png" border="0"></a><p>This will give you a url and key that will allow you to test and it is not linked to your production slot, although if your configuration is pointing to the same database as production it will connect through to that. <h4>Swapping slots</h4><p>Once you are happy with the deployment, you can manually swap the staging slot into production. Go back to the deployment slots blade in the Azure portal and click “Swap”<p><a href="http://blogs.recneps.net/image.axd?picture=image_298.png"><img width="588" height="367" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_297.png" border="0"></a><p>Select the slots you want to swap (assuming there are more that 2)<p><a href="http://blogs.recneps.net/image.axd?picture=image_299.png"><img width="412" height="616" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_298.png" border="0"></a><p>Click “Swap”.<p>Your two deployments will swap and the staging will now be live. If there are issues with staging and you need to revert, just click “Swap” again. Be aware that if you have a new build/release happening then the new release will overwrite the staging slot and therefore lose the old production deployment. It is possible to chain deployments so that the build triggers a deployment to the test environment and only triggers a release to production if the release have been manually triggered. It is also possible to have an approval step so that a production staging deploy can only happen once someone has approved it. Both these options will stop the old production instance being overwritten until you are ready for it.
http://blogs.recneps.net/post/Using-Azure-DevOps-to-deploy-to-an-Azure-Function-Deployment-slot
http://blogs.recneps.net/post/Using-Azure-DevOps-to-deploy-to-an-Azure-Function-Deployment-slot#commenthttp://blogs.recneps.net/post.aspx?id=d93e6ad8-82f7-4065-a759-f173880663f0Sat, 19 Mar 2022 09:59:20 +0000stevehttp://blogs.recneps.net/pingback.axdhttp://blogs.recneps.net/post.aspx?id=d93e6ad8-82f7-4065-a759-f173880663f04http://blogs.recneps.net/trackback.axd?id=d93e6ad8-82f7-4065-a759-f173880663f0http://blogs.recneps.net/post/Using-Azure-DevOps-to-deploy-to-an-Azure-Function-Deployment-slot#commenthttp://blogs.recneps.net/syndication.axd?post=d93e6ad8-82f7-4065-a759-f173880663f0Automating Azure AD Entitlement Management with Graph API<p>This post builds on two previous posts: one that <a href="http://blogs.recneps.net/post/Introduction-to-Azure-Entitlement-Management" target="_blank">introduced Entitlement Management</a> and the other that introduced the <a href="http://blogs.recneps.net/post/Using-the-Azure-Graph-API-Beta-to-add-an-Application-Role-Assignment" target="_blank">Beta version of Graph API</a>. I will show what is available within Entitlement Management for automating with Graph API.</p><p>The documentation for Graph API is <a href="https://docs.microsoft.com/en-us/graph/api/resources/entitlementmanagement-root?view=graph-rest-beta" target="_blank">here</a> and is currently in Beta so you will need to use the Beta libraries to access.</p><p>Let’s assume that you have already setup your access packages and want to make your own portal to allow users to select the packages they want. </p><p>You’ll want to list the packages that are available first to allow the user to pick the package they require. This can be done using the Access Packages endpoint</p><blockquote><p>GraphServiceClient graphClient = new GraphServiceClient( authProvider );</p>
<p>var accessPackages = await graphClient.IdentityGovernance.EntitlementManagement.AccessPackages<br> .Request()<br> .GetAsync();</p></blockquote><p>This will return a list of <a href="https://docs.microsoft.com/en-us/graph/api/resources/accesspackage?view=graph-rest-beta" target="_blank">access packages</a> the user can request access to. You will need to ensure that the user has been assigned the correct <a href="https://docs.microsoft.com/en-us/graph/api/accesspackage-list?view=graph-rest-beta&tabs=csharp#permissions" target="_blank">permissions</a>: EntitlementManagement.Read.All or EntitlementManagement.ReadWrite.All</p><p>Graph API will also allow the user to <a href="https://docs.microsoft.com/en-us/graph/api/resources/accesspackageassignmentrequest?view=graph-rest-beta" target="_blank">request access to a package</a>. For this the user will need to create a request using the Create accessPackageAssignment request</p><blockquote><p>GraphServiceClient graphClient = new GraphServiceClient( authProvider );</p>
<p>var accessPackageAssignmentRequest = new AccessPackageAssignmentRequestObject<br>
{<br> RequestType = "AdminRemove",<br> AccessPackageAssignment = new AccessPackageAssignment<br> {<br> Id = "a6bb6942-3ae1-4259-9908-0133aaee9377",<br> TargetId = "46184453-e63b-4f20-86c2-c557ed5d5df9",<br> AssignmentPolicyId = "2264bf65-76ba-417b-a27d-54d291f0cbc8"<br> }<br>
};</p>
<p>await graphClient.IdentityGovernance.EntitlementManagement.AccessPackageAssignmentRequests<br> .Request()<br> .AddAsync(accessPackageAssignmentRequest);</p></blockquote><p>The code above was modified from the <a href="https://docs.microsoft.com/en-us/graph/api/accesspackageassignmentrequest-post?view=graph-rest-beta&tabs=csharp#examples" target="_blank">examples</a> and more scenarios are available there too. </p><p>The following request types can be used:</p><ul><li>UserAdd</li><li>UserRemove</li><li>AdminAdd</li><li>AdminRemove</li><li>SystemRemove</li></ul><p>So the request can be used to add and remove assignments by either the User or an Admin.</p><p>You can view the assignments for a user by using the <a href="https://docs.microsoft.com/en-us/graph/api/accesspackageassignment-list?view=graph-rest-beta&tabs=csharp" target="_blank">Access Package assignment</a> endpoint:</p><blockquote><p>GraphServiceClient graphClient = new GraphServiceClient( authProvider );</p>
<p>var filterByCurrentUser = await graphClient.IdentityGovernance.EntitlementManagement.AccessPackageAssignments<br> .FilterByCurrentUser(AccessPackageAssignmentFilterByCurrentUserOptions.Target)<br> .Request()<br> .GetAsync();</p></blockquote><p>These end points should be enough to get you started with automating Entitlement management but there are more features that could be automated if you require them. All the resources that are currently available can be found in the <a href="https://docs.microsoft.com/en-us/graph/api/resources/entitlementmanagement-root?view=graph-rest-beta" target="_blank">Entitlement management API documentation</a></p>
http://blogs.recneps.net/post/Automating-Azure-AD-Entitlement-Management-with-Graph-API
http://blogs.recneps.net/post/Automating-Azure-AD-Entitlement-Management-with-Graph-API#commenthttp://blogs.recneps.net/post.aspx?id=d25c084f-a419-49d0-b083-0373f7fc14f0Tue, 28 Sep 2021 19:35:00 +0000Azure Graph APIAzure ADstevehttp://blogs.recneps.net/pingback.axdhttp://blogs.recneps.net/post.aspx?id=d25c084f-a419-49d0-b083-0373f7fc14f05http://blogs.recneps.net/trackback.axd?id=d25c084f-a419-49d0-b083-0373f7fc14f0http://blogs.recneps.net/post/Automating-Azure-AD-Entitlement-Management-with-Graph-API#commenthttp://blogs.recneps.net/syndication.axd?post=d25c084f-a419-49d0-b083-0373f7fc14f0Introduction to Azure Entitlement Management<p>In Previous posts I’ve talked about how to add applications to Azure AD for Single Sign On (<a href="http://blogs.recneps.net/post/Managing-Application-Access-with-Azure-AD-Part-1" target="_blank">Part 1</a>, <a href="http://blogs.recneps.net/post/Managing-Application-Access-with-Azure-AD-Part-2" target="_blank">Part 2</a>) and also how to <a href="http://blogs.recneps.net/post/Using-Graph-API-to-automate-Azure-AD" target="_blank">automate user management using Graph API</a> and also how to use Graph API to <a href="http://blogs.recneps.net/post/Using-the-Azure-Graph-API-Beta-to-add-an-Application-Role-Assignment" target="_blank">assign users to applications</a>. This post will be about how you can then manage the users access to the applications in a more controlled way and also how you can delegate some of that management to the teams that user them. </p><p>Azure Entitlement Management is an Azure AD service, part of Identity Governance, that allows applications and services to be packaged together to allow for simpler management. For example when a new member joins your team there is always a period of uncertainty about whether they have the access they require and it is not until they try to access a specific system that you find out that they need adding to a specific group, application or SharePoint site. This always takes time especially if you are a larger company and requires a ticket raising and often approval sought before the access will be granted, often losing a number of days before access is given. Identity governance allows all the groups, applications and sites to be packaged together in one or more access packages so that a new user can be assigned to one access package and subsequently be given access to the services they require.Requests to be allocated to an access package can be made by the user requiring access and approval workflows can be added if required.</p><p>This can also be extended to users outside of your organisation, whether they are collaborative users who are part of your team or whether the users are accessing the digital services provided by your organisation.For this the users will access using Azure AD B2B. Another feature of Identity Governance is access reviews. A users access can be periodically reviewed, either automatically or manually to determine whether the user still required access. If access is no longer required or the user does not respond within a certain timeframe then access can be revoked. Therefore allowing users to be managed in a more efficient manner and removing access when it is no longer required, which is especially useful if a user has left an external organisation and you were not informed.</p><p>There is a hierarchical structure to Entitlement Management starting with a Catalog. A catelog contains Resources that can be added to Access Packages. An access package contains a collection of Azure AD groups, Applications and SharePoint sites, along with rules determining which users are allowed to be assigned to the package and an associated approval workflow. Management of access packages can be delegate to a subset of users who are close to the teams and customers requiring access.</p><p>To create a Catelog, got to the Azure portal and click on or search for Identity Governance:</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_241.png"><img width="792" height="122" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_240.png" border="0"></a></p><p>The in the Entitlement Management section click “Catelogs”</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_242.png"><img width="297" height="496" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_241.png" border="0"></a></p><p>To create a new Catelog, click “New Catelog”</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_243.png"><img width="700" height="256" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_242.png" border="0"></a></p><p>Enter some information relating to the catelog and decide whether the Catelog is to be used by External users i.e. B2B users outside of your organisation:</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_244.png"><img width="315" height="658" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_243.png" border="0"></a></p><p>The catelog is a container for the resources you want to package and can also be used to delegate the administration and there are a number of different roles that can be applied. </p><p>To Add resources to the catelog, Open the catelog by clicking on it.</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_245.png"><img width="853" height="401" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_244.png" border="0"></a></p><p>Click on “Resources”, then “Add resources”</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_246.png"><img width="858" height="303" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_245.png" border="0"></a></p><p><a href="http://blogs.recneps.net/image.axd?picture=image_247.png"><img width="596" height="216" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_246.png" border="0"></a></p><p>In my example we will be adding a number of groups and a number of applications to the catelog:</p><p>Click on “Groups and teams”:</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_248.png"><img width="331" height="517" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_247.png" border="0"></a></p><p><a href="http://blogs.recneps.net/image.axd?picture=image_249.png"><img width="332" height="526" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_248.png" border="0"></a></p><p>Pick the groups you require and click Select. </p><p><a href="http://blogs.recneps.net/image.axd?picture=image_250.png"><img width="601" height="285" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_249.png" border="0"></a></p><p>Now click “Applications”</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_251.png"><img width="349" height="549" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_250.png" border="0"></a></p><p>And pick the applications you require.</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_252.png"><img width="614" height="676" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_251.png" border="0"></a></p><p>Click “Add”. Your resources are now assigned to the catelog. This has not provided any access to the resources, just added them to the catelog where they can be later added to one or more access packages.</p><p>You may now want to delegate some of the responsibility to managing the catelog. Roles can be assigned to users and details of the roles can be found <a href="https://docs.microsoft.com/en-us/azure/active-directory/governance/entitlement-management-delegate#entitlement-management-roles" target="_blank">here</a>. </p><p><a href="http://blogs.recneps.net/image.axd?picture=image_253.png"><img width="929" height="197" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_252.png" border="0"></a><p>You can see that you can assign users to the different roles, click the role you want to assign and select the users you wish to assign the role to:<p><a href="http://blogs.recneps.net/image.axd?picture=image_254.png"><img width="952" height="470" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_253.png" border="0"></a><p><br><p>You can see here that I’ve assigned the access package manager to Fred. This will allow him to create new access packages based upon the resources that have been assigned to the catelog. He will not be able to assign any other resources that are not in the catelog. Jane has been given the package manager assignment role. This will allow her to be able to assign users to the packages that were created by Fred.<p><a href="http://blogs.recneps.net/image.axd?picture=image_255.png"><img width="1115" height="185" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_254.png" border="0"></a><p>To Create an access package, click “Access Packages”, “New access package”<p><a href="http://blogs.recneps.net/image.axd?picture=image_256.png"><img width="1112" height="341" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_255.png" border="0"></a><p>Populate the form:<p><a href="http://blogs.recneps.net/image.axd?picture=image_257.png"><img width="719" height="510" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_256.png" border="0"></a><p>Click “Next:Resource roles”<p><a href="http://blogs.recneps.net/image.axd?picture=image_258.png"><img width="1173" height="233" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_257.png" border="0"></a><p>Assign the applications and groups you need and select the roles (if any have been configured)<p>Now you need to decide who is allowed to access these application<p><a href="http://blogs.recneps.net/image.axd?picture=image_259.png"><img width="798" height="847" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_258.png" border="0"></a><p>I’ve selected all users including guest users. Note, A guest user must first be invited into your Azure AD before they can request access to a package. I’ve clicked on the approval workflow. Now click “Add approvers” and select the users who are the approvers.<p>The next stage allows you to collect some data from the users to help the approvers determine whether access is allowed or not.<p><a href="http://blogs.recneps.net/image.axd?picture=image_260.png"><img width="1052" height="515" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_259.png" border="0"></a><p>The next page is all about the access lifecycle. This allows you to configure a duration to the access and whether an access review is required or not.<p><a href="http://blogs.recneps.net/image.axd?picture=image_261.png"><img width="598" height="828" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_260.png" border="0"></a><p>The last page allows you to review the configuration and then click Create.<p><a href="http://blogs.recneps.net/image.axd?picture=image_262.png"><img width="955" height="666" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_261.png" border="0"></a><p>Unfortunately, I didnt complete all the sections correctly:<p><a href="http://blogs.recneps.net/image.axd?picture=image_263.png"><img width="970" height="656" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_262.png" border="0"></a><p>Clicking on the items allows you to navigate back and fix your issues:<p>In Lifecycle, I didnt click on whether an access review is required or not:<p><a href="http://blogs.recneps.net/image.axd?picture=image_264.png"><img width="480" height="650" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_263.png" border="0"></a><p>Lets configure a quarterly access review:<p><a href="http://blogs.recneps.net/image.axd?picture=image_265.png"><img width="568" height="648" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_264.png" border="0"></a><p>The users will be notified every quarter and asked whether they still require access or not. When you have fixed all the issues, click “Create” <p><a href="http://blogs.recneps.net/image.axd?picture=image_266.png"><img width="984" height="408" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_265.png" border="0"></a><p>On the overview screen, there is a link that is unique to your Azure AD. The link allows users in your organisation, based upon the setting in the requests section, to request access to this package. We configured it for all uses within your Azure AD.Clicking this link will take you to the site to request access.<p><a href="http://blogs.recneps.net/image.axd?picture=image_267.png"><img width="998" height="310" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_266.png" border="0"></a><p>Select the package and click “Request access”<p><a href="http://blogs.recneps.net/image.axd?picture=image_268.png"><img width="1008" height="368" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_267.png" border="0"></a><p>The user will be presented with an access form with the questions you configured:<p><a href="http://blogs.recneps.net/image.axd?picture=image_269.png"><img width="393" height="723" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_268.png" border="0"></a><p><a href="http://blogs.recneps.net/image.axd?picture=image_270.png"><img width="401" height="715" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_269.png" border="0"></a><p>Complete the form and click “Submit”<p>The user can see the status of their request:<p><a href="http://blogs.recneps.net/image.axd?picture=image_271.png"><img width="1008" height="360" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_270.png" border="0"></a><p>As an approver you can see what approvals are pending at <a href="https://myaccess.microsoft.com">https://myaccess.microsoft.com</a><p><a href="http://blogs.recneps.net/image.axd?picture=image_272.png"><img width="990" height="698" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_271.png" border="0"></a><p>You can review the access request by expanding the Request Details and Package details and then Approve or Deny the access request<p><a href="http://blogs.recneps.net/image.axd?picture=image_273.png"><img width="995" height="570" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_272.png" border="0"></a><p>Upon approval the user will be able to see their access packages in their my access portal, along with the expiry date. <p><a href="http://blogs.recneps.net/image.axd?picture=image_274.png"><img width="1091" height="303" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_273.png" border="0"></a><p>The user can also view the details of the request in the “Request history” section<p><a href="http://blogs.recneps.net/image.axd?picture=image_275.png"><img width="1117" height="523" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_274.png" border="0"></a><p>I hope you can see that Entitlement management will help you add some governance around your user management along with self service and user management delegation. I will be following up this post with one about automating the user assignment using Graph API, so keep a look out for it.
http://blogs.recneps.net/post/Introduction-to-Azure-Entitlement-Management
http://blogs.recneps.net/post/Introduction-to-Azure-Entitlement-Management#commenthttp://blogs.recneps.net/post.aspx?id=13cf72c9-9d6c-4d7c-9d09-070f6c10572bMon, 30 Aug 2021 08:36:34 +0000stevehttp://blogs.recneps.net/pingback.axdhttp://blogs.recneps.net/post.aspx?id=13cf72c9-9d6c-4d7c-9d09-070f6c10572b9http://blogs.recneps.net/trackback.axd?id=13cf72c9-9d6c-4d7c-9d09-070f6c10572bhttp://blogs.recneps.net/post/Introduction-to-Azure-Entitlement-Management#commenthttp://blogs.recneps.net/syndication.axd?post=13cf72c9-9d6c-4d7c-9d09-070f6c10572bIdentifying where the credentials for an Azure AD B2B user originate<p>After a conversation with Microsoft where we were discussing users who are having issues signing in with B2B, I thought it would be good to share what I’ve learned.</p><p>When you using Azure AD as the identity provider for your applications and are using B2B (Guest) accounts to allow external users to access your applications, you will at some point encounter users who are unable to sign in. There are a number of issues that could arise and the information against the users profile will help you to diagnose where the problem is likely to be.</p><p>If you go to the Azure AD portal and search for the user by their email address and click through to their profile, I’ve highlighted a number of areas of interest.</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_239.png"><img width="809" height="427" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_238.png" border="0"></a></p><p>The box on the right shows whether the user has accepted the invitation or not. The bottom box shows whether the user has been blocked access to your Azure AD. Maybe they were a user previously on a different application and for some reason their access has been blocked. If this is the case then it is best to look at the Groups and Applications that the user is already assigned to before you unblock the user.</p><p>If the user has accepted the invitation then the final box (“View more”) will give you some useful information. Expanding the box will show you where the users B2B account originates:</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_240.png"><img width="634" height="122" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_239.png" border="0"></a></p><p>This one shows the user has a Microsoft account. </p><p>The values can be:</p><ul><li>Invited User: This user has been invited but has not yet redeemed an invitation.<u></u><u></u></li><li>External Azure Active Directory: This user is homed in an external organization and authenticates by using an Azure AD account that belongs to the other organization. </li><li>Microsoft account: This user is homed in a Microsoft account and authenticates by using a Microsoft account. </li><li>Windows Server Active Directory: This user is signed in from on-premises Active Directory that belongs to this organization. </li><li>Azure Active Directory: This user authenticates by using an Azure AD account that belongs to this organization</li></ul><p>Further details can be found <a href="https://docs.microsoft.com/en-us/azure/active-directory/external-identities/user-properties#after-invitation-redemption" target="_blank">here</a></p><p>The source can help you to tailor your response to the user. For example, if the Source shows External Azure Active Directory, you know that the user is signing in with their corporate account and if they are having issues signing in then it is likely to be an issue at their end. If it shows Microsoft Account then they need to use the credentials they use to access their Hotmail, One drive or personal computer (if they have it connected to their Microsoft Account) and you can point them to the relevant pages for assistance.</p><p>Once they have signed in correctly they may still have issues accessing your application. You would need to look at the configuration of the application, Conditional Access (Note, conditional access could be an issue at their end, if their corporate IT have blocked B2B access at their end for example), group configuration etc.</p><p>I found that being able to identify where the users credentials are sourced meant that I could provide a far better support response to my customers and this resolved a lot of the issues.</p>
http://blogs.recneps.net/post/Identifying-where-the-credentials-for-an-Azure-AD-B2B-user-originate
http://blogs.recneps.net/post/Identifying-where-the-credentials-for-an-Azure-AD-B2B-user-originate#commenthttp://blogs.recneps.net/post.aspx?id=92a49de8-105a-4bc5-bf27-931a31d7acbfSat, 31 Jul 2021 10:36:18 +0000Azure ADstevehttp://blogs.recneps.net/pingback.axdhttp://blogs.recneps.net/post.aspx?id=92a49de8-105a-4bc5-bf27-931a31d7acbf13http://blogs.recneps.net/trackback.axd?id=92a49de8-105a-4bc5-bf27-931a31d7acbfhttp://blogs.recneps.net/post/Identifying-where-the-credentials-for-an-Azure-AD-B2B-user-originate#commenthttp://blogs.recneps.net/syndication.axd?post=92a49de8-105a-4bc5-bf27-931a31d7acbfUsing Azure AD Conditional Access to Trigger MFA<p>Cloud hosted services and collaboration mean exposing services to a worldwide audience, but it also exposes you to malicious attacks and identity is one axis where attacks take place. Usernames and passwords are constantly being obtained either through hacking, social engineering or buying. Once obtained they can be used to gain access to a variety of system and single sign-on makes the scope of attacks larger. It has long been recognised that having multiple levels during authentication makes it harder for an attacker to gain access. Microsoft have been involved with identity for a long time now with their services such as Hotmail, XBox Live and Azure and they have used this experience to build and enhance their security models to incorporate Multifactor Authentication (MFA) into their systems. MFA allows you to use an additional piece of information that is usually generated at the point of entry and is not something that is remembered. This information is usually generated and presented on something that you have in your possession such as a Mobile Phone, RSA key or FIDO token. This adds an additional layer of protection as it means the attacker also requires the same device in order to gain access. When building your applications it is sensible to incorporate MFA into your design and Microsoft Azure has the Conditional Access service to help you build this extra layer of security into your applications. </p><p>Conditional Access allows you to create a set of rules (policies) about the access a user is attempting to determine whether the user is allowed access, whether they are required to user MFA or whether they are blocked from access. Conditional Access policies use a set of signals that could be things like being a member of a specific group; accessing a specific application; IP address/location information; the device they are using or if Identity protection is enabled there are a set of AI models applied that give the user or login a risk value.Rules are applied to these signals and a decision is made. </p><p>In order to use Conditional Access your Azure AD tenant will require a <a href="ttps://docs.microsoft.com/en-us/azure/active-directory/conditional-access/overview#license-requirements" target="_blank">P1 license</a> or <a href="https://docs.microsoft.com/en-us/office365/servicedescriptions/microsoft-365-service-descriptions/microsoft-365-business-service-description" target="_blank">Microsoft 365 Business Premium</a> for each user. </p><p>To setup Conditional Access Policies, navigate to the <a href="https://portal.azure.com/" target="_blank">Azure Portal</a> and search for Conditional Access </p><p><a href="http://blogs.recneps.net/image.axd?picture=image_226.png"><img width="721" height="368" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_225.png" border="0"></a></p><p>Click “New Policy”</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_227.png"><img width="254" height="637" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_226.png" border="0"></a></p><p>You can configure the group membership requirements, which apps the rules apply to and the conditions that apply. When a user signs in each policy is evaluated to see which ones apply to the users. Each of the conditions are evaluated and any policies that match all the conditions will be applied to the user. This is an important point because if you make the policies too restrictive then a user may not match any conditions and they will be given access without applying any access controls. This is especially important if you are expecting access to be blocked if the conditions are not met, which is not the case. You will need to create a specific policy for that which blocks the access. </p><p>When creating a policy, enter a name for the policy and then click users and groups to determine who the rules apply to.</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_228.png"><img width="561" height="764" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_227.png" border="0"></a></p><p>Here you can include or exclude sets of users. Whether its all users, your guess/external/B2B users, specific roles or specific users or groups. For example you may apply this rule to All users and exclude users who are members of a specific group. If you apply the rule to all users then you will get a warning that might cause you to lock you out of access. In this scenario you could exclude users who are part of the admin group so at least a small number of people will gain access. </p><p><a href="http://blogs.recneps.net/image.axd?picture=image_229.png"><img width="814" height="581" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_228.png" border="0"></a></p><p>Selecting a user or group brings up the user/group picker. Select a group.</p><p>In addition or instead of, you can pick an application or group of applications that will cause the policy to be applied if the user tried to access them. Whether you use this or groups will be down to you. It depends how you give access to the applications. If the number of groups to access the applications is complicated then you might want to apply the application here, if for example you use group membership to control access to the application then you can just use the same group in the policy instead of the application.</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_230.png"><img width="811" height="1086" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_229.png" border="0"></a></p><p>Picking the all applications has the same warning as all groups. For this policy we’ll just stick with group membership so will select None</p><p>The next part to pick is the condition for the policy.</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_231.png"><img width="801" height="784" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_230.png" border="0"></a></p><p>Be aware here that both User risk and Sign-in risk can be applied here, but will only give you a valid value if Identity Protection is also enabled in your tenant.These conditions will return a percentage value based upon whether Identity Protection believes the user account has been compromised or the sign in attempt is not authorised. Information about the information monitored to generate the risk can be found <a href="https://docs.microsoft.com/en-us/azure/active-directory/identity-protection/concept-identity-protection-risks#user-risk" target="_blank">here</a></p><p><a href="https://docs.microsoft.com/en-us/azure/active-directory/conditional-access/concept-conditional-access-conditions#device-platforms" target="_blank">Device platforms</a> looks at the type of device that is trying to connect. This works well for machines that are internal to your organisation and are managed by Microsoft Intune device compliance policies. User agent strings will be used for External users , but these can be changed so are not a reliable condition for B2B users.</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_232.png"><img width="333" height="541" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_231.png" border="0"></a></p><p><a href="https://docs.microsoft.com/en-us/azure/active-directory/conditional-access/concept-conditional-access-conditions#locations" target="_blank">Locations</a> allows you to configure trusted locations where access is allowed from and access is blocked if the access if from elsewhere. I’ll talk about this in a future post.</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_233.png"><img width="669" height="677" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_232.png" border="0"></a></p><p><a href="https://docs.microsoft.com/en-us/azure/active-directory/conditional-access/concept-conditional-access-conditions#client-apps" target="_blank">Client Apps</a> allows you to configure which apps are allowed access and which are blocked.</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_234.png"><img width="673" height="648" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_233.png" border="0"></a></p><p>Finally <a href="https://docs.microsoft.com/en-us/azure/active-directory/conditional-access/concept-conditional-access-conditions#device-state-preview" target="_blank">Device state</a></p><p><a href="http://blogs.recneps.net/image.axd?picture=image_235.png"><img width="552" height="536" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_234.png" border="0"></a></p><p>This allows you to exclude compliant devices from the policy.</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_236.png"><img width="326" height="544" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_235.png" border="0"></a></p><p>Now you have configured all your conditions you now decide what action should be taken if those conditions are met. Here you can grant or block access</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_237.png"><img width="700" height="671" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_236.png" border="0"></a></p><p>There are more conditions that need to be met to allow access. MFA is one of these. Selecting MFA will force the user have to use a secondary authentication device before access can be gained. Unlike the policy conditions, failure to meet the conditions at this stage will block access. If a user manages to get through the conditions but doesn’t have a Hybrid joined device or fails the MFA challenge then they will still not gain access. </p><p>The final option is for Session which is used to determine whether the user needs to be challenged again for MFA. This can be set in the Sign-in frequency option:</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_238.png"><img width="695" height="655" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_237.png" border="0"></a></p><p>Now we have a choice about how to apply the policy. Whether to enable it or set it to report only. If you have a complex set of criteria that you want to enable and not sure whether there will be issues you can set the policy to Report Only and this will appear in the sign in logs showing what the rule outcome will be. You can run it on the user population and review the logs to see if the policy breaks anything. This will also be the subject of a future post. For now we will set the policy to On and click Create. This will now be applied to all users and those that match the policy will be presented with the MFA challenge.</p><p>The policy we’ve just created will present all users who are NOT in the Alpha Team group with the MFA challenge and members of Alpha team will be allowed to sign in without MFA. </p><p>Its a good idea to plan your conditional access policies so that there are not too many complex policies that could end up with scenarios where users are given access without out the additional security of MFA. There are also limitations on the number of policies that can be applied to a user after which they policies are ignore. I believe the limit at the moment is 100 but I can’t find this in writing anywhere.</p><p>Conditional access allows you to build extra layers of security into your app and data access processes and tailor the access model to suit your needs. The next posts will cover reviewing and diagnosing policies and also restricting access based upon IP addresses.</p>
http://blogs.recneps.net/post/Using-Azure-AD-Conditional-Access-to-Trigger-MFA
http://blogs.recneps.net/post/Using-Azure-AD-Conditional-Access-to-Trigger-MFA#commenthttp://blogs.recneps.net/post.aspx?id=22f672ac-c85a-4ddc-b3f3-30f92b52c30fThu, 06 May 2021 19:05:43 +0000Azure ADstevehttp://blogs.recneps.net/pingback.axdhttp://blogs.recneps.net/post.aspx?id=22f672ac-c85a-4ddc-b3f3-30f92b52c30f3http://blogs.recneps.net/trackback.axd?id=22f672ac-c85a-4ddc-b3f3-30f92b52c30fhttp://blogs.recneps.net/post/Using-Azure-AD-Conditional-Access-to-Trigger-MFA#commenthttp://blogs.recneps.net/syndication.axd?post=22f672ac-c85a-4ddc-b3f3-30f92b52c30fDelegating User Management using Azure Administrative Units<p>Azure Administrative Units allows an administrator in Azure to separate out the management of specific users and groups and delegate management to a specific set of users. This may be to allow for access to specific applications or to isolate the management of a specific set of users due legal restrictions based upon their location, nationality or the data they are accessing, for example. Azure Administrative units require and Azure AD Premium P2 license for each user you wish to delegate as an Administrator.</p><p>In order to separate out the users you must create an administrative unit, assign the users and groups you wish to managed to the unit and then assign users to be the admins.</p><p>In the Azure portal, navigate to the Azure Active Directory blade and click on “Administrative units”</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_208.png"><img width="645" height="263" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_208.png" border="0"></a></p><p>To Create an Administrative unit click “Add”</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_209.png"><img width="475" height="359" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_209.png" border="0"></a></p><p>Enter a name and description the press “Review + create”</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_210.png"><img width="468" height="314" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_210.png" border="0"></a></p><p>You can assign the users you want to delegate the administration of the Administrative unit on this page, click “Review + create” as we will be assigning the admins later.</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_211.png"><img width="300" height="419" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_211.png" border="0"></a></p><p>Now click “Create” & the Admin unit should now be created.</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_212.png"><img width="593" height="222" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_212.png" border="0"></a></p><p>We now need to decide what and who we want to manage within this unit. Firstly we’ll add some groups. Click on the Admin unit then Click Groups</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_213.png"><img width="770" height="215" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_213.png" border="0"></a></p><p>Click Add and select the groups you want to put in this Admin unit. </p><p><a href="http://blogs.recneps.net/image.axd?picture=image_214.png"><img width="771" height="314" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_214.png" border="0"></a></p><p>Then click “Select”</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_215.png"><img width="777" height="162" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_215.png" border="0"></a></p><p>Now you can add your users, click “Users” & “Add member”</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_216.png"><img width="789" height="325" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_216.png" border="0"></a></p><p>Select the users you wish to add to the Admin unit and click “Select”.</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_217.png"><img width="797" height="202" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_217.png" border="0"></a></p><p>Now we have our Admin unit set up with two groups and two users. We now need to assign an administrator for this unit. Click “Roles and administrators”</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_218.png"><img width="801" height="263" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_218.png" border="0"></a></p><p>This displays the different roles that can be used to manage the Admin unit. This allows you to have multiple administrators of the unit with different permissions. We’ll just create a single Administrator who is allow to manage the users into the groups we have assigned. Click “Group administrator”</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_219.png"><img width="783" height="186" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_219.png" border="0"></a></p><p>Click description if you are unsure what the role does. You will get a description plus a list of the finer grained permissions included in the role. Click “Add assignments” and pick the user you wish to assign to this role, then click “Add”.</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_220.png"><img width="818" height="336" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_220.png" border="0"></a></p><p>You can repeat this for the other roles if you wish. Your admin unit is now setup. </p><p>Now login with the administrator of the admin group who you added previously. This user will need to have already been assigned the Azure AD Premium P2 license and the user should be able to assign Fred and Jane to the groups Application 1 and Alpha Team.</p><p>In Azure AD, click Users, then click Fred.</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_221.png"><img width="547" height="350" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_221.png" border="0"></a></p><p>Now click “Groups”, then “Add memberships” </p><p><a href="http://blogs.recneps.net/image.axd?picture=image_222.png"><img width="615" height="253" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_222.png" border="0"></a></p><p>and select “Alpha Team” and click “Select”. </p><p><a href="http://blogs.recneps.net/image.axd?picture=image_223.png"><img width="620" height="284" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_223.png" border="0"></a></p><p>Alpha Team should now be assigned to Fred. </p><p>Click “Add memberships” again, but this time select the “Beta Team” group and click “Select”</p><p><a href="http://blogs.recneps.net/image.axd?picture=image_224.png"><img width="570" height="143" title="image" style="display: inline; background-image: none;" alt="image" src="http://blogs.recneps.net/image.axd?picture=image_thumb_224.png" border="0"></a></p><p>You will see a notification saying that you do not have the correct privileges to manage that group. Similarly if you try to add any user other than Jane or Fred to any of the groups you will get the same error.</p><p>So,by using Azure AD Administrative units I’ve shown how you can delegate the management of certain groups and users to specific individuals. Administrative groups will allow you to organise the management of your Active Directory and delegate management, helping you to reduce the risk by providing the user management with a lower level of privilege than just by giving all your users administrators the global Group Administrator role. This will allow you to partition off sensitive groups and applications and restrict the users who are able to manage those, whilst extending the administration to a wider set of users. </p><p><br></p><p><br></p><p><a href="http://blogs.recneps.net/image.axd?picture=image_225.png"><br></a></p>
http://blogs.recneps.net/post/Delegating-User-Management-using-Azure-Administrative-Units
http://blogs.recneps.net/post/Delegating-User-Management-using-Azure-Administrative-Units#commenthttp://blogs.recneps.net/post.aspx?id=01aaff13-a52e-4f57-ae27-0b8027363f4fMon, 26 Apr 2021 19:27:58 +0000Azure ADSecuritystevehttp://blogs.recneps.net/pingback.axdhttp://blogs.recneps.net/post.aspx?id=01aaff13-a52e-4f57-ae27-0b8027363f4f2http://blogs.recneps.net/trackback.axd?id=01aaff13-a52e-4f57-ae27-0b8027363f4fhttp://blogs.recneps.net/post/Delegating-User-Management-using-Azure-Administrative-Units#commenthttp://blogs.recneps.net/syndication.axd?post=01aaff13-a52e-4f57-ae27-0b8027363f4f