New security layer on the library and environment - azure-devops

I have used my pipelines for over a year now and all of a sudden I have to review and permit newly added libraries and environments. This is not derisered as I add more and more libraries and environments over time.
enter image description here
enter image description here
How can I remove the need to explicitly give these permissions?

You can define the pipeline, variable group, and environment permissions in the Manage security tab.
Link: https://learn.microsoft.com/en-us/azure/devops/pipelines/policies/permissions?view=azure-devops#set-pipeline-permissions

Related

Azure DevOps Permissions - View All Projects (with restrictions)

Currently we're only really making use of Project Collection Valid Users and Project Collection Administrators default groups in Azure DevOps but is unlikely to stand up to scrutiny an there's been a few requests for tweaks to this.
1 - Give 'standard users' access to view and work on only their projects but with the capability to create projects
2 - Give someone access to see all projects but not be able delete any existing ones (unless they're the project admin) or to be able to create new ones
As far as I've been able to tell I can't give someone permissions to view all projects without them being a project collection admin, and that means that they can create and delete projects which I don't want to provide.
Is there any way of overcoming this? The only thing I can think is I'd have to add this new permissions group to every project manually, which would be fine for a point in time, but I wouldn't be confident of adding the group to all projects, and it would likely go out of date when new project sites were created. I'd assume there's got to be a simpler way, and I may be overcomplicating things so thought I'd ask for some support.
Sure, you can accomplish this.
It'll take a few new groups and a new group rule within your Organization settings though.
To start, you'll want to create a 2 new groups within your Organization Settings > Permissions:
Project Creators: "Allow" - "Create Project"
Project Readers: No explicit permissions
Then, head to Organization Settings > Users and select the Group Rules tab. Within your group rules, select "New Group Rule".
Choose your Project Readers group within the "Azure DevOps or AAD Group" setting, select the default access level, select all projects, then choose "Project Readers" for their access level:
For a more step-by-step walkthrough on creating group rules, here's Microsoft's documentation on Group Rules:
https://learn.microsoft.com/en-us/azure/devops/organizations/accounts/assign-access-levels-by-group-membership?view=azure-devops&tabs=preview-page#add-group-rule

Hide Pipelines, Artifacts and Project Settings from Stakeholder

I am evaluating Azure Boards / Azure DevOps and I wish to restrict what a Stakeholder (in this case, a customer) can see and do.
I have managed to limit what a Stakeholder can do, but is it possible to completely hide the Pipelines, Artifacts and Project Settings panes from Stakeholder?
Se the image. I want to completely hide the panes marked in red.
Image of panes to be hidden
I am not sure if we can show/hide the DevOps Services in top-level, based on a specific role. This is only available for the project level.
https://dailydotnettips.com/turning-azure-devops-service-on-or-off/
and these settings can only be controlled by the Project / Org administrator.
We cannot get rid of the Pipelines from the view for the stakeholders. Yes, we can turn off the pipelines service from the project settings overview page, thus the pipelines node will disappear from the view. However it's applied to entire project, that means all other users also cannot see the pipelines.
As a workaround you can manage security for all pipelines and Artifacts for each project, just deny all of the related permissions for the stakeholder.
In addition, I found a related suggestion ticket, you can follow and vote this ticket to get the latest news.

Azure DevOps: Adding team members to a new team/area

I have created a new Team/Area under our project within Azure DevOps.
When I send the URL for the backlog, the team members are able to access the link but not see any of the work items.
I have tried the following:
Confirm the user has Basic licence.
Confirm the user has access to the project.
Added the user to the Team for that area.
Is there anything obvious I am missing?
I am pretty confident this is not a bug, but just something in the process of giving users access that I am not doing.
Any help very much appreciated.
Thanks,
Alasdair.
When I send the URL for the backlog, the team members are able to access the link but not see any of the work items.
This could be caused by multiple reasons which means we might need to check several setttings.
Choose the right team in BackLogs page:
check the Project Settings-Team configuration-Areas, make sure the target Team area has been added:
Check Project Settings - Permissions and make sure your team has
the right permission to see the BackLogs Itmes.
Is this something that I need to set every time I create a new team?
No, you don't have to set them every time. When you create a team,
the Permissions setting could be automatically inherited:

Azure DevOps Build Pipeline with repository in GitHub

UPDATE: I think this question was based on a fundamental misunderstanding. When creating the build pipeline definition, I would pick the saved service connection ("GitHub-iQmetrixService" in the screenshot), and then later Azure DevOps would continue to prompt for access to my personal account. This made me think that the build pipeline was linked to my personal account somehow, such that if my account is ever in the future gone or otherwise unable to access the repository, the build pipeline would stop working.
As far as I now understand, this is not the case. The build pipeline definition itself is in fact associated with the service connection, and the reason that Azure DevOps prompts for my personal login is because the integrated YAML editor is going to want to make commits back to the repo, and those commits need to happen "as me". When co-workers go to the pipeline editor, they too are prompted for their personal login.
I'm still a little bit nervous about this understanding, because I can't see anything in the UI that shows what service connection Azure DevOps is using primarily to process the build pipeline, nor can I see any way to change it should that ever be necessary.
When creating a new Build Pipeline, if I tell Azure DevOps that my repository is in GitHub, I am immediately redirected to GitHub to authorize access to my personal GitHub account (to which I have an ambient login). If I instead pick "Other Git", then the next step in the flow lets me say that the source is GitHub, at which point the screen says:
This authorization, set up by someone else in my organization, works just fine, and I can view all of the organization's repositories and set up a new pipeline. But then, if I close the window and try to re-open the pipeline editor, I am immediately redirected once again to the GitHub page to authorize access to my personal account. Editing the pipeline created based on the "GitHub-iQmetrixService" connection does not use the connection and instead wants to establish a new connection based on whatever individual accounts I have access to.
How can I edit the pipeline without creating a connection to the repository that is linked to my own personal account?
As work around, you can take advantage of the browser sessions and cookies.
Configure the browser to let it retain and keep the session. And do not clear the session and cookie data once you close the browser.
For me, I am using Edge. So, I go Settings -> Privacy and Security -> Choose what to clear, then disable the option
After configure this, I do not need input my account, password and Verification code again while I close the windows, re-open and re-edit the pipeline,
If you want to make some configuration changes on this pipeline, please go right corner-> three dots, and choose the Triggers.
After located to the Triggers page, please change to YAML tab.
Then you can do the modified on this pipeline
To provide some clarity, it appears what's going on here is that for YAML build definitions, Azure DevOps doesn't actually go to the build pipeline definition editor when you select "Edit". The YAML text editor it takes you to is in place of the build pipeline definition editor. But, the definition editor can still be reached. #Merlin Liang - MSFT's answer provides (after the horizontal rule) the steps to take to do this. I didn't understand why those steps, though. I created the following graphic to explain specifically the aspect that wasn't clear in my head:

How to mention integration service name during importing workflow in a versioned repository from one environment to another

Whenever I try to import a workflow from Dev/Test environment of a versioned repository into Production environment which is also versioned, I get a option where it asks me if I want to Check in or continue without check in. What happens if I do not check in and continue? Will all the objects used in the workflow will not be checked in or is it just the workflow which will not be checked in? I am asking this because, it will be double work if all the objects used will not be checked in including the Workflow, then, I have to go one by one to check in the objects. If I check the check in option for the workflow, after importing the Workflow, the integration service is left blank and when I run it, it is pointing towards the Integration service not mentioned error. For this I generally check out the workflow once I import just to mention the Integration service name. I do not think this is a good practice. Any advices on this will be greatly appreciated.
Thanks
Dhruuv.
Will all the objects used in the workflow will not be checked in or is it just the workflow which will not be checked in?
The objects that will be left in the checked out state are:
the workflow,
the new objects (i.e. they were not present in the Prod repository before the import from Dev/Test),
the modified objects (i.e. they were present in the Prod repository but were overwritten because you chose the Replace option).
I have to go one by one to check in the objects
You don't have to check in every individual object - in Repository Manager open the Versioning menu and choose the Find Checkouts... option. All the checked out objects will be listed - you can select them and check in all of them at once.