Pinned Posts
Forum Widgets
Latest Discussions
Continous deployment to Azure container registry is very very slow
How have other people solved this problem? We have a solution with 10 or so projects, each which publishes a container to our Azure container registry It takes around 15 minutes to build and publish each project, most of the time is spent pulling container images and uploading them to Azure container registry This is awful, and a real step backwards from our previous process.catmanjan2010Jun 16, 2025Copper Contributor942Views1like2CommentsActivate text entry box not accepting text
I have been experiencing this issue for a few weeks now and assumed it was just me. But I asked several co-workers and they are all experiencing the same issue. When attempting to active a PIM role in Azure, the text entry box for adding the reason you're activating the role will flash and change the outline to blue, indicating it is now ready to accept text entry. However, it will not allow typing in text. If you click inside the box several times, you might be offered the option to auto-fill a previously used entry (but not always). In order to actually type in the reason, I have to first click on "Roles" in the activation window, then click "Activate" again to get back to the text box. It will then accept text entry and allow completion of role assignment. It's not a huge problem, but it adds steps and time to role assignment, which isn't ideal since roles are usually being grabbed to take care of an apparent emergency. (I have a great short video showing exactly what I'm talking about, but the media insertion option would not allow adding it here.)AdamVanD6Jun 16, 2025Copper Contributor49Views5likes1CommentEnable Read Only access to ADO Boards Functionality
Hello Everyone, One of my customers has over 100 projects in their organization, and they haven’t followed any standardization in terms of setting user permissions or branch policies at each project level. They want to know if there is a way to disable write access to Azure DevOps (ADO) boards functionality (boards, dashboard, work items, iterations, etc.) per project. They would like to enable read-only access to ADO boards functionality, while ensuring that test plans, repository, and build pipelines remain functional in that project. They would also like to be able to easily reverse to previous permissions.893Views1like1CommentAdvantages of installing a newer build agent?
We have an on-prem Azure DevOps server (2020 update 1.2). All our builds use the "default" agent (v2.181.2) created when DevOps was installed. I'm aware that it is possible to download and install agents from here: https://github.com/microsoft/azure-pipelines-agent/releases, but what are the reasons for doing so? Are they merely to provide bug fixes and performance improvements, rather than (say) new build tasks or build task features (which I assume are part and parcel of DevOps itself, and have nothing to do with agents)? One of the reasons I ask is that last year I tried installing a new agent (v2.210.1), and builds had been working fine. However we recently started seeing our builds taking a long time, and in the agent log found that the agent was repeatedly attempting to downgrade to v2.181.2. Why was this? Is something limiting which version we can use, e.g. the version of DevOps itself, or a particular task in the build definition? (The build did continue to work when I reconfigured it to use the default agent, v2.181.2, which is coincidentally what the newer agent was trying to downgrade to). I assume I would get similar issues if I was to create an agent using the latest version (currently v3.227.2)? Like I say, curious to know why I would want to install a newer agent in the first place.andyste1Jun 15, 2025Copper Contributor944Views0likes1CommentTrouble retrieving Authorization Code using Oauth2 in Azure devops
I'm trying use OAuth2 autentication method as microsoft learn expose in this url https://learn.microsoft.com/en-us/azure/devops/integrate/get-started/authentication/azure-devops-oauth?view=azure-devops I attach a postman collection with params of registered app. I notice that response of token endpoint https://app.vssps.visualstudio.com/oauth2/token I need get authorization code from endpoint https://app.vssps.visualstudio.com/oauth2/authorize ,when I send the POST request login page appear, write MFA code and then when it suppossed to get the code a 404 alert screen shown below. These are registered app parameters Attach client_id (application id on page) as client_id header, scope vso.build_execute,state foo and response_type Assertion as documentation mentioned, on oauth protocol official page of o headers labels differ of documentation, as example grant_type must be authorization_code not urn:ietf:params:oauth:grant-type:jwt-bearer (request accept this type) if I change it get the next response: {"Error":"unsupported_grant_type","ErrorDescription":"grant_type must be the ietf jwt-bearer type, refresh_token, or client_credentials"} Why https://app.vssps.visualstudio.com/oauth2/token does not support authorization-code grant type when protocol says it is mandatory?? https://www.oauth.com/oauth2-servers/access-tokens/authorization-code-request/ Anyway main trouble is about retrieve authorization code from https://app.vssps.visualstudio.com/oauth2/authorize?client_id=a7f5fffb-9645-4e14-8b16-7fb1cf37017d&response_type=Assertion&state=foo&scope=vso.build_execute Attach postman collection on this post { "info": { "_postman_id": "0c50a913-7913-4ad0-b180-dc89638dd530", "name": "AZURE", "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json", "_exporter_id": "21601577" }, "item": [ { "name": "RUN PIPELINE USING OAUTH", "protocolProfileBehavior": { "disableBodyPruning": true }, "request": { "auth": { "type": "oauth2", "oauth2": [ { "key": "client_authentication", "value": "header", "type": "string" }, { "key": "useBrowser", "value": true, "type": "boolean" }, { "key": "authRequestParams", "value": [ { "key": "response_type", "value": "Assertion", "enabled": true, "send_as": "request_url" }, { "key": "state", "value": "state", "enabled": true, "send_as": "request_url" }, { "key": "scope", "value": "vso.build_execute", "enabled": true, "send_as": "request_url" }, { "key": "client_id", "value": "A7F5FFFB-9645-4E14-8B16-7FB1CF37017D", "enabled": true, "send_as": "request_url" }, { "key": "redirect_url", "value": "https://dev.azure.com/jose-carlosnavarro/TESTING/_apis/pipelines/1/runs?api-version=7.1-preview.1", "enabled": false, "send_as": "request_url" }, { "key": "client_secret", "value": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Im9PdmN6NU1fN3AtSGpJS2xGWHo5M3VfVjBabyJ9.eyJjaWQiOiJhN2Y1ZmZmYi05NjQ1LTRlMTQtOGIxNi03ZmIxY2YzNzAxN2QiLCJjc2kiOiIwODlhMWIxMy0xYzk4LTRlNjAtYTAwZi02NjI5ZTAwM2UyYmUiLCJuYW1laWQiOiI0YmVlYTYxMS04YWJlLTRhMTctOGRhMC1hMmJkNTQwOTVhNDYiLCJpc3MiOiJhcHAudnN0b2tlbi52aXN1YWxzdHVkaW8uY29tIiwiYXVkIjoiYXBwLnZzdG9rZW4udmlzdWFsc3R1ZGlvLmNvbSIsIm5iZiI6MTY5OTM2MjY0MSwiZXhwIjoxODU3MjE1NDQxfQ.1hZ3_j1B4maKfz_Hrwuds95P41uWR96GimYN-PEYFAM40LqeEtNop2PhQqTf6nDL8CZfeITGmqipsYYfL98jk61z_9jcGBkHLWu-6VpKNwPd8c7uqEIHHQeQvOocRijHtQnlHGLETSy5IzRs6csDWnvrjpZNAU4TrALecWVMiocHZF6wqYsyReRzvPNpynoSFQQoOlrPdDVqRjsL05nmnE2BIwlDPuKWK9kuzFBGuaAQ0fiykA57SWpcpyyPxVbMhBqEo-NvHPTqh2heQbSvsuBuVKzeLjNVuaFpcyb-R6TweGzS5dU1cHcRWnqWRxcPLPr1EpeEkRseOtg9q1EWjw", "enabled": true, "send_as": "request_url" } ], "type": "any" }, { "key": "tokenRequestParams", "value": [ { "key": "client_assertion_type", "value": "urn:ietf:params:oauth:client-assertion-type:jwt-bearer", "enabled": true, "send_as": "request_header" }, { "key": "client_secret", "value": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Im9PdmN6NU1fN3AtSGpJS2xGWHo5M3VfVjBabyJ9.eyJjaWQiOiJhN2Y1ZmZmYi05NjQ1LTRlMTQtOGIxNi03ZmIxY2YzNzAxN2QiLCJjc2kiOiIwODlhMWIxMy0xYzk4LTRlNjAtYTAwZi02NjI5ZTAwM2UyYmUiLCJuYW1laWQiOiI0YmVlYTYxMS04YWJlLTRhMTctOGRhMC1hMmJkNTQwOTVhNDYiLCJpc3MiOiJhcHAudnN0b2tlbi52aXN1YWxzdHVkaW8uY29tIiwiYXVkIjoiYXBwLnZzdG9rZW4udmlzdWFsc3R1ZGlvLmNvbSIsIm5iZiI6MTY5OTM2MjY0MSwiZXhwIjoxODU3MjE1NDQxfQ.1hZ3_j1B4maKfz_Hrwuds95P41uWR96GimYN-PEYFAM40LqeEtNop2PhQqTf6nDL8CZfeITGmqipsYYfL98jk61z_9jcGBkHLWu-6VpKNwPd8c7uqEIHHQeQvOocRijHtQnlHGLETSy5IzRs6csDWnvrjpZNAU4TrALecWVMiocHZF6wqYsyReRzvPNpynoSFQQoOlrPdDVqRjsL05nmnE2BIwlDPuKWK9kuzFBGuaAQ0fiykA57SWpcpyyPxVbMhBqEo-NvHPTqh2heQbSvsuBuVKzeLjNVuaFpcyb-R6TweGzS5dU1cHcRWnqWRxcPLPr1EpeEkRseOtg9q1EWjw", "enabled": true, "send_as": "request_header" }, { "key": "grant_type", "value": "client_credentials", "enabled": true, "send_as": "request_header" }, { "key": "assertion", "value": "code", "enabled": false, "send_as": "request_header" }, { "key": "client_id", "value": "a7f5fffb-9645-4e14-8b16-7fb1cf37017d", "enabled": true, "send_as": "request_body" }, { "key": "client_assertion", "value": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Im9PdmN6NU1fN3AtSGpJS2xGWHo5M3VfVjBabyJ9.eyJjaWQiOiJhN2Y1ZmZmYi05NjQ1LTRlMTQtOGIxNi03ZmIxY2YzNzAxN2QiLCJjc2kiOiIwODlhMWIxMy0xYzk4LTRlNjAtYTAwZi02NjI5ZTAwM2UyYmUiLCJuYW1laWQiOiI0YmVlYTYxMS04YWJlLTRhMTctOGRhMC1hMmJkNTQwOTVhNDYiLCJpc3MiOiJhcHAudnN0b2tlbi52aXN1YWxzdHVkaW8uY29tIiwiYXVkIjoiYXBwLnZzdG9rZW4udmlzdWFsc3R1ZGlvLmNvbSIsIm5iZiI6MTY5OTM2MjY0MSwiZXhwIjoxODU3MjE1NDQxfQ.1hZ3_j1B4maKfz_Hrwuds95P41uWR96GimYN-PEYFAM40LqeEtNop2PhQqTf6nDL8CZfeITGmqipsYYfL98jk61z_9jcGBkHLWu-6VpKNwPd8c7uqEIHHQeQvOocRijHtQnlHGLETSy5IzRs6csDWnvrjpZNAU4TrALecWVMiocHZF6wqYsyReRzvPNpynoSFQQoOlrPdDVqRjsL05nmnE2BIwlDPuKWK9kuzFBGuaAQ0fiykA57SWpcpyyPxVbMhBqEo-NvHPTqh2heQbSvsuBuVKzeLjNVuaFpcyb-R6TweGzS5dU1cHcRWnqWRxcPLPr1EpeEkRseOtg9q1EWjw", "enabled": true, "send_as": "request_body" } ], "type": "any" }, { "key": "tokenName", "value": "code", "type": "string" }, { "key": "grant_type", "value": "authorization_code", "type": "string" }, { "key": "clientSecret", "value": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Im9PdmN6NU1fN3AtSGpJS2xGWHo5M3VfVjBabyJ9.eyJjaWQiOiJhN2Y1ZmZmYi05NjQ1LTRlMTQtOGIxNi03ZmIxY2YzNzAxN2QiLCJjc2kiOiIwODlhMWIxMy0xYzk4LTRlNjAtYTAwZi02NjI5ZTAwM2UyYmUiLCJuYW1laWQiOiI0YmVlYTYxMS04YWJlLTRhMTctOGRhMC1hMmJkNTQwOTVhNDYiLCJpc3MiOiJhcHAudnN0b2tlbi52aXN1YWxzdHVkaW8uY29tIiwiYXVkIjoiYXBwLnZzdG9rZW4udmlzdWFsc3R1ZGlvLmNvbSIsIm5iZiI6MTY5OTM2MjY0MSwiZXhwIjoxODU3MjE1NDQxfQ.1hZ3_j1B4maKfz_Hrwuds95P41uWR96GimYN-PEYFAM40LqeEtNop2PhQqTf6nDL8CZfeITGmqipsYYfL98jk61z_9jcGBkHLWu-6VpKNwPd8c7uqEIHHQeQvOocRijHtQnlHGLETSy5IzRs6csDWnvrjpZNAU4TrALecWVMiocHZF6wqYsyReRzvPNpynoSFQQoOlrPdDVqRjsL05nmnE2BIwlDPuKWK9kuzFBGuaAQ0fiykA57SWpcpyyPxVbMhBqEo-NvHPTqh2heQbSvsuBuVKzeLjNVuaFpcyb-R6TweGzS5dU1cHcRWnqWRxcPLPr1EpeEkRseOtg9q1EWjw", "type": "string" }, { "key": "clientId", "value": "a7f5fffb-9645-4e14-8b16-7fb1cf37017d", "type": "string" }, { "key": "addTokenTo", "value": "header", "type": "string" }, { "key": "authUrl", "value": "https://app.vssps.visualstudio.com/oauth2/authorize", "type": "string" }, { "key": "accessTokenUrl", "value": "https://app.vssps.visualstudio.com/oauth2/token", "type": "string" }, { "key": "state", "value": "user1", "type": "string" }, { "key": "scope", "value": "vso.build_execute", "type": "string" } ] }, "method": "GET", "header": [ { "key": "Authorization", "value": "Bearer {{token}}", "type": "text" } ], "body": { "mode": "urlencoded", "urlencoded": [] }, "url": { "raw": "https://dev.azure.com/jose-carlosnavarro/TESTING/_apis/pipelines/1/runs?api-version=7.1-preview.1", "protocol": "https", "host": [ "dev", "azure", "com" ], "path": [ "jose-carlosnavarro", "TESTING", "_apis", "pipelines", "1", "runs" ], "query": [ { "key": "api-version", "value": "7.1-preview.1" } ] } }, "response": [] }, { "name": "TOKEN ADO", "protocolProfileBehavior": { "disabledSystemHeaders": {} }, "request": { "auth": { "type": "noauth" }, "method": "POST", "header": [ { "key": "assertion", "value": "572247", "type": "text", "disabled": true }, { "key": "client_id", "value": "a7f5fffb-9645-4e14-8b16-7fb1cf37017d", "type": "text", "disabled": true }, { "key": "client_secret", "value": "eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiIsIng1dCI6Im9PdmN6NU1fN3AtSGpJS2xGWHo5M3VfVjBabyJ9.eyJjaWQiOiJhN2Y1ZmZmYi05NjQ1LTRlMTQtOGIxNi03ZmIxY2YzNzAxN2QiLCJjc2kiOiIwODlhMWIxMy0xYzk4LTRlNjAtYTAwZi02NjI5ZTAwM2UyYmUiLCJuYW1laWQiOiI0YmVlYTYxMS04YWJlLTRhMTctOGRhMC1hMmJkNTQwOTVhNDYiLCJpc3MiOiJhcHAudnN0b2tlbi52aXN1YWxzdHVkaW8uY29tIiwiYXVkIjoiYXBwLnZzdG9rZW4udmlzdWFsc3R1ZGlvLmNvbSIsIm5iZiI6MTY5OTM2MjY0MSwiZXhwIjoxODU3MjE1NDQxfQ.1hZ3_j1B4maKfz_Hrwuds95P41uWR96GimYN-PEYFAM40LqeEtNop2PhQqTf6nDL8CZfeITGmqipsYYfL98jk61z_9jcGBkHLWu-6VpKNwPd8c7uqEIHHQeQvOocRijHtQnlHGLETSy5IzRs6csDWnvrjpZNAU4TrALecWVMiocHZF6wqYsyReRzvPNpynoSFQQoOlrPdDVqRjsL05nmnE2BIwlDPuKWK9kuzFBGuaAQ0fiykA57SWpcpyyPxVbMhBqEo-NvHPTqh2heQbSvsuBuVKzeLjNVuaFpcyb-R6TweGzS5dU1cHcRWnqWRxcPLPr1EpeEkRseOtg9q1EWjw", "type": "text", "disabled": true }, { "key": "grant_type", "value": "ietf jwt-bearer", "type": "text", "disabled": true } ], "body": { "mode": "urlencoded", "urlencoded": [ { "key": "grant_type", "value": "code", "description": "GRANT TYPE DEFINIDO", "type": "text" }, { "key": "client_id", "value": "a7f5fffb-9645-4e14-8b16-7fb1cf37017d", "type": "text" }, { "key": "client_assertion", "value": "Ing1dCI6Im9PdmN6NU1fN3AtSGpJS2xGWHo5M3VfVjBabyJ9.eyJjaWQiOiJhN2Y1ZmZmYi05NjQ1LTRlMTQtOGIxNi03ZmIxY2YzNzAxN2QiLCJjc2kiOiIwODlhMWIxMy0xYzk4LTRlNjAtYTAwZi02NjI5ZTAwM2UyYmUiLCJuYW1laWQiOiI0YmVlYTYxMS04YWJlLTRhMTctOGRhMC1hMmJkNTQwOTVhNDYiLCJpc3MiOiJhcHAudnN0b2tlbi52aXN1YWxzdHVkaW8uY29tIiwiYXVkIjoiYXBwLnZzdG9rZW4udmlzdWFsc3R1ZGlvLmNvbSIsIm5iZiI6MTY5OTM2MjY0MSwiZXhwIjoxODU3MjE1NDQxfQ.1hZ3_j1B4maKfz_Hrwuds95P41uWR96GimYN-PEYFAM40LqeEtNop2PhQqTf6nDL8CZfeITGmqipsYYfL98jk61z_9jcGBkHLWu-6VpKNwPd8c7uqEIHHQeQvOocRijHtQnlHGLETSy5IzRs6csDWnvrjpZNAU4TrALecWVMiocHZF6wqYsyReRzvPNpynoSFQQoOlrPdDVqRjsL05nmnE2BIwlDPuKWK9kuzFBGuaAQ0fiykA57SWpcpyyPxVbMhBqEo-NvHPTqh2heQbSvsuBuVKzeLjNVuaFpcyb-R6TweGzS5dU1cHcRWnqWRxcPLPr1EpeEkRseOtg9q1EWjw", "description": "CLIENT SECRET GENERADO AL REGISTRAR LA PALICACION", "type": "text" }, { "key": "assertion", "value": "NV1Ojxy7sz0UTNemw-UFh3efViRpWOZqEVwTBz9YPiPGemcM", "description": "CODIGO QUE DEVUELVE EL REDIRECT URI DE AUTHORIZE ENDPOINT", "type": "text" }, { "key": "client_assertion_type", "value": "urn:ietf:params:oauth:client-assertion-type:jwt-bearer", "type": "text" }, { "key": "client_secret", "value": "Ing1dCI6Im9PdmN6NU1fN3AtSGpJS2xGWHo5M3VfVjBabyJ9.eyJjaWQiOiJhN2Y1ZmZmYi05NjQ1LTRlMTQtOGIxNi03ZmIxY2YzNzAxN2QiLCJjc2kiOiIwODlhMWIxMy0xYzk4LTRlNjAtYTAwZi02NjI5ZTAwM2UyYmUiLCJuYW1laWQiOiI0YmVlYTYxMS04YWJlLTRhMTctOGRhMC1hMmJkNTQwOTVhNDYiLCJpc3MiOiJhcHAudnN0b2tlbi52aXN1YWxzdHVkaW8uY29tIiwiYXVkIjoiYXBwLnZzdG9rZW4udmlzdWFsc3R1ZGlvLmNvbSIsIm5iZiI6MTY5OTM2MjY0MSwiZXhwIjoxODU3MjE1NDQxfQ.1hZ3_j1B4maKfz_Hrwuds95P41uWR96GimYN-PEYFAM40LqeEtNop2PhQqTf6nDL8CZfeITGmqipsYYfL98jk61z_9jcGBkHLWu-6VpKNwPd8c7uqEIHHQeQvOocRijHtQnlHGLETSy5IzRs6csDWnvrjpZNAU4TrALecWVMiocHZF6wqYsyReRzvPNpynoSFQQoOlrPdDVqRjsL05nmnE2BIwlDPuKWK9kuzFBGuaAQ0fiykA57SWpcpyyPxVbMhBqEo-NvHPTqh2heQbSvsuBuVKzeLjNVuaFpcyb-R6TweGzS5dU1cHcRWnqWRxcPLPr1EpeEkRseOtg9q1EWjw", "type": "text", "disabled": true }, { "key": "code", "value": "238227", "type": "text", "disabled": true } ] }, "url": { "raw": "https://app.vssps.visualstudio.com/oauth2/token", "protocol": "https", "host": [ "app", "vssps", "visualstudio", "com" ], "path": [ "oauth2", "token" ] } }, "response": [] }, { "name": "AUTHORIZE", "event": [ { "listen": "test", "script": { "exec": [ "" ], "type": "text/javascript" } } ], "request": { "method": "POST", "header": [], "url": { "raw": "https://app.vssps.visualstudio.com/oauth2/authorize?client_id=a7f5fffb-9645-4e14-8b16-7fb1cf37017d&response_type=Assertion&state=user1&scope=vso.build_execute", "protocol": "https", "host": [ "app", "vssps", "visualstudio", "com" ], "path": [ "oauth2", "authorize" ], "query": [ { "key": "client_id", "value": "a7f5fffb-9645-4e14-8b16-7fb1cf37017d" }, { "key": "response_type", "value": "Assertion" }, { "key": "state", "value": "user1" }, { "key": "scope", "value": "vso.build_execute" }, { "key": "redirect_uri", "value": "https://app.vssps.visualstudio.com/oauth2/authorize", "disabled": true } ] } }, "response": [] } ] } I thank you very much for your help Best RegardsJose_Carlos1835Jun 15, 2025Copper Contributor1.3KViews0likes1CommentTDE with database level customer-managed keys - using Terraform
I am trying to create my database in azure with TDE with database level customer-managed keys - using Terraform. Need help in achieving that. I see --encryption-protector $keyid can be used in creation of db using Azure CLI. Is there something similar to use in terraform? We have azurerm_mssql_server_transparent_data_encryption" for TDE at server level. I am looking for something similar for database level.snehaniranjanaJun 14, 2025Copper Contributor692Views0likes1CommentAzure DevOps pipeline - how to deploy DB project to on-prem using custom path to SqlPackage.exe
Hi, I've been trying to figure this out for a while, but can't find my way around it. Our DevOps team has the SqlPackage.exe file saved in a custom location on a virtual machine used for the agents. I need to access the file to be able to deploy DB projects to on-premise server using Azure DevOps pipeline. I tried couple different approaches, but nothing seems to work for me. At the moment my deployment pipeline downloads artifacts and is able to use them for deployment, but can not actually deploy the project due to missing SqlPackage.exe file in the expected location. Any help would be greatly appreciated! EDIT: At the moment I'm trying to use CmdLine@2 task (see below), but it's giving me an error. - task: CmdLine@2 inputs: script: '"C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\sqlpackage.exe" /Action:Publish /SourceFile:"$(System.DefaultWorkingDirectory)/_WIP Build DB Symfonie2_ods/files/s/Symfonie2_ODS/bin/Debug/Symfonie2_ODS.dacpac" /TargetServerName:$(TargetServer) /TargetDatabaseName:$(TargetDatabaseName) -U $(SqlUsername) -P $(SqlPassword)/TargetEncryptConnection:False'VeronikaHolcnerovaJun 14, 2025Copper Contributor759Views0likes1CommentEmpowering Data Security with Azure Rights Management and Azure Information Protection
In today’s digital world, data is one of the most valuable assets a business can have. Whether it’s customer information, financial records, or internal documents, keeping that data safe is absolutely necessary. As more companies move to cloud-based systems and work in hybrid environments, the need for smart and reliable data protection tools is growing fast. That’s where Azure Rights Management (RMS) and Azure Information Protection (AIP) come in. These tools help businesses organize, label, and secure their data across different platforms, making sure it stays protected no matter where it goes. Understanding Azure Rights Management (RMS) Azure RMS is a cloud-based service designed to safeguard digital information through encryption, identity, and authorization policies. It ensures that data remains protected regardless of where it resides—on a local device, in the cloud, or in transit. Core Protection Workflow The Azure RMS protection process is straightforward yet powerful: Encryption: When a user initiates protection, the content is encrypted using strong cryptographic standards. Policy Attachment: An access policy is embedded within the file, defining what actions are permitted (e.g., read-only, no print, no forward). Authentication: Access is granted only after successful authentication via Azure Active Directory (Azure AD). Decryption and Enforcement: Once authenticated, the file is decrypted and the access policy is enforced in real time. Encryption Standards in Use Azure RMS employs: AES 128-bit and 256-bit encryption for securing documents. RSA 2048-bit encryption for protecting customer-specific root keys. These standards ensure that even if data is intercepted, it remains unreadable and unusable without proper authorization. Azure Information Protection: Beyond Encryption While Azure RMS focuses on securing content, Azure Information Protection (AIP) adds a layer of intelligence through classification and labeling. AIP enables organizations to define and apply sensitivity labels that reflect the value and confidentiality of their data. From Classic to Unified Labeling Microsoft has transitioned from the classic AIP client to the Unified Labeling Client, which integrates directly with Microsoft 365 compliance solutions. This shift simplifies management and enhances compatibility with modern Office applications. Sensitivity Labels in Action Sensitivity labels help organizations manage data access and usage by categorizing content into levels such as: Public: Safe for public distribution. General: Internal use only. Confidential: Restricted to specific internal groups. Highly Confidential: Limited to named individuals with strict usage controls (e.g., no printing or downloading). Labels can be applied manually by users or automatically based on content inspection, context, or metadata. Built-In Labeling in Office Apps Modern Office apps now support built-in labeling, eliminating the need for separate add-ins. This native integration ensures a smoother user experience and reduces the risk of compatibility issues or performance degradation. Licensing Overview To leverage AIP features, organizations must have the appropriate licensing: Office 365 E3 and above: Basic classification and labeling. AIP Plan 1: Included in Microsoft 365 E3 and EMS E3. AIP Plan 2: Included in Microsoft 365 E5 and EMS E5, offering advanced capabilities like automatic labeling and document tracking. Real-World Use Cases Access Control: Limit access to sensitive documents based on user roles or departments. Version Management: Use labels to distinguish between draft and final versions. Automated Workflows: Trigger encryption or archiving when documents reach a certain sensitivity level. Why Azure Information Protection Matters Implementing AIP brings a host of benefits: Persistent Protection: Data remains secure even when shared externally or accessed offline. Granular Control: Define who can access data and what they can do with it. Visibility and Auditing: Monitor access patterns and revoke access if needed. Hybrid Compatibility: Protect data across cloud and on-premises environments using the Rights Management connector. Centralized Management: Streamline policy creation and enforcement across the organization. Conclusion Azure RMS and AIP together form a powerful duo for modern data protection. By combining encryption, identity management, and intelligent labeling, organizations can confidently secure their most valuable asset information while enabling seamless collaboration and compliance.Manoj_Kumar1120Jun 13, 2025Copper Contributor12Views0likes0CommentsCreate a Release Pipeline Agent in Azure DevOps
Hi, I am trying to install a new agent for my Azure DevOps. I have followed the instructions that Azure DevOps provides when trying to install/create a new agent, but I am constantly running into an issue when installing the agent mentioned in the following URL: https://learn.microsoft.com/en-us/dotnet/framework/install/application-not-started?version=(null)&processName=AgentService.exe&platform=0009&osver=6&isServer=0&shimver=4.0.30319.0 I am running .NET Framework 4.6.2 on my system, and I do not know how to create the agent on my local system, I keep running into this error. I have also updated my PAT for both GitHub and Azure DevOps. Regards, Asim KhanAsimKhan2023Jun 13, 2025Copper Contributor41Views0likes2CommentsProgramming languages
Being new to the loud, which programming languages is best to learn for being a cloud engineer in Azure?SmoothieMan515Jun 12, 2025Copper Contributor4.6KViews1like9Comments
Resources
Tags
- azure2,271 Topics
- azure devops1,392 Topics
- Data & Storage379 Topics
- Networking237 Topics
- Azure Friday222 Topics
- App Services202 Topics
- blockchain168 Topics
- devops165 Topics
- Security & Compliance150 Topics
- analytics135 Topics