首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用rest api为gitlab用户设置身份

使用rest api为gitlab用户设置身份
EN

Stack Overflow用户
提问于 2017-02-06 15:08:54
回答 1查看 632关注 0票数 2

我也在这里发布我的问题。也许任何人都有一个实用的方法来解决这个问题:

目前,我一直在gitlab-ce中自动创建用户,向他们添加现有的ssh密钥,然后将他们的身份更改为不同的提供者,在我的例子中是atlassian around。我试图在创建用户时通过将{ 'identities': [ { 'provider': 'crowd', 'external_uid': 'foobar' } ] }添加到我的请求中来设置它,但是当用户被正确创建时,身份设置被忽略。该请求实际上类似于以下内容,并针对http://localhost/api/v3/users发送

代码语言:javascript
复制
{
  "email": "foo.bar@aol.com",
  "password": "aol123aol123",
  "username": "foo.bar",
  "name": "Foo Bar",
  "identities": [
    {
      "provider": "crowd",
      "extern_uid": "fbar"
    }
  ]
}

正如我所说的,用户是被创建的,但不是身份。通过API直接设置身份,即在外部系统设置某个身份提供和id,似乎没有实现。这就是为什么我在gitlab.com (https://gitlab.com/gitlab-org/gitlab-ce/issues/27693)上提交了一个问题。

我现在正在寻找一种替代方案来解决这个问题。我正在从不同的技术进行迁移,我想首先实现用户管理的自动化。由于它们有几个,因此手动执行此操作是不可行的。

事实上,可以在管理ui中设置用户的身份。当单击create按钮时,通过浏览器检查它,显示它是POST请求所针对的

http://localhost/admin/users/foo.bar/identities

内容采用url编码:

代码语言:javascript
复制
utf8:✓
authenticity_token:47yRB038sLQQ7bBP4vYGdVcQzg/8js09h5mUkz5vNYSALAjRqIpAFjYube8VxUlEKChNcrjNmx7s0RW8tDWFqC==
identity[provider]:crowd
identity[extern_uid]:fbar

如你所见,它不是一个API url,而是一个用户界面。这里我不知道的是authenticity_token。它不是管理员的私有访问令牌。它是会话令牌吗?

从技术的角度来看,我使用python w/ request来完成所有这些工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-09-01 13:56:11

要实现这一点,你需要gitlab-ce的API提供的sudo支持。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42062117

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档