Discourse OAuth2 基本

Authentik OAuth2 でこれを機能させることができましたが、oauth2 user json url 設定でいくつかの問題が発生しました。Authentik の user_info エンドポイント (/application/o/userinfo/) を使用しましたが、フィールドのマッピング方法がわかりませんでした。Authentik の OAuth2 で Discourse をセットアップする方法を探している人のために、概要は次のとおりです。

  • User id path: preferred_username
  • Username path: preferred_username
  • Name path: name
  • Email path: email
  • Email verified path: email_verified
  • Avatar: 空

以下の問題がありました。

  1. 最初、JSON URL https://DOMAIN/application/o/userinfo/ の末尾のスラッシュを忘れていました。これにより、ユーザー情報リクエスト (ソースへのパーマリンク) が 301 HTTP コードを返し、ログインが失敗しました。末尾のスラッシュが仕様で必要かどうかはわかりませんが、301 を正しく処理できると良いかもしれません。
  2. これのデバッグはトリッキーであることが判明しました。oauth2 debug auth 設定は非常に役立ちましたが… Logster は、意味のある応答データを実際にダンプする前にデバッグログを切り捨てます。コンテナ内のログ行を次のように手動で変更する必要がありました。
    log("user_json_response: #{user_json_response.status} #{user_json_response.headers} #{user_json_response.body}")
    
    このログ行は更新される可能性がありますか?これにより、他の人が JSON 属性パスを理解するのに役立つと思います。
「いいね!」 4