【把玩Azure DevOps】Day16 Artifacts应用:让外部合作夥伴也可以从Private nuget安装Package

前面几篇文章都在提Azure DevOps Artifacts,也就是如何利用这个服务来达成私有化的nuget套件库。虽然私有的套件库可以不需要将公司专案的package上传到网路公开的nuget.org,但是如果是有部份外包的专案,或是有外部合作夥伴的时候,要如何让他们也可以存取私有的套件库呢?

前面的「Azure DevOps Artifacts简介」文章中提到,Azure DevOps Artifacts feed有分为Organization范围与Project范围的feed,Project范围的自然就是Azure DevOps中建立的Project里面的成员才能存取,Organization的存取权限范围则是比Project还大,在组织中的成员都可以存取,而在Create new feed对话框内的Visibility选项中更看到了Azure Active Directory关键字:

https://ithelp.ithome.com.tw/upload/images/20210928/20033961QyLK8bTz7c.png

看到Azure Active Directory(AAD)就好办了,我们可以将外部的成员加入到AAD里面作为来宾身份,之後就可以在Azure DevOps Artifact feed里面去设定他的权限。(这边可能需要拥有Azure Portal的部份功能权限的帐号才能操作)

首先进到Azure Portal的画面,接着找到Azure Active Directory服务:

https://ithelp.ithome.com.tw/upload/images/20210928/20033961f1fbJ5MPH6.png

为了管理方便,可以先新增一个群组,之後再加入外部的使用者:

https://ithelp.ithome.com.tw/upload/images/20210928/20033961zej6ipOBp2.png
https://ithelp.ithome.com.tw/upload/images/20210928/20033961nqAIusoqEy.png
https://ithelp.ithome.com.tw/upload/images/20210928/20033961RoPW2hqGn8.png
https://ithelp.ithome.com.tw/upload/images/20210928/20033961rb8eOrON2l.png
https://ithelp.ithome.com.tw/upload/images/20210928/20033961FXQj3Zpa8d.png

从AAD建立完群组并且加入使用者之後,并不能直接在Artifact feed的Permissions里面去选择AAD的群组来加入,必须要在Project或Organization的Permissions设定中去新增一个Group(或用现有的Group)把上面建立的AAD Group(NugetReader)加入:

https://ithelp.ithome.com.tw/upload/images/20210928/20033961LL666L5alV.png

这里为了方便区别,所以特别在Group名称上使用不同的名字。在Project或Organization设定里把AAD Group加入之後,再到Artifact feed的Permissions里面把Project或Organization的Group加到Artifact feed里面:

https://ithelp.ithome.com.tw/upload/images/20210928/20033961X1x5KAFnhv.png

完成之後就可以请对方试试看在VS里面是否能够搜寻得到nuget package了。当然,也要一并提供给对方feed连线的url,如同前面文章提到的(Connect to feed里的提示),请对方在VS的Package Manager Settings设定Package source之後,第一次浏览应该会出现登入画面(别忘了先收Email完成确认邀请动作):

https://ithelp.ithome.com.tw/upload/images/20210928/20033961xt0OrPeGId.png

登入之後应该就可以成功看到Artifact feed上面的Package了:

https://ithelp.ithome.com.tw/upload/images/20210928/20033961kT5O8ZSfi4.png


<<:  [Day 13] Forensics 小进阶

>>:  Day-13 观念补遗:TDZ与全域变数

JavaScript Array | 与其他程序语言很不同的阵列(上)

JavaScript Array (阵列) 阵列 (array) 是一个有序的序列,阵列中可以储存不...

Day 9. 双向绑定-MVVM

常提到的设计架构MVC与MVVM MVC MVC全名为Model View Controller ,...

[Day05] swift & kotlin 入门篇!(3) 基础语法-字串

字串 想当初刚在学习JAVA时 一段 new String("ami") != ...

[Day 27] Node thread pool 2

前言 昨天聊到了 TP 告知 main Thread 任务完成的方法。今天说说 TP 本身在运行甚麽...

Day25 - 透过 Rake 自动下载处理台湾证券交易所的资料

前言 已经能从「台湾证券交易所」抓资料、存入 DB,接下来要做自动化处理 说明 由於我电脑没有 24...