안녕하세요. 오랜만에 글을 올립니다.

개발하는 분들에게는 그리 생소하지 않을텐데, 저 같은 비 개발자 분들은 아마 API 이야기만 들어도 머리가 아프실 겁니다. ㅎㅎ

저는 처음에 API Token 만드는 것도 어렵더라구요… 그래서 Slack 의 Enterprise Grid 플랜에서 제공하는 몇가지 API 들을 사용하기 위한 Token 만드는 법을 한번 정리해보았습니다.

슬랙을 관리하는 업무를 하시는 분들께서는 한번 참조해보셔도 좋을 듯 합니다.

보통 Enterprise Grid 환경에서 관리 목적으로 사용하는 API 는 4가지 입니다.

필요 Scope

위 4개의 API Token 을 만드는 방식 자체는 기본적으로 다 동일합니다만, 필요로 하는 Scope 에 차이가 있습니다.

API 종류토큰 타입필요로 하는 Scope비고
SCIM APIOrgadmin최소 조직 소유자 권한 필요
Discovery APIOrgdiscovery:read
discovery:write
최소 조직 소유자 권한 필요하며, 할당을 위해서는 feedback@slack.com 으로 요청필요함 (관리자가 직접 추가 불가)
Audit Logs APIOrgauditlogs:read최소 조직 소유자 권한 필요
Admin APIOrgadmin.<resource>:read
admin.<resource>:write

예를 들어 앱 승인을 위한 Token 이 필요한 경우,
admin.apps:read
admin.apps:write
최소 조직 관리자 권한 필요

범위는 앱에서 호출할 API 메소드에 따라 다릅니다. 각 메소드의 필수 범위는 메소드 문서 페이지 상단에 포함되어 있습니다.

앱 만들기

자 그럼 Token 을 만들기 위해서 앱을 한번 만들어 보죠.

https://api.slack.com/apps 으로 이동해서 “Create New App” 을 선택합니다.

From Scratch 선택

앱 이름과 어떤 워크스페이스 또는 Org 에 설치할지 선택. 일단은 아무거나 선택하셔도 됩니다.

좌측의 메뉴에서 OAuth & Permissions 항목으로 이동하여 “Redirect URLs” –> Add New Redirect URL 선택 후 https://localhost 입력

Scope 항목으로 이동하여 “User Token Scopes” 추가 (위의 필요로 Scope 항목을 참조하시면 됩니다.) 지금 예는 SCIM API 니까 admin scope 를 추가해보겠습니다.

토큰 생성하기

다음은 조직 레벨에서 해당 앱을 활성화 시켜서 Token 을 생성합니다.

좌측의 메뉴에서 Manage Distribution 항목으로 이동 –> Share your App with Other Workspaces 으로 이동

여기서 Remove Hard Coded Information 항목을 한번 더 확인해줍니다. (토큰 같은것을 어디 소스코드에 하드코딩 하지 말라는 이야기 입니다.) 그뒤 Activate Public Distribution 을 선택합니다.

그러면 Sharable URL 항목을 확인할 수 있는데요, Copy 해서 새로운 웹 브라우저 창이나 탭을 열고 붙여넣기 해줍니다.

그럼 앱 설치화면이 나오는데요, 여기서 우측 상단에서 개별 워크스페이스가 아닌 Grid Org 를 선택해줍니다. (조직 소유자 권한이 있어야 합니다.), 이게 OAuth 과정입니다.

그럼 아까 입력했던 https://localhost 로 리다이렉트 되면서, 접근할 수 없다고 나올겁니다. 예상된 결과니까 당황하지 마세요. localhost 로 접근할 수 없으니 당연히 뜨겠죠? 근데 상단의 URL 에서 필요로 하는 정보가 있습니다.

code= 뒤에 나오는 부분부터 &state 전까지를 복사해둡니다. 정확하게는 code 값이 필요한거라서요.

그 다음 좌측메뉴 중 Basic Information 항목 –> App Credentials 항목으로 돌아갑니다. 여기서Client IDClient Secret 를 복사해두세요.

그 다음 아래 주소에 따로 보관해둔 3가지 값을 넣어서 URL 를 완성하여 줍니다. (code / Client ID / Client Secret) enter_client_id 와 enter_client_secret 이라고 되어있는 부분을 위에서 복사한 값으로 채워주면 됩ㄴ디ㅏ.

https://slack.com/api/oauth.v2.access?code=enter_code_step_14&client_id=enter_client_id&client_secret=enter_client_secret

그 뒤 완성된 주소를 다시 복사 하여 새로운 웹브라우저의 주소창에 붙여넣습니다. 여기까지 잘 되었다면 다음과 같은 메세지가 나올 것입니다. (아래는 예시 입니다.)

{"ok":true,"access_token":" xoxp-XXXXXXXXXXXX-XXXXXXXXXXXX-XXXXXXXXXXXX-XXXX<br>XXXXXXXXXXXXXXXXXXXXXXXXXXXX ","scope":"admin,identify","user_id":"WXXXXXXXX","team_name":"Org Sandbox","team_id":"TXXXXXXXX","enterprise_id":"EXXXXXXXX"}

위에서 xoxp- 으로 시작하는 문자열이 바로 조직(Org) 의 API Token 입니다. 이걸 잘 보관해두세요.

Token 인증 테스트

다음 해당 토큰이 잘 동작하는지 테스트 해보겠습니다.

https://api.slack.com/methods/auth.test/test 으로 이동해서, 방금 생성된 토큰 값을 입력하고 Test Method 를 클릭 합니다.

그럼 다음과 같이 API Response 항목에 다음과 같이 나옵니다.

여기까지 하시면 API Token 생성 및 확인은 되신겁니다.

위에서 생성된 토큰은 잘 보관하시고, 필요로 하는 Scope 만 할당할 수 있도록 주의 하시기 바랍니다.

Token 폐기

만약 위에서 생성한 토큰을 폐기해야 할 경우 다음 링크에서 진행하시면 됩니다.

https://api.slack.com/methods/auth.revoke/test

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다