web-dev-qa-db-ja.com

GitHub認証を使用したJenkinsログインが管理者であることに失敗しました

私は、セキュリティメカニズムを持たない組織jenkinsの認証メカニズムを設定していました。「ananoumos」は、ジョブの削除、ビルドなど、何でもできます。

  1. Github-oauthjenkinsプラグインをインストールします

  2. 私の中で https:// github .. com/a。 OAuthApplication->新しいアプリケーションを作成しましたb。すべての詳細を提供しましたが、主なものは承認コールバックでした-> http://myserver.example.com:8080/securityRealm/finishLogin myserver.example.com = my jenkin server

  3. Ok

  4. 「ClientId」と「Clientsecrete」を作成しました->メモしました

  5. Jenkinsに移動し、「グローバルセキュリティ:前述のように ここ

Jenkinセキュリティ構成で[保存]をクリックすると、大きな恐ろしいエラーが発生しました

STDERR:hudson.security.AccessDeniedException2:匿名にhudson.security.ACL.checkPermission(ACL.Java:57)の全体/管理権限がありません

その後、jekinsのホームページをクリックすると、組織のgithubにリダイレクトしようとしましたが、「404」で失敗しました。

「回答」セクションでの方法

1
sandejai

インスピレーション ジェンキンス:グローバルセキュリティをオンにした後、アクセスが拒否されました。元に戻す方法は?

上記の問題では、Github Authプラグインを使用していないため、Jenkins config.xmlには他のタグがありました。これは、私が行ったことです。

  1. 私のJenkinsサーバーでは、JENKIN_HOME/config.xml
  2. 最初に<authorizationStrategy>、以下の場合はtrueに設定

    authenticatedUserReadPermission
    useRepositoryPermissions
    authenticatedUserCreateJobPermission      
    allowAnonymousReadPermission 
    allowAnonymousJobStatusPermission  
    
  3. その後、少なくともJenkinsの求人を「匿名」ユーザーとして表示することができました

  4. 次に、組織のGitHub->マイプロファイル->設定->「OAuthアプリケーション」->開発者アプリケーションで新しい認証を作成し、同様の入力、主に承認コールバックURLを提供しました:http://myjenkinsserver:8080/securityRealm/finishLogin

  5. 生成された新しいクライアントIDとシークレット

  6. 変更されたjekinsconfig.xml
  7. ジェンキンスを再起動しました
  8. jenkinsにログインしようとしましたが、今回は私の組織GitHubにリダイレクトされ、JenkinsにAuthenticalを要求しました。「許可」しましたが、新しいエラーが発生しました

    org.kohsuke.github.HttpException: Server returned HTTP response code: -1, message: 'null' for URL: https://ghe.acme.com/api/v3/user
    
  9. このAPIが正しくないことがわかりました。

  10. 変更されたジェンキンスconfig.xml

    <githubApiUri>https://github.<myorg>.com/api/v3</githubApiUri>
    

そして今回はうまくいきました:)

1
sandejai