向受保护的 GitLab 页面发出 HTTPS 请求

Posted

技术标签:

【中文标题】向受保护的 GitLab 页面发出 HTTPS 请求【英文标题】:Make HTTPS request to a protected GitLab page 【发布时间】:2021-11-17 19:11:03 【问题描述】:

如何向受 OAuth2 保护的 GitLab 页面发出 HTTPS 请求?

背景:GL 存储库从多个开发存储库收集草稿文档并发布在 GitLab 页面上。所有这些都受 OAuth2 保护。当我们接近发布日期时,我需要让更广泛的内部观众看到草案,我们不会为他们购买 GL 席位。公共文档服务器有一个预览 URL,受基本身份验证的轻微保护。我应该能够反向代理到 GitLab Pages 草稿——如果我只能让对 GL 的 HTTPS 请求起作用。

在授予每个角色的情况下使用 curlwget 以及个人访问令牌 (PAT) XYZXYZXYZXYZXYZXYZXY(不,不是真的)进行测试。

❯ wget 'https://ourdev.gitlab.io/this/is/my/documentation?access_token=XYZXYZXYZXYZXYZXYZXY'
--2021-09-24 13:33:32--  https://ourdev.gitlab.io/this/is/my/documentation?access_token=XYZXYZXYZXYZXYZXYZXY
Resolving ourdev.gitlab.io (ourdev.gitlab.io)... 35.185.44.232
Connecting to ourdev.gitlab.io (ourdev.gitlab.io)|35.185.44.232|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://projects.gitlab.io/auth?domain=https://ourdev.gitlab.io&state=bCN5ylZVNsjKt33cFslzNw== [following]
--2021-09-24 13:33:33--  https://projects.gitlab.io/auth?domain=https://ourdev.gitlab.io&state=bCN5ylZVNsjKt33cFslzNw==
Resolving projects.gitlab.io (projects.gitlab.io)... 35.185.44.232
Connecting to projects.gitlab.io (projects.gitlab.io)|35.185.44.232|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://gitlab.com/oauth/authorize?client_id=5059a88907e1b093c23df47d996183b101a862a5e53e099b563120d1308db2c1&redirect_uri=https://projects.gitlab.io/auth&response_type=code&state=bCN5ylZVNsjKt33cFslzNw==&scope=api [following]
--2021-09-24 13:33:33--  https://gitlab.com/oauth/authorize?client_id=5059a88907e1b093c23df47d996183b101a862a5e53e099b563120d1308db2c1&redirect_uri=https://projects.gitlab.io/auth&response_type=code&state=bCN5ylZVNsjKt33cFslzNw==&scope=api
Resolving gitlab.com (gitlab.com)... 172.65.251.78, 2606:4700:90:0:f22e:fbec:5bed:a9b9
Connecting to gitlab.com (gitlab.com)|172.65.251.78|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://gitlab.com/users/sign_in [following]
--2021-09-24 13:33:34--  https://gitlab.com/users/sign_in
Reusing existing connection to gitlab.com:443.
HTTP request sent, awaiting response... 503 Service Temporarily Unavailable
2021-09-24 13:33:34 ERROR 503: Service Temporarily Unavailable.

类似的结果来自:

wget 'https://oauth2:XYZXYZXYZXYZXYZXYZXY@https://ourdev.gitlab.io/this/is/my/documentation'
curl -ILs --header "Authorization: Bearer XYZXYZXYZXYZXYZXYZXY" "https://ourdev.gitlab.io/this/is/my/documentation"

一切似乎都指向https://gitlab.com/users/sign_in,然后是503。

许多文章展示了如何使用 PAT 访问 GitLab API。也许它们不是简单请求页面的方式?

【问题讨论】:

【参考方案1】:

GitLab 开发人员说(一年前)“目前不可能”:

Programmatic access to private pages

【讨论】:

以上是关于向受保护的 GitLab 页面发出 HTTPS 请求的主要内容,如果未能解决你的问题,请参考以下文章

git怎么控制成员的权限

TypeError:本机 Qt 信号不可调用

jwksError: Not Found 在 GET 请求期间由 jwks-rsa 模块抛出,带有授权不记名令牌到受保护的 api

如何跟踪具有访问令牌的用户是否仍具有有效会话?

授权中间件 JWT 混淆

如何在 Gitlab 中完成工作并发出警告