---
layout: post
title: "Portainer Oauth"
description: "Login into Portainer using your Github account or even better.. your private Gitea account (with 2FA)"
author: sthope
image: 
categories: [ Docker, Portainer, OAuth ]
comments: true
pic01: "/assets/images/portainer_oauth/1.png"
pic02: "/assets/images/portainer_oauth/2.png"
pic03: "/assets/images/portainer_oauth/3.png"
pic04: "/assets/images/portainer_oauth/4.png"
pic05: "/assets/images/portainer_oauth/5.png"
pic06: "/assets/images/portainer_oauth/6.png"
pic07: "/assets/images/portainer_oauth/7.png"
pic08: "/assets/images/portainer_oauth/8.png"
pic09: "/assets/images/portainer_oauth/9.png"
pic10: "/assets/images/portainer_oauth/10.png"
---


# Github
Login into Github and go to https://github.com/settings/profile on the right side menu near the end enter `Developer settings` and select `OAuth Apps` 
<img src="{{page.pic02}}"/>
<img src="{{page.pic03}}"/>
<br>
<br>
Create your app details
<img src="{{page.pic04}}"/>
`Application name`: Whatever you wanna call it  
`Homepage URL`: eg: http://IP:9000  
`Application description`: can be empty  
`Authorization callback URL`: eg: http://IP:9000  
<br>
<br>
After Github creates the application click on `Generate a new client secret` and copy `Client ID` and the `Secret` it created.
<img src="{{page.pic05}}"/>
<br>
This is it Github Part is finish!
<br>

# Portainer

Open Portainer UI and go to `Settings` on the right side menu then click on `Authentication` under it.
<img src="{{page.pic08}}"/>

Now choose this options, you can use other `Session lifetime` if you want
<img src="{{page.pic09}}"/>
`Automatic user provisioning`: If set ON anyone with Github account will be able to login and Portainer will automaticily create the user without authorizations, better leave it off and handle the users creation/allowance to you.

### OAuth Configuration

<img src="{{page.pic10}}"/>

| :-------------------- | :------------------------------------------ |
| **Client ID**         | ClientID you copied from Github             |
| **Client secret**     | Secret you copied from Github               |
| **Authorization URL** | https://github.com/login/oauth/authozize    |
| **Access token URL**  | https://github.com/login/oauth/access_token |
| **Resource URL**      | https://api.github.com/user                 |
| **Redirect URL**      | your Portainer URL eg: http://IP:9000       |
| **Logout URL**        | leave empty                                 |
| **User identifier**   | login                                       |
| **Scopes**            | id,email,name                               |

<br>
<br>  

# Gitea

Enter** https://git.sthope.dev/user/settings and go to `Applications`

<img src="{{page.pic06}}"/>
<img src="{{page.pic07}}"/>