Jenkins OIDC
CasdoorはOIDCプロトコルをIDPとして使用し、様々なアプリケーションに接続できます。 この例では、OIDCを使用してアプリケーションに接続する方法を示すためにJenkinsを使用します。
以下は設定で使用されるいくつかの名前です:
CASDOOR_HOSTNAME
:Casdoorサーバーがデプロイされているドメイン名またはIP。JENKINS_HOSTNAME
:Jenkinsがデプロイされているドメイン名またはIP。
ステップ1:CasdoorとJenkinsをデプロイする
デプロイに成功したら、以下を確認してください:
JenkinsのURL(管理Jenkins -> システムの設定 -> Jenkinsの位置)を
JENKINS_HOSTNAME
に設定します。Casdoorが正常にログインして使用できることを確認してください。
Casdoorの
origin
の値(conf/app.conf)をCASDOOR_HOSTNAME
に設定します。
ステップ2:Casdoorアプリケーションを設定する
新しいCasdoorアプリケーションを作成するか、既存のものを使用します。
リダイレクトURLを追加:
http://JENKINS_HOSTNAME/securityRealm/finishLogin
希望するプロバイダーを追加し、追加の設定を提供します。
アプリケーション設定ページから2つの値を取得します:Client ID
とClient secret
。 これらの値は次のステップで使用します。
お気に入りのブラウザを開いて、http://CASDOOR_HOSTNAME
/.well-known/openid-configurationにアクセスし、CasdoorのOIDC設定を表示します。
ステップ3:Jenkinsを設定する
まず、JenkinsはネイティブにOIDCをサポートしていないため、OpenId Connect Authenticationをインストールする必要があります。
インストールが完了したら、管理Jenkins -> グローバルセキュリティの設定に進みます。
設定エラーが発生した場合に備えて、Jenkinsのconfig.xml
ファイルをバックアップしておくことを確認してください。
アクセスコントロールで、セキュリティ領域として
Login with Openid Connect
を選択します。上記でメモした
Client ID
をClient IDフィールドに指定します。上記でメモした
Client secret
をClient secretフィールドに指定します。設定モードで、
Automatic configuration
を選択し、Well-known configuration endpointとしてhttp://CASDOOR_HOSTNAME
/.well-known/openid-configurationを入力します。Casdoorがローカルにデプロイされている場合は、
Manual configuration
を選択し、以下の情報を提供する必要があります:- トークンサーバーURL:http://
CASDOOR_HOSTNAME
/api/login/oauth/access_token - 認証サーバーURL:http://
CASDOOR_HOSTNAME
/login/oauth/authorize - UserInfoサーバーURL:http://
CASDOOR_HOSTNAME
/api/get-account - スコープ:
address phone openid profile offline_access email
- トークンサーバーURL:http://
詳細設定をクリックし、以下を入力します:
- ユーザー名フィールドには
name
を指定します。 - フルネームフィールドには
displayName
を指定します。 - メールフィールドには
email
を指定します。
- ユーザー名フィールドには
認証セクションで、「ログインしたユーザーは何でもできる」を有効にし、「匿名での読み取りアクセスを許可する」を無効にします。 より複雑な認証を後で設定できますが、今はOpenIDが正しく動作するかどうかを確認してください。
Jenkinsからログアウトすると、認証のためにCasdoorにリダイレクトされるはずです。