SmartCollect SC² Dokumentation / Index.md / GitHub OAuth2 Authentifizierung

GitHub OAuth2-Authentifizierung

Um das GitHub OAuth2 zu aktivieren, müssen Sie Ihre Anwendung bei GitHub registrieren. GitHub generiert eine Client-ID und einen geheimen Schlüssel, die Sie verwenden können.

Konfigurieren der GitHub OAuth-Anwendung

Sie müssen eine GitHub OAuth-Anwendung erstellen (Sie finden diese unter der GitHub Einstellungsseite). Wenn Sie die Anwendung erstellen, müssen Sie eine Callback-URL angeben. Geben Sie diese als Callback an:

http://<my_smartcollect_server_name_or_ip>:<smartcollect_server_port>/login/github

Diese Callback-URL muss mit der vollständigen HTTP-Adresse übereinstimmen, die Sie in Ihrem Browser verwenden, um auf SmartCollect SC² zuzugreifen, aber mit dem Suffix-Pfad von /login/github. Wenn die GitHub OAuth-Anwendung erstellt wird, erhalten Sie eine Client-ID und ein Client-Secret. Geben Sie diese in der SmartCollect SC²-Konfigurationsdatei an.

Aktivieren von GitHub in SmartCollect SC²

[auth.github]
enabled = true
allow_sign_up = true
client_id = YOUR_GITHUB_APP_CLIENT_ID
client_secret = YOUR_GITHUB_APP_CLIENT_SECRET
scopes = user:email,read:org
auth_url = https://github.com/login/oauth/authorize
token_url = https://github.com/login/oauth/access_token
api_url = https://api.github.com/user
team_ids =
allowed_organizations =

Sie müssen eventuell die Option root_url von [server] setzen, damit die Callback-URL korrekt ist. Zum Beispiel für den Fall, dass Sie SmartCollect SC² hinter einem Proxy bereitstellen.

Starten Sie das SmartCollect SC²-Back-End neu. Sie sollten nun eine GitHub-Anmeldeschaltfläche auf der Anmeldeseite sehen. Sie können sich nun anmelden oder sich mit Ihren GitHub Konten anmelden.

Sie können Benutzern erlauben, sich über die GitHub-Authentifizierung anzumelden, indem Sie die Option allow_sign_up auf true setzen. Wenn diese Option auf “true” gesetzt ist, wird jeder Benutzer, der sich erfolgreich über die GitHub-Authentifizierung authentifiziert, automatisch angemeldet.

team_ids

Erfordert eine aktive Team-Mitgliedschaft für mindestens eines der angegebenen Teams auf GitHub. Wenn der authentifizierte Benutzer nicht Mitglied in mindestens einem der Teams ist, kann er sich nicht bei Ihrer SmartCollect SC²-Instanz registrieren oder authentifizieren. Zum Beispiel:

[auth.github]
enabled = true
client_id = YOUR_GITHUB_APP_CLIENT_ID
client_secret = YOUR_GITHUB_APP_CLIENT_SECRET
scopes = user:email,read:org
team_ids = 150,300
auth_url = https://github.com/login/oauth/authorize
token_url = https://github.com/login/oauth/access_token
api_url = https://api.github.com/user
allow_sign_up = true

allowed_organizations

Requires active organization membership for at least one of the specified organizations on GitHub. If the authenticated user is not a member of at least one of the organizations, they cannot register or join your SmartCollect SC² instance. For example

[auth.github]
enabled = true
client_id = YOUR_GITHUB_APP_CLIENT_ID
client_secret = YOUR_GITHUB_APP_CLIENT_SECRET
scopes = user:email,read:org
auth_url = https://github.com/login/oauth/authorize
token_url = https://github.com/login/oauth/access_token
api_url = https://api.github.com/user
allow_sign_up = true
# space-delimited organization names
allowed_organizations = github google