Bibi's DevLog ๐ค๐
GitHub OAuth - Scopes for OAuth Apps ๋ณธ๋ฌธ
GitHub OAuth - Scopes for OAuth Apps
๋น๋น bibi 2022. 6. 15. 00:06https://docs.github.com/en/enterprise-server@2.21/developers/apps/building-oauth-apps/scopes-for-oauth-apps
GitHub OAuth - Scopes for OAuth Apps
- Scope(๋ฒ์)๋ ๋น์ ์ด ์ ํํ ์ด๋ค ์ข ๋ฅ์ ์ ๊ทผ์ ํ์๋ก ํ๋์ง๋ฅผ ๊ตฌ์ฒดํํด์ค๋ค.
- scope๋ OAuth ํ ํฐ์ ์ ๊ทผ์ ์ ํํ๋ค.
- ์ฌ์ฉ์๊ฐ ๊ฐ์ง ๊ถํ ์ด์์ ์ด๋ค ์ ๊ทผ๋ ํ์ฉํ์ง ์๋๋ค.
๊นํ OAuth ์ฑ์ ์ค์ ํ ๋, ์์ฒญ๋๋ scope๋ค์ด ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ง๋ค.
scope ํ์ธํ๊ธฐ
๋ด๊ฐ ์ด๋ค OAuth scope๋ฅผ ๊ฐ์ง๊ณ ์๊ณ , API ๋์์ด ์ด๋ค scope๋ฅผ ์น์ธํ๋์ง ํ์ธํ๊ธฐ ์ํด์๋ ํค๋๋ฅผ ๋ณด๋ฉด ๋๋ค.
$ curl -H "Authorization: token OAUTH-TOKEN" http(s)://[hostname]/api/v3/users/codertocat -I
HTTP/2 200
X-OAuth-Scopes: repo, user
X-Accepted-OAuth-Scopes: user
X-OAuth-Scopes
: ๋ด ํ ํฐ์ด ์ธ์ฆ๋ฐ์ scope๋ค์ ๋ฆฌ์คํธ.X-Accepted-OAuth-Scopes
: (API์)๋์์ด ํ์ธํ๋ scope๋ค์ ๋ฆฌ์คํธ.
์ฌ์ฉ ๊ฐ๋ฅํ scope๋ค
(no scope)
(scope ์์) : ๊ณต๊ฐ์ ์ธ ์ ๋ณด์ ๋ํ ์ฝ๊ธฐ ์ ์ฉ ๊ถํ์ ์น์ธํฉ๋๋ค. (์ฌ์ฉ์ ํ๋กํ ์ ๋ณด, ์ ์ฅ์ ์ ๋ณด, gist๋ฅผ ํฌํจํฉ๋๋ค)site_admin
: GitHub Enterprise Server Administration API endpoints์ ๋ํ ์ฌ์ดํธ ๊ด๋ฆฌ์ ์ ๊ทผ์ ์น์ธํฉ๋๋ค.repo
: private ์ ์ฅ์๋ฅผ ํฌํจํ ๋ชจ๋ ์ ์ฅ์ ์ ๊ทผ ๊ถํ์ ์น์ธํฉ๋๋ค. ์ด๋ ์ฝ๋์ ๋ํ ์ฝ๊ธฐ/์ฐ๊ธฐ ์ ๊ทผ, ์ปค๋ฐ ์ํ, ์ ์ฅ์์ ์กฐ์ง(organization) ํ๋ก์ ํธ, invitation, collaborators, team memberships ์ถ๊ฐํ๊ธฐ, ๋ฐฐํฌ ์ํ, ์ ์ฅ์์ ์กฐ์ง์ ๋ํ ์ ์ฅ์ ์นํ ์ ํฌํจํฉ๋๋ค. ๋ํ ์ฌ์ฉ์ ํ๋ก์ ํธ๋ฅผ ๊ด๋ฆฌํ๋ ๋ฅ๋ ฅ๋ ์น์ธํฉ๋๋ค.repo:status
: public ๋ฐ private ์ ์ฅ์์ ์ปค๋ฐ ์ํ์ ๋ํ ์ฝ๊ธฐ/์ฐ๊ธฐ ์ ๊ทผ์ ์น์ธํฉ๋๋ค. ์ด scope๋ ์ฝ๋์ ๋ํ ์ ๊ทผ ์น์ธ ์์ด, ์ค์ง ๋ค๋ฅธ ์ฌ์ฉ์ ๋๋ ์๋น์ค๊ฐ private ์ ์ฅ์์ ์ปค๋ฐ ์ํ์ ๋ํด ์ ๊ทผํ๋๋ก ํ ๋ ํ์ํฉ๋๋ค.repo_deployment
: public ๋ฐ private ์ ์ฅ์์ ๋ฐฐํฌ ์ํ์ ๋ํ ์ ๊ทผ์ ์น์ธํฉ๋๋ค. ์ด scope๋ ์ฝ๋์ ๋ํ ์ ๊ทผ ์น์ธ ์์ด, ๋ค๋ฅธ ์ฌ์ฉ์ ๋๋ ์๋น์ค๊ฐ ๋ฐฐํฌ ์ํ ์ ์ ๊ทผํ๋๋ก ํ ๋ ํ์ํฉ๋๋ค.public_repo
: ์ ๊ทผ ๊ถํ์ public ์ ์ฅ์๋ก ์ ํํฉ๋๋ค. ์ด๋ public ์ ์ฅ์ ๋ฐ ์กฐ์ง์ ๋ํ ์ฝ๋ ์ฝ๊ธฐ/์ฐ๊ธฐ ์ ๊ทผ, ์ปค๋ฐ ์ํ, ์ ์ฅ์ ํ๋ก์ ํธ, collaborators, ๋ฐฐํฌ ์ํ๋ฅผ ํฌํจํฉ๋๋ค. ๋ํ public ์ ์ฅ์๋ฅผ starํ ๋๋ ํ์ํฉ๋๋ค.repo:invite
: ์ ์ฅ์์ collaborator ์ด๋์ ๋ํ ์๋ฝ/๊ฑฐ์ ๊ถํ์ ์น์ธํฉ๋๋ค. ์ด scope๋ ์ฝ๋์ ๋ํ ์ ๊ทผ ์น์ธ ์์ด, ๋ค๋ฅธ ์ฌ์ฉ์ ๋๋ ์๋น์ค๊ฐ ์ด๋ ๊ถํ์ ์ ๊ทผํ๋๋ก ํ ๋ ํ์ํฉ๋๋ค.
admin:repo_hook
: public ๋ฐ private ์ ์ฅ์์ ์ ์ฅ์ ํ (repository hook)์ ๋ํ ์ฝ๊ธฐ, ์ฐ๊ธฐ, ping, ์ญ์ ์ ๊ทผ์ ์น์ธํฉ๋๋ค.repo
์public_repo
scope๋ ์ ์ฅ์ ํ ์ ํฌํจํ ๋ชจ๋ ์ ์ฅ์ ์ ๊ทผ ๊ถํ์ ์น์ธํฉ๋๋ค. ์ ์ฅ์ ํ ์ ๋ํด์๋ง ์ ๊ทผ์ ์ ํํ๊ณ ์ถ์ ๋admin:repo_hook
์ ์ฌ์ฉํ์ญ์์ค.write:repo_hook
: public ๋ฐ private ์ ์ฅ์์ ์ ์ฅ์ ํ (repository hook)์ ๋ํ ์ฝ๊ธฐ, ์ฐ๊ธฐ, ping ์ ๊ทผ์ ์น์ธํฉ๋๋ค.read:repo_hook
: public ๋ฐ private ์ ์ฅ์์ ์ ์ฅ์ ํ (repository hook)์ ๋ํ ์ฝ๊ธฐ, ping ์ ๊ทผ์ ์น์ธํฉ๋๋ค.
admin:org
: ์กฐ์ง(organization)๊ณผ ๊ทธ ํ, ํ๋ก์ ํธ, ๋ฉค๋ฒ์ญ์ ๋ํ ๋ชจ๋ ์ ๊ทผ ๊ถํ์ ๊ฐ์ต๋๋ค.write:org
: ์กฐ์ง ๋ฉค๋ฒ์ญ, ์กฐ์ง ํ๋ก์ ํธ, ํ ๋ฉค๋ฒ์ญ์ ๋ํ ์ฝ๊ธฐ/์ฐ๊ธฐ ์ ๊ทผ์ ๋๋ค.read:org
: ์กฐ์ง ๋ฉค๋ฒ์ญ, ์กฐ์ง ํ๋ก์ ํธ, ํ ๋ฉค๋ฒ์ญ์ ๋ํ ์ฝ๊ธฐ ์ ์ฉ ์ ๊ทผ์ ๋๋ค.
admin:public_key
: ๊ณต๊ฐ ํค (public key)์ ๋ํ ๋ชจ๋ ์ ๊ทผ ๊ถํ์ ๊ฐ์ต๋๋ค.write:public_key
: ๊ณต๊ฐ ํค (public key)์ ๋ํ ์์ฑ, ๋ฆฌ์คํธ, ์์ธ๋ณด๊ธฐ ์ ๊ทผ ๊ถํ์ ๊ฐ์ต๋๋ค.read:public_key
: ๊ณต๊ฐ ํค (public key)์ ๋ํ ๋ฆฌ์คํธ, ์์ธ๋ณด๊ธฐ ์ ๊ทผ ๊ถํ์ ๊ฐ์ต๋๋ค.
admin:org_hook
: ์กฐ์ง ํ (organization hooks)์ ๋ํ ์ฝ๊ธฐ, ์ฐ๊ธฐ, ping, ์ญ์ ์ ๊ทผ ๊ถํ์ ์น์ธํฉ๋๋ค. (์ฐธ๊ณ : OAuth ํ ํฐ์ OAuth ์ฑ์ ์ํด ์์ฑ๋ ์กฐ์ง ํ ๋์์ ๋ํด์๋ง ์คํ ๊ฐ๋ฅํฉ๋๋ค. Personal access token์ ์ฌ์ฉ์์ ์ํด ์์ฑ๋ ์กฐ์ง ํ ๋์์ ์คํํ ๋๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค.)gist
: gist์ ๋ํ ์ฐ๊ธฐ ์ ๊ทผ์ ์น์ธํฉ๋๋ค.notifications
: ๋ค์์ ์น์ธํฉ๋๋ค - ์ฌ์ฉ์์ notification์ ๋ํ ์ฝ๊ธฐ ์ ๊ทผ, ์ฐ๋ ๋์ ๋ํด ์ฝ๊ธฐ ํ์๋ฅผ ํ๋ ์ ๊ทผ, ์ ์ฅ์ ์ ๊ทผ์ ๋ณด๊ธฐ/๋ณด์ง ์๊ธฐ, ๊ทธ๋ฆฌ๊ณ ์ฐ๋ ๋ ๊ตฌ๋ ์ ๋ํ ์ฝ๊ธฐ/์ฐ๊ธฐ/์ญ์ ์ ๊ทผ.user
: ํ๋กํ ์ ๋ณด์ ๋ํ ์ฝ๊ธฐ/์ฐ๊ธฐ ์ ๊ทผ์ ์น์ธํฉ๋๋ค. ์ด scope๊ฐuser:email
๊ณผuser:follow
๋ฅผ ํฌํจํจ์ ์ ์ํ์ญ์์ค.read:user
: ์ฌ์ฉ์์ ํ๋กํ ์ ๋ณด ์ฝ๊ธฐ ์ ๊ทผ์ ์น์ธํฉ๋๋ค.user:email
: ์ฌ์ฉ์์ ์ด๋ฉ์ผ ์ฃผ์ ์ฝ๊ธฐ ์ ๊ทผ์ ์น์ธํฉ๋๋ค.user:follow
: ๋ค๋ฅธ ์ฌ์ฉ์์ ๋ํ follow / unfollow ์ ๊ทผ์ ์น์ธํฉ๋๋ค.
delete_repo
: ๊ด๋ฆฌ ๊ฐ๋ฅํ ์ ์ฅ์์ ์ญ์ ์ ๊ทผ์ ์น์ธํฉ๋๋ค.write:discussion
: team discussion์ ๋ํ ์ฝ๊ธฐ/์ฐ๊ธฐ ์ ๊ทผ์ ํ์ฉํฉ๋๋ค.read:discussion
: team discussion์ ๋ํ ์ฝ๊ธฐ ์ ๊ทผ์ ํ์ฉํฉ๋๋ค.
admin:gpg_key
: GPG ํค์ ๋ํ ์์ ํ ๊ด๋ฆฌ ๊ถํ.write:gpg_key
: GPG ํค์ ๋ํ ์์ฑ, ๋ฆฌ์คํธ, ์์ธ๋ณด๊ธฐ ๊ถํ.read:gpg_key
: GPG ํค์ ๋ํ ๋ฆฌ์คํธ, ์์ธ๋ณด๊ธฐ ๊ถํ.
์ฐธ๊ณ
๋น์ ์ OAuth ์ฑ์ ์ฒซ ๋ฆฌ๋ค์ด๋ ์ ์์ scope๋ฅผ ์์ฒญํ ์ ์์ต๋๋ค.
%20
์ ๊ณต๋ฐฑ์ผ๋ก ํ์ฌ ์ฌ๋ฌ ๊ฐ์ scope๋ฅผ ๋ช ์ํ ์ ์์ต๋๋ค:https://github.com/login/oauth/authorize? client_id=...& scope=user%20repo_deployment
์์ฒญ๋ scope์ ์น์ธ๋ scope
scope ํน์ฑ์ ํ ํฐ์ ๋ํด ์ฌ์ฉ์์ ์ํด ์น์ธ๋ ๋ฒ์๋ฅผ ๋ํ๋ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก, ์ด ๋ฒ์๋ ๋น์ ์ด ์์ฒญํ ๊ฒ๊ณผ ๋์ผํฉ๋๋ค. ํ์ง๋ง, ์ฌ์ฉ์๋ ๊ทธ๋ค์ scope๋ฅผ ์์ ํ ์ ์์ผ๋ฉฐ, ๋น์ ์ ์ฑ์ด ๋น์ ์ด ์ฒ์ ์์ฒญํ ๊ฒ ๋ณด๋ค ๋ ์ ์ ์ ๊ทผ๊ถํ์ ๊ฐ๋๋ก ํ ์ ์์ต๋๋ค. ๋ํ, ์ฌ์ฉ์๋ OAuth ํ๋ฆ์ด ์๋ฃ๋ ํ์ ํ ํฐ scope๋ฅผ ์์ ํ ์ ์์ต๋๋ค. ๋น์ ์ ์ด ๊ฐ๋ฅ์ฑ์ ๋ํด ์ ์ํ๋ฉฐ ๋น์ ์ ์ฑ์ ๋์์ ์ ์ ํ ์กฐ์ ํด์ผ ํฉ๋๋ค.
๋น์ ์ด ์ฒ์ ์์ฒญํ ๊ฒ๋ณด๋ค ์ ์ ์ ๊ทผ๊ถํ์ ์น์ธ๋ฐ๋๋ก ์ฌ์ฉ์๊ฐ ์ ํํ์ ๋์ ์๋ฌ ์ผ์ด์ค๋ฅผ ์ฒ๋ฆฌํ๋ ๊ฒ์ ์ค์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ฑ์ ์ฌ์ฉ์์๊ฒ ๊ฒฝ๊ณ ํ๊ฑฐ๋ ์๋ด๋ฅผ ํจ์ผ๋ก์จ ๊ทธ๋ค์ด ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ฅ์ด ์ค์ด๋ค๊ฑฐ๋ ์ด๋ค ๋์์ ์คํํ ์ ์์์ ์๋ฆด ์ ์์ต๋๋ค.
๋ํ, ์ฑ์ ์ฌ์ฉ์์๊ฒ ์ถ๊ฐ์ ์ธ ์น์ธ์ ๋ค์ ๋ฐ๊ธฐ ์ํด OAuth ํ๋ฆ์ผ๋ก ๋๋์๊ฐ๋๋ก ์ฌ์ฉ์๋ฅผ ๋ณด๋ผ ์ ์์ต๋๋ค. ํ์ง๋ง ์ฌ์ฉ์๋ ์ธ์ ๋ ๊ฑฐ์ ํ ์ ์์์ ์์ง ๋ง์ญ์์ค.
Basics of Authentication guide๋ฅผ ํ์ธํ์ญ์์ค. ์ด ๊ฐ์ด๋๋ ์์ ๊ฐ๋ฅํ ํ ํฐ scope๋ฅผ ์ฒ๋ฆฌํ๋ ํ์ ์ ๊ณตํฉ๋๋ค.
์ ๊ทํ๋ scope
์ฌ๋ฌ scope๋ค์ ์์ฒญํ ๋, ํ ํฐ์ scope์ ์ ๊ทํ๋ ๋ฆฌ์คํธ๋ก ์ ์ฅ๋๋ฉฐ, ์์ฒญํ ๋ค๋ฅธ scope์์ ์ด๋ฏธ ํฌํจํ๋ scope๋ ์๋ฌต์ ์ผ๋ก ์ญ์ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, user,gist,user:email
์ ์์ฒญํ๋ ๊ฒ์ ํ ํฐ์ user
์ gist
scope๋ง์ ๋จ๊ธธ ๊ฒ์
๋๋ค. ์๋ํ๋ฉด user
scope์ user:email
scope์ ์ ๊ทผ์ด ์น์ธ๋์ด ์๊ธฐ ๋๋ฌธ์
๋๋ค.
'ํ๋ก๊ทธ๋๋ฐ > Git & GIthub ๊น๊ณผ ๊นํ๋ธ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
OAuth Github ๋ก๊ทธ์ธ (0) | 2022.06.15 |
---|---|
[Git] rebase ์ถฉ๋ ํด๊ฒฐํ๊ธฐ (0) | 2022.04.29 |
[Git] fetch, pull, merge, rebase (0) | 2022.04.24 |
[Git] ์ปค๋ฐ๋ฉ์์ง ์์ ํ๋ ๋ฒ (0) | 2021.02.16 |
[Git] .gitignore๋ฅผ ์ฌ์ฉํ๋ ์ด์ ๋ฐ ์ฌ์ฉ ๋ฐฉ๋ฒ (0) | 2021.02.15 |